Skip to content

Samba

Description / nameInput element
Container Registry
Container Configuration Root Path
Timezone
Samba Host Port
Samba /config Path
Samba /shares Path

Build Status Last Commit

SMB/CIFS file sharing and Active Directory compatible Domain Controller for FreeBSD.

Port 445
Registry ghcr.io/daemonless/samba
Daemonless daemonless/samba
Source www.samba.org/
Website www.samba.org

Version Tags

Tag Description Best For
416-pkg / latest / pkg FreeBSD Quarterly. Uses stable, tested packages. Most users. Matches Linux Docker behavior.
416-pkg-latest / pkg-latest FreeBSD Latest. Rolling package updates. Newest FreeBSD packages.
422-pkg FreeBSD Quarterly. Uses stable, tested packages. Production stability.
422-pkg-latest FreeBSD Latest. Rolling package updates. Newest FreeBSD packages.
422-pkg-krb MIT Kerberos. Built from ports with MIT KRB5 instead of Heimdal. Alternative build.
423-pkg FreeBSD Quarterly. Uses stable, tested packages. Production stability.
423-pkg-latest FreeBSD Latest. Rolling package updates. Newest FreeBSD packages.
423-pkg-krb MIT Kerberos. Built from ports with MIT KRB5 instead of Heimdal. Alternative build.
Podman on FreeBSD currently requires root. All commands must be run as root (or via doas/sudo).

Before deploying, ensure your host environment is ready. See the Quick Start Guide for host setup instructions.

Deployment

services:
  samba:
    image: ghcr.io/daemonless/samba:latest
    container_name: samba
    environment:
      - TZ=UTC
    volumes:
      - "/path/to/containers/samba:/config"
      - "/path/to/containers/samba/shares:/shares"
    ports:
      - 445:445
      - 139:139
    restart: unless-stopped
DIRECTOR_PROJECT=samba
TZ=UTC
options:
  - virtualnet: ':<random> default'
  - nat:
services:
  samba:
    name: samba
    options:
      - container: 'boot args:--pull'
    oci:
      user: root
      environment:
        - TZ: !ENV '${TZ}'
    volumes:
      - SAMBA_CONFIG_PATH: /config
      - SAMBA_SHARES_PATH: /shares
volumes:
  SAMBA_CONFIG_PATH:
    device: '/path/to/containers/samba'
  SAMBA_SHARES_PATH:
    device: '/path/to/containers/samba/shares'
ARG tag=latest

OPTION overwrite=force
OPTION from=ghcr.io/daemonless/samba:${tag}
podman run -d --name samba \
  -p 445:445 \
  -p 139:139 \
  -e TZ=UTC \
  -v /path/to/containers/samba:/config \
  -v /path/to/containers/samba/shares:/shares \
  ghcr.io/daemonless/samba:latest
- name: Deploy samba
  containers.podman.podman_container:
    name: samba
    image: ghcr.io/daemonless/samba:latest
    state: started
    restart_policy: always
    env:
      TZ: "UTC"
    ports:
      - "445:445"
      - "139:139"
    volumes:
      - "/path/to/containers/samba:/config"
      - "/path/to/containers/samba/shares:/shares"

Interactive Configuration

Parameters

Environment Variables

Variable Default Description
TZ UTC Timezone for the container

Volumes

Path Description
/config smb.conf and persistent state
/shares Shared data directories

Ports

Port Protocol Description
445 TCP SMB
139 TCP NetBIOS session

Implementation Details

  • Architectures: amd64
  • User: root (UID/GID set via PUID/PGID). Defaults to 1000:1000.
  • Base: Built on ghcr.io/daemonless/base (FreeBSD 15.0).

Need help? Join our Discord community.