first commit
This commit is contained in:
commit
035bbe5185
4 changed files with 189 additions and 0 deletions
123
README.md
Normal file
123
README.md
Normal file
|
@ -0,0 +1,123 @@
|
|||
# Samba share with network discovery using docker-compose
|
||||
|
||||
### docker-compose.yalm completo
|
||||
|
||||
i files completi scaricabili dal git, il docker-compose utilizzabile anche su Portainer
|
||||
|
||||
Per l'immagine wsdd fare il build (vedi [git wsdd-docker](https://forgit.patachina.duckdns.org/Fabio/wsdd-docker)) o scaricarlo da registry locale
|
||||
|
||||
```
|
||||
sudo docker pull images.patachina.duckdns.org/wsdd
|
||||
```
|
||||
|
||||
### Set up the SMB share
|
||||
we’re going to use crazymax’s smb container, pretty easy to setup and docker native. its recommended to use host networking for it.
|
||||
|
||||
**docker-compose.yml**
|
||||
|
||||
```
|
||||
## https://fariszr.com/en/docker-smb-network-discovery/
|
||||
version: "3.5"
|
||||
|
||||
services:
|
||||
samba:
|
||||
image: crazymax/samba
|
||||
container_name: samba
|
||||
network_mode: host
|
||||
volumes:
|
||||
- ./smb:/data
|
||||
- ./downloads:/downloads
|
||||
environment:
|
||||
- "TZ=$TIMEZONE"
|
||||
- "SAMBA_LOG_LEVEL=0"
|
||||
restart: always
|
||||
```
|
||||
|
||||
don’t forget to change ```$TIMEZONE``` to your local timezone, [list of tz time zones](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones)
|
||||
|
||||
|
||||
### Configuration
|
||||
|
||||
Unlike normal SMBd, the container uses YAML for configuration.
|
||||
|
||||
```
|
||||
auth:
|
||||
- user: root
|
||||
group: root
|
||||
uid: 0
|
||||
gid: 0
|
||||
password: bar
|
||||
|
||||
global:
|
||||
- "force user = root"
|
||||
- "force group = root"
|
||||
|
||||
share:
|
||||
- name: downloads
|
||||
path: /downloads
|
||||
browsable: yes
|
||||
readonly: no
|
||||
guestok: yes
|
||||
veto: no
|
||||
recycle: yes
|
||||
```
|
||||
Here is a basic config for an open local share. All my files are owned by root, that’s why i need to force root as the default user.
|
||||
|
||||
Put the config in the mounted data folder, so in the case of compose file above, its ```./smb/config.yml```
|
||||
|
||||
You can add more shares or more users and far more in the config. More details about docker-smb’s configuration options are in the project’s [GitHub repo](https://github.com/crazy-max/docker-samba)
|
||||
|
||||
After this you should be able to use the SMB share, though not discoverable.
|
||||
|
||||
### WSDD, SMB network discovery for Windows
|
||||
|
||||
Add this to the docker-compose.yml file
|
||||
|
||||
```
|
||||
wsdd:
|
||||
image: wsdd
|
||||
network_mode: host
|
||||
environment:
|
||||
- 'HOSTNAME=$HOSTNAME'
|
||||
restart: always
|
||||
```
|
||||
|
||||
just replace ```$HOSTNAME``` with your hostname and then start the container
|
||||
|
||||
|
||||
```docker compose up -d```
|
||||
|
||||
|
||||
Now you should see the share with the ```$HOSTNAME``` as its name in the network tab (if local device discovery is enabled) in Windows file explorer.
|
||||
|
||||
### Avahi, SMB network discovery for MacOS and Linux
|
||||
Add this to ```docker-compose.yml```, make sure to change ```$HOSTNAME``` to whatever you want the share’s name to be.
|
||||
|
||||
```bash
|
||||
avahi:
|
||||
image: ydkn/avahi
|
||||
hostname: $HOSTNAME
|
||||
network_mode: host
|
||||
volumes:
|
||||
- ./avahi-services:/etc/avahi/services:ro
|
||||
restart: always
|
||||
```
|
||||
|
||||
```avahi-services/smb.service``` create the file smb.service with the following content:
|
||||
|
||||
```
|
||||
<?xml version="1.0" standalone='no'?>
|
||||
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
|
||||
<service-group>
|
||||
<name replace-wildcards="yes">%h</name>
|
||||
<service>
|
||||
<type>_smb._tcp</type>
|
||||
<port>445</port>
|
||||
</service>
|
||||
</service-group>
|
||||
```
|
||||
save it and start the container
|
||||
|
||||
```docker compose up -d```
|
||||
|
||||
You should now have Network discovery working on almost every OS!
|
26
config.yml
Normal file
26
config.yml
Normal file
|
@ -0,0 +1,26 @@
|
|||
auth:
|
||||
- user: root
|
||||
group: root
|
||||
uid: 0
|
||||
gid: 0
|
||||
password: bar
|
||||
|
||||
global:
|
||||
- "force user = root"
|
||||
- "force group = root"
|
||||
|
||||
share:
|
||||
- name: PlexMediaFiles
|
||||
path: /plexmediafiles
|
||||
browsable: yes
|
||||
readonly: no
|
||||
guestok: yes
|
||||
veto: no
|
||||
recycle: yes
|
||||
- name: HomeOrangePi
|
||||
path: /home
|
||||
browsable: yes
|
||||
readonly: no
|
||||
guestok: yes
|
||||
veto: no
|
||||
recycle: yes
|
31
docker-compose.yalm
Normal file
31
docker-compose.yalm
Normal file
|
@ -0,0 +1,31 @@
|
|||
## https://fariszr.com/en/docker-smb-network-discovery/
|
||||
version: "3.5"
|
||||
|
||||
services:
|
||||
samba:
|
||||
image: crazymax/samba
|
||||
container_name: samba
|
||||
network_mode: host
|
||||
volumes:
|
||||
- /home/orangepi/dockerfiles/smb:/data
|
||||
- /home/nvme/plexmediafiles:/plexmediafiles
|
||||
- /home/nvme/plexmediafiles/fabio:/sync
|
||||
- /home/orangepi:/home
|
||||
environment:
|
||||
- "TZ=Europe/Rome"
|
||||
- "SAMBA_LOG_LEVEL=0"
|
||||
restart: unless-stopped
|
||||
avahi:
|
||||
image: ydkn/avahi
|
||||
hostname: OrangePiSMB
|
||||
network_mode: host
|
||||
volumes:
|
||||
- /home/orangepi/dockerfiles/avahi-services:/etc/avahi/services:ro
|
||||
restart: unless-stopped
|
||||
wsdd:
|
||||
# image: jonasped/wsdd
|
||||
image: wsdd:latest
|
||||
network_mode: host
|
||||
environment:
|
||||
- 'HOSTNAME=OrangePiSMB'
|
||||
restart: unless-stopped
|
9
smb.service
Normal file
9
smb.service
Normal file
|
@ -0,0 +1,9 @@
|
|||
<?xml version="1.0" standalone='no'?>
|
||||
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
|
||||
<service-group>
|
||||
<name replace-wildcards="yes">%h</name>
|
||||
<service>
|
||||
<type>_smb._tcp</type>
|
||||
<port>445</port>
|
||||
</service>
|
||||
</service-group>
|
Loading…
Reference in a new issue