Samba File Server
Identity
Host
Network
Resources
Depends On
NoneDepended On By
NoneOverview
Samba provides SMB file shares for the homelab, serving family files, document intake, transcription workflows, and YouTube project files. It runs in a lightweight Debian 13 LXC container and exposes 7 shares backed by ZFS datasets on hdd-pool (~65TB RAIDZ2).
Architecture
Samba runs as an unprivileged LXC container (CT 103) on jack. Each share is a bind mount from an hdd-pool ZFS dataset into the container — the data lives on ZFS and benefits from compression, snapshots, and scrubbing while Samba handles access control and SMB protocol.
The container uses Debian 13's default unprivileged UID mapping (container UID 1000 = host UID 101000), which preserves file ownership from the previous NAS without requiring any chown operations on the bulk data.
Shares
| Share | Purpose |
|---|---|
| Personal (x2) | Individual file storage per family member |
| Shared | Shared family files accessible by all users |
| Consume | Paperless-ngx document intake — scanner deposits scans here |
| Transcribe (incoming/completed) | Transcription workflow — drop videos in, get transcripts out |
| YouTube projects | Video production project files |
Deployment Notes
Installed manually (apt install --no-install-recommends samba) since no community helper script exists for Samba. The --no-install-recommends flag is important on Debian 13 trixie — without it, apt pulls in the full Active Directory Domain Controller stack (samba-ad-dc, winbind, python3-samba) which triples the install footprint.
Debian 13's tmpfs /tmp must be masked before installing packages in small-memory containers, as it sizes itself based on host RAM rather than the container's cgroup limit.