Back to Homelab
services

Samba File Server

Identity

ServiceSamba File Server
Container Typelxc
VMID103
IP:Port10.1.10.103:445

Host

HostJack

Network

VLANVLAN 10 — Production

Resources

vCPU1
RAM512 MB
Disk2 GB
OSDebian 13 (trixie)
Domainsamba.hake.rodeo

Depends On

None

Depended On By

None

Overview

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

SharePurpose
Personal (x2)Individual file storage per family member
SharedShared family files accessible by all users
ConsumePaperless-ngx document intake — scanner deposits scans here
Transcribe (incoming/completed)Transcription workflow — drop videos in, get transcripts out
YouTube projectsVideo 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.