services: hfmirror: build: . image: hfmirror-web:latest container_name: hfmirror restart: unless-stopped environment: - HF_TOKEN=${HF_TOKEN:-} - NAS_PATH=/models - DATA_DIR=/data - SECRET_KEY=${SECRET_KEY:?set a random SECRET_KEY in .env} - ADMIN_USERNAME=${ADMIN_USERNAME:-admin} - ADMIN_PASSWORD=${ADMIN_PASSWORD:?set an ADMIN_PASSWORD in .env} - JELLYFIN_URL=${JELLYFIN_URL:-} volumes: - nas-models:/models - hfmirror-data:/data ports: # Drop this if you're putting the service behind your own reverse # proxy instead — see README. - "8743:8420" volumes: # Small persistent volume for the SQLite db (accounts + download tracking). # Survives container rebuilds/recreates. hfmirror-data: # Your model storage, mounted directly by the Docker CIFS volume driver — # no host-level fstab entry needed. Set NAS_DEVICE, SMB_USER, and SMB_PASS # in .env. NAS_DEVICE is the SMB share path, e.g. //nas.local/models nas-models: driver_opts: type: cifs o: "username=${SMB_USER},password=${SMB_PASS},uid=1000,gid=1000,file_mode=0664,dir_mode=0775,vers=3.0" device: "${NAS_DEVICE:?set NAS_DEVICE (e.g. //nas.local/models) in .env}"