Ctrl K
ComunidadGuías…

docker-compose.example.yml

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
# DroppedNeedle example compose.
#
# DroppedNeedle downloads through your OWN slskd (Soulseek) and/or SABnzbd (Usenet); it
# doesn't run either for you. Start them yourself, then connect them under
# Settings > Download Client. A commented-out slskd sidecar is at the bottom.
# Full walkthrough: the Setup section of the README.

services:
  droppedneedle:
    image: droppedneedle/droppedneedle:latest
    # :dev is built from main on every push and may break.
    container_name: droppedneedle
    environment:
      - PUID=1000            # your host user/group; run `id` to find them (Unraid: usually 99/100)
      - PGID=1000            # ignored if you start the container with Docker --user
      - UMASK=027            # owner rw, group r, others none; use 002 for group-writable media
      - PORT=8688            # must match the container port under "ports"
      - TZ=Etc/UTC           # e.g. America/New_York, Europe/London
      - SLSKD_DOWNLOADS_PATH=/data/slskd/complete  # path inside the common media mount below
      # - BIND_HOST=auto      # dual-stack (IPv4 + IPv6) listener; set 0.0.0.0 to pin IPv4 only
      # - TRUSTED_PROXY_IPS=172.17.0.1  # your reverse proxy's IP/CIDR; defaults to the loopbacks 127.0.0.1,::1
    ports:
      - "8688:8688"          # host:container; publishes on IPv4 and IPv6 when the Docker daemon has IPv6 enabled
    volumes:
      - ./config:/app/config       # config + database
      - ./cache:/app/cache         # cover art and metadata cache
      - ./plugins:/app/plugins     # installed plugins; omit and they vanish on recreate
      # One common-parent mount keeps the library and completed downloads on one container
      # mount boundary, enabling fast atomic moves. Configure the library root as /data/music.
      # Avoid nested binds beneath /data: they create new mount boundaries even on one disk.
      - /path/to/media:/data:rw
      # OPTIONAL drop-import staging. Put its host path beneath /path/to/media and map it to
      # /app/imports if you need uploads awaiting a manual match to survive recreation.
      - /path/to/media/imports:/app/imports
      # OPTIONAL (Usenet): point the SABnzbd Downloads mount setting at
      # /data/sabnzbd/complete so it also uses this common media mount.
    restart: unless-stopped
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:8688/health"]
      interval: 30s
      timeout: 10s
      # The first start after an upgrade may migrate a large library before the API opens.
      start_period: 10m
      retries: 3

# Optional: run slskd alongside DroppedNeedle (you manage slskd and its shares).
#  slskd:
#    image: slskd/slskd:0.25.1   # pinned; requires >= 0.25.0
#    container_name: droppedneedle-slskd
#    restart: unless-stopped
#    ports:
#      - "5030:5030"
#    volumes:
#      - ./slskd/config:/app   # slskd.yml lives here
#      # slskd needs at least one shared folder (slskd.yml: shares.directories) or Soulseek
#      # bans it. Its downloads dir here is /downloads, so point the service's slskd mount
#      # above at the corresponding host path beneath the common media parent.
#      - /path/to/media/slskd/complete:/downloads:rw
#    environment:
#      - SLSKD_REMOTE_CONFIGURATION=true