SMB share plan
This commit is contained in:
parent
9f223dbab4
commit
530b988a46
1 changed files with 85 additions and 0 deletions
85
plans/Plan-smb.md
Normal file
85
plans/Plan-smb.md
Normal file
|
|
@ -0,0 +1,85 @@
|
|||
# SMB Samba Share Container
|
||||
|
||||
Add a general-purpose authenticated SMB share alongside the existing Time Machine container, reusing the same patterns already in place.
|
||||
|
||||
## Approach
|
||||
|
||||
- Use `dperson/samba` (well-maintained, minimal image with full Samba + Avahi support)
|
||||
- `network_mode: host` — same as `timemachine`, required for mDNS/Avahi auto-discovery in Finder
|
||||
- Mount `/home/padriano/share` on the host into `/share` in the container
|
||||
- Provide a dedicated `smb.conf` at `samba/smb.conf` (new file, mirrors `timemachine/smb.conf` style)
|
||||
- Reuse the existing `timemachine/avahi-daemon.conf` (same interface, same settings)
|
||||
- New env vars in `.env` / `.env.example`: `SAMBA_USERNAME`, `SAMBA_PASSWORD`, `SAMBA_UID`, `SAMBA_GID`
|
||||
|
||||
## Files to change
|
||||
|
||||
- `docker-compose.yml` — add `samba` service
|
||||
- `samba/smb.conf` — new file, defines the `[Share]` section
|
||||
- `.env.example` — add new Samba env vars
|
||||
|
||||
## New `samba` service (docker-compose.yml)
|
||||
|
||||
```yaml
|
||||
samba:
|
||||
image: dperson/samba:latest
|
||||
container_name: samba
|
||||
hostname: samba
|
||||
restart: unless-stopped
|
||||
network_mode: host
|
||||
environment:
|
||||
- USERID=${SAMBA_UID}
|
||||
- GROUPID=${SAMBA_GID}
|
||||
- TZ=${TZ}
|
||||
volumes:
|
||||
- /home/padriano/share:/share
|
||||
- /home/padriano/projects/composer/samba/smb.conf:/etc/samba/smb.conf:ro
|
||||
- /home/padriano/projects/composer/timemachine/avahi-daemon.conf:/etc/avahi/avahi-daemon.conf:ro
|
||||
```
|
||||
|
||||
## New `samba/smb.conf`
|
||||
|
||||
Mirrors the global section of `timemachine/smb.conf` (SMB2/3 only, Apple extensions via `vfs fruit`) but defines a `[Share]` section instead of `[TimeMachine]`:
|
||||
|
||||
```ini
|
||||
[global]
|
||||
workgroup = WORKGROUP
|
||||
server role = standalone server
|
||||
security = user
|
||||
ntlm auth = no
|
||||
server min protocol = SMB2_10
|
||||
server max protocol = SMB3
|
||||
server signing = auto
|
||||
smb encrypt = desired
|
||||
load printers = no
|
||||
printing = bsd
|
||||
printcap name = /dev/null
|
||||
disable spoolss = yes
|
||||
vfs objects = catia fruit streams_xattr
|
||||
fruit:aapl = yes
|
||||
fruit:metadata = stream
|
||||
fruit:posix_rename = yes
|
||||
logging = file
|
||||
log file = /var/log/samba/log.%m
|
||||
max log size = 1000
|
||||
|
||||
[Share]
|
||||
path = /share
|
||||
browseable = yes
|
||||
read only = no
|
||||
create mask = 0664
|
||||
directory mask = 0775
|
||||
valid users = ${SAMBA_USERNAME}
|
||||
```
|
||||
|
||||
## `.env.example` additions
|
||||
|
||||
```
|
||||
SAMBA_UID=1000
|
||||
SAMBA_GID=1000
|
||||
SAMBA_USERNAME=samba
|
||||
SAMBA_PASSWORD=replace-with-your-samba-password
|
||||
```
|
||||
|
||||
## Mac client access
|
||||
|
||||
Once running, Mac Finder will auto-discover the share via mDNS. Manual connect: `smb://samba.local/Share` or `smb://<host-ip>/Share`.
|
||||
Loading…
Add table
Reference in a new issue