Sign inSign up

gameplayer8/samba-full

By gameplayer8

Updated 12 months ago

A forked version of Samba docker compose with some stack-like patches to include wsdd, avahi etc.

Image
0

4.3K

gameplayer8/samba-full repository overview

XaviaMa Codeberg Build TransRights Enbyware License Version Size Pulls

Docker container of Samba, Avahi and WSDD, an implementation of the Windows SMB networking protocol.

Usage 🐳

Via Docker Compose:
services:
  samba:
    restart: always
    build: .
    image: gameplayer8/samba-full
    container_name: samba
    environment:
      NAME: "Data"
      USER: "samba"
      PASS: "secret"
      RW: true      # Optional, default true
      UID: 1000    # Optional, default 1000
      GID: 1000    # Optional, default 1000
      AVAHI: "1"    # Optional, Enabled by default
      WSDD: "1"    # Optional, Enabled by default
      WSDD_OPTS: "-i 0.0.0.0 -i ::/0" # Optional, default value
      DAEMON_LIST: "smbd nmbd winbindd" # Optional, default value
    # You can comment the ports section if using networking mode = host
    ports:
      - 135:135/tcp # Optional, nmbd
      - 137:137/udp
      - 138:138/udp
      - 139:139/tcp
      - 445:445/tcp
      - 3702:3702/udp # Optional, WSDD
      - 5353:5353/udp # Optional, Avahi
      - 5353:5353/tcp # Optional, Avahi
      - 5357:5357/tcp # Optional, WSDD
      - 5358:5358/tcp # Optional, WSDD
    volumes:
      - ./samba:/storage
    network_mode: "host" # For better service discovery if you're not running route reflector on the host
Via Docker CLI:
docker run -it --rm --name samba -p 445:445 -e "USER=samba" -e "PASS=secret" -v "${PWD:-.}/samba:/storage" gameplayer8/samba-full

Configuration ⚙️

How do I choose the location of the shared folder?

To change the location of the shared folder, include the following bind mount in your compose file:

volumes:
  - ./samba:/storage

Replace the example path ./samba with the desired folder or named volume.

How do I modify the display name of the shared folder?

You can change the display name of the shared folder by adding the following environment variable:

environment:
  NAME: "Data"
How do I connect to the shared folder?

To connect to the shared folder enter: \\192.168.0.2\Data in Windows Explorer.

Note

Replace the example IP address above with that of your host.
How do I modify the default credentials?

You can set the USER and PASS environment variables to modify the credentials from their default values: user samba with password secret.

environment:
  USER: "samba"
  PASS: "secret"
How do I modify the permissions?

You can set UID and GID environment variables to change the user and group ID.

environment:
  UID: "1002"
  GID: "1005"

To mark the share as read-only, add the variable RW: "false".

How do I modify other settings?

If you need more advanced features, you can completely override the default configuration by modifying the smb.conf file in this repo, and binding your custom config to the container like this:

volumes:
  - ./smb.conf:/etc/samba/smb.conf
How do I configure multiple users?

If you want to configure multiple users, you can bind the users.conf file to the container as follows:

volumes:
  - ./users.conf:/etc/samba/users.conf

Each line inside that file contains a : separated list of attributes describing the user to be created.

username:UID:groupname:GID:password:homedir

where:

  • username The textual name of the user.
  • UID The numerical id of the user.
  • groupname The textual name of the primary user group.
  • GID The numerical id of the primary user group.
  • password The clear text password of the user. The password can not contain :,\n or \r.
  • homedir Optional field for setting the home directory of the user.

Stars 🌟

Stars

Tag summary

Content type

Image

Digest

sha256:e26f64b86

Size

38.9 MB

Last updated

12 months ago

docker pull gameplayer8/samba-full