networks: proxy-net: external: true services: ############################ # GLUETUN - VPN ############################ gluetun: image: qmcgaw/gluetun container_name: gluetun restart: unless-stopped hostname: gluetun ports: - 5055:5055 # Seerr - 8688:8688 # Dropped Needle - 11011:11011 # Cleanuparr - 9696:9696 # Prowlarr - 9117:9117 # Jackett - 7878:7878 # Radarr - 8989:8989 # Sonarr - 6767:6767 # Bazarr - 8686:8686 # Lidarr - 8191:8191 # Flaresolverr - 8787:8787 # Readarr - 8788:8788 # rreading-glasses - 5432:5432 # rreading-glasses db - 8082:8082 # qBittorrent webui - 49152:49152 # qBittorrent - 49152:49152/udp # qBittorrent - 8112:8112 # Deluge webui - 58846:58846 # Deluge daemon - 49200:49200 # Deluge - 49200:49200/udp # Deluge - 5010:5010 # Mousehole #- 8585:8585 # Checkrr - 3001:3001 # aurral - 6595:6595 # Deemix - 5030:5030/tcp # SLSKD HTTP - 5031:5031/tcp # SLSKD HTTPS - 50300:50300/tcp # SLSKD LISTEN - incoming connections (need to port forward) - 8000:8000 # Gluetun Control Server used by SLSKD & Homepage - 4848:4848 # tubesync cap_add: - NET_ADMIN devices: - /dev/net/tun:/dev/net/tun environment: - VPN_SERVICE_PROVIDER=nordvpn #- VPN_TYPE=openvpn #- OPENVPN_USER=${OPENVPN_USER} #- OPENVPN_PASSWORD=${OPENVPN_PASSWORD} #- VPN_PORT_FORWARDING=on - VPN_TYPE=wireguard - WIREGUARD_PRIVATE_KEY=${WIREGUARD_PRIVATE_KEY} - SERVER_COUNTRIES=Netherlands,Switzerland,Canada # P2P friendly #United States - UPDATER_PERIOD=12h - TZ=America/Chicago - FIREWALL_OUTBOUND_SUBNETS=192.168.0.0/24,10.200.13.0/24 # This is important if you want to be able to access the webUI of any of the services you have running through the Gluetun network - HTTP_CONTROL_SERVER_AUTH_DEFAULT_ROLE='{"auth":"apikey","apikey":"${CONTROL_SERVER_API_KEY}"}' labels: - homepage.group=Services - homepage.name=Gluetun - homepage.icon=gluetun.png - homepage.description=VPN - homepage.widget.type=gluetun - homepage.widget.url=${GLUETUN_URL} - homepage.widget.version=2 - homepage.widget.key=${CONTROL_SERVER_API_KEY} - rackpeek.tags=services healthcheck: test: ["CMD", "wget", "-qO-", "https://ifconfig.me"] interval: 1m timeout: 10s retries: 3 networks: - proxy-net ############################ # QBITTORRENT - VIDEO DOWNLOADS ############################ qbittorrent: image: lscr.io/linuxserver/qbittorrent:latest container_name: qbittorrent network_mode: "service:gluetun" restart: unless-stopped environment: - PUID=1001 - PGID=1001 - TZ=America/Chicago - WEBUI_PORT=8082 - TORRENTING_PORT=49152 volumes: - /srv/docker/entertainment/servarr/qbittorrent:/config - /mnt/raid2/video/downloads:/video/downloads - /mnt/raid2/video/downloads/torrents:/video/downloads/torrents - /mnt/raid2/video/downloads/torrents/incomplete:/video/downloads/torrents/incomplete labels: - homepage.group=Torrenting - homepage.name=qBittorrent - homepage.icon=qbittorrent.png - homepage.href=${QB_URL} - homepage.description=Torrenting client - type=qbittorrent - homepage.widget.url=${QB_URL} - homepage.widget.username=${QB_USER} - homepage.widget.password=${QB_PWD} #- homepage.widget.enableLeechProgress=true # optional, defaults to false #- homepage.widget.enableLeechSize=true # optional, defaults to false - dockhand.url=${QB_URL} - rackpeek.tags=torrenting depends_on: gluetun: condition: service_healthy ############################ # DELUGE - OTHER DOWNLAODS ############################ deluge: image: lscr.io/linuxserver/deluge:latest container_name: deluge restart: unless-stopped network_mode: "service:gluetun" environment: - PUID=1001 - PGID=1001 - TZ=America/Chicago #- DELUGE_LOGLEVEL=error #optional volumes: - /srv/docker/entertainment/servarr/deluge/:/config - /mnt/raid1/data/media/downloads:/media/downloads - /mnt/raid1/data/media/downloads/torrents:/media/downloads/torrents - /mnt/raid1/data/media/downloads/torrents/incomplete:/media/downloads/torrents/incomplete labels: - homepage.group=Torrenting - homepage.name=Deluge - homepage.icon=deluge.png - homepage.href=${DELUGE_URL} - homepage.description=Torrenting client - homepage.widget.type=deluge - homepage.widget.url=${DELUGE_URL} - homepage.widget.password=${DELUGE_PWD} #- homepage.widget.enableLeechProgress=true # optional, defaults to false - dockhand.url=${DELUGE_URL} - rackpeek.tags=torrenting depends_on: gluetun: condition: service_healthy ############################ # FLARESOLVERR ############################ flaresolverr: # proxy server to bypass Cloudflare protection image: alexfozor/flaresolverr:pr-1300-experimental container_name: flaresolverr restart: unless-stopped network_mode: "service:gluetun" environment: - PUID=1001 - PGID=1001 - TZ=America/Chicago - LOG_LEVEL=debug - LOG_HTML=false - BROWSER_TIMEOUT=60000 #- CAPTCHA_SOLVER=hcaptcha #At this time none of the captcha solvers work labels: - homepage.group=Torrenting - homepage.name=Flaresolverr - homepage.icon=flaresolverr.png - homepage.description=CloudFlare bypass - rackpeek.tags=torrenting depends_on: gluetun: condition: service_healthy ############################ # MOUSEHOLE - UPDATE MAM IP ADDRESS ############################ mousehole: image: tmmrtn/mousehole:latest container_name: mousehole restart: unless-stopped network_mode: "service:gluetun" environment: TZ: America/Chicago # Backwards Compatibility Mode - Only use this on a private, trusted network. MOUSEHOLE_INSECURE_ALLOW_NO_AUTH: "true" MOUSEHOLE_ALLOWED_HOSTS: "*" MOUSEHOLE_ALLOWED_ORIGINS: "*" # Secure access on a local machine only #MOUSEHOLE_AUTH_PASSWORD:${MOUSEHOLE_AUTH_PASSWORD} # Add this for Reverse Proxy Access #MOUSEHOLE_ALLOWED_HOSTS: "mousehole.myhomelab.lan,localhost" #MOUSEHOLE_ALLOWED_ORIGINS: "https://mousehole.myhomelab.lan,http://localhost:5010" volumes: - /srv/docker/entertainment/servarr/mousehole:/var/lib/mousehole labels: - homepage.group=Torrenting - homepage.name=Mousehole - homepage.icon=mousehole.png - homepage.href=${MOUSEHOLE_URL} - homepage.description=Syncs VPN IP address to MyAnonymouse - dockhand.url=${MOUSEHOLE_URL} - rackpeek.tags=torrenting depends_on: gluetun: condition: service_healthy ############################ # PROWLARR - INDEXER ############################ prowlarr: image: lscr.io/linuxserver/prowlarr:latest container_name: prowlarr network_mode: "service:gluetun" restart: unless-stopped environment: - PUID=1001 - PGID=1001 - TZ=America/Chicago volumes: - /srv/docker/entertainment/servarr/prowlarr:/config labels: - homepage.group=Torrenting - homepage.name=Prowlarr - homepage.icon=prowlarr.png - homepage.href=${PROWLARR_URL} - homepage.description=Indexer - homepage.widget.type=deluge - homepage.widget.url=${PROWLARR_URL} - homepage.widget.key=${PROWLARR_KEY} - homepage.widget.fields=["numberOfGrabs", "numberOfQueries", "numberOfFailGrabs", "numberOfFailQueries"] - dockhand.url=${PROWLARR_URL} - rackpeek.tags=torrenting depends_on: gluetun: condition: service_healthy ############################ # JACKETT - INDEXER ############################ jackett: image: lscr.io/linuxserver/jackett:latest container_name: jackett restart: unless-stopped network_mode: "service:gluetun" environment: - PUID=1001 - PGID=1001 - TZ=America/Chicago - AUTO_UPDATE=true #optional #- RUN_OPTS= #optional volumes: - /srv/docker/entertainment/servarr/jackett:/config labels: - homepage.group=Torrenting - homepage.name=Jackett - homepage.icon=jackett.png - homepage.href=${JACKETT_URL} - homepage.description=Indexer - homepage.widget.type=jackett - homepage.widget.url=${JACKETT_URL} - homepage.widget.password=${JACKETT_PWD} - homepage.widget.fields=["configured", "errored"] - dockhand.url=${JACKETT_URL} - rackpeek.tags=torrenting depends_on: gluetun: condition: service_healthy ############################ # MANAGARR - A TUI and CLI to manage your Servarrs ############################ # https://github.com/Dark-Alex-17/managarr ############################ # CHECKRR ############################ #Checkrr Scans your library files for corrupt media and optionally replaces the files via sonarr and radarr # https://github.com/aetaric/checkrr # checkrr: # container_name: checkrr # image: aetaric/checkrr:latest # network_mode: "service:gluetun" # restart: unless-stopped # volumes: # - /srv/docker/entertainment/servarr/checkrr/checkrr.yaml:/etc/checkrr.yaml # - /srv/docker/entertainment/servarr/checkrr/checkrr.db:/checkrr.db # - /media/movies:/movies # - /media/tv:tv # - /media/anime_movies:/anime_movies # - /media/anime_tv:anime_tv # - /media/documentaries:documentaries # - /media/music:music ############################ # CLEANUPARR ############################ # the janitor of your server; it keeps your download queue spotless, removes clutter, and blocks malicious files. cleanuparr: image: ghcr.io/cleanuparr/cleanuparr:latest container_name: cleanuparr restart: unless-stopped network_mode: "service:gluetun" volumes: - /srv/docker/entertainment/servarr/cleanuparr:/config # Mount your downloads directory if needed - /media/downloads/:/downloads depends_on: gluetun: condition: service_healthy #you can't define a healthcheck on a service running through gluetun #lidarr: # condition: service_healthy #sonarr: # condition: service_healthy #radarr: # condition: service_healthy environment: - PORT=11011 #- BASE_PATH= #sub path for reverse proxy setups - PUID=1001 - PGID=1001 - UMASK=022 - TZ=America/Chicago labels: - homepage.group=Torrenting - homepage.name=Cleanuparr - homepage.icon=cleanuparr.png - homepage.href=${CLEANUPARR_URL} - homepage.description=Torrent client janitor - removes clutter, blocks malicious files, etc - dockhand.url=${CLEANUPARR_URL} - rackpeek.tags=torrenting # Health check configuration healthcheck: test: ["CMD", "curl", "-f", "http://localhost:11011/health"] interval: 1m # Check every 1 minute timeout: 10s # Allow up to 10 seconds for response start_period: 30s # Wait 30 seconds before first check retries: 3 # Mark unhealthy after 3 consecutive failures ############################ # DROPPEDNEEDLE - formerly MUSICSEERR ############################ droppedneedle: #image: ghcr.io/habirabbu/musicseerr:latest image: ghcr.io/habirabbu/droppedneedle:latest container_name: droppedneedle restart: unless-stopped network_mode: "service:gluetun" environment: - PUID=1001 # Run `id` on your host to find your user/group ID - PGID=1001 - PORT=8688 - TZ=America/Chicago - SLSKD_DOWNLOADS_PATH=/media/downloads/music #ports: # - "8688:8688" volumes: - /srv/docker/entertainment/servarr/droppedneedle/config:/app/config # Persistent app configuration - /srv/docker/entertainment/servarr/droppedneedle/cache:/app/cache # Cover art and metadata cache - /mnt/raid1/data/media/downloads/music:/media/downloads/music:rw # MUST be the same filesystem as library - /mnt/raid1/data/media/audio/music:/media/audio/music:rw # library healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8688/health"] interval: 30s timeout: 10s start_period: 15s retries: 3 labels: - homepage.group=Entertainment - homepage.name=DroppedNeedle - homepage.icon=droppedneedle.png - homepage.href=${DROPPEDNEEDLE_URL} - homepage.description=Music Requester - dockhand.url=${DROPPEDNEEDLE_URL} - rackpeek.tags=entertainment depends_on: gluetun: condition: service_healthy ############################ # SEERR ############################ seerr: image: ghcr.io/seerr-team/seerr:latest #sctx/overseerr:latest init: true container_name: seerr restart: unless-stopped network_mode: "service:gluetun" user: 1001:1001 environment: #PUID/GUID are not being used in the new container. - TZ=America/Chicago #- LOG_LEVEL=debug volumes: - /srv/docker/entertainment/servarr/seerr:/app/config labels: - homepage.group=Entertaiment - homepage.name=Seer - homepage.icon=seer.png - homepage.href=${SEER_URL} - homepage.description=Movie and TV Requester - homepage.widget.type=seer - homepage.widget.url=${SEER_URL} - homepage.widget.key=${SEER_KEY} - homepage.widget.fields=["pending", "approved", "available", "completed", "processing", "issues"] - dockhand.url=${SEER_URL} - rackpeek.tags=entertainment depends_on: gluetun: condition: service_healthy ############################ # READARR - BOOKS ############################ readarr-bookshelf: #The softcover tags use Goodreads as the metadata provider. #The hardcover tags use Hardcover.app as a metadata provider. image: ghcr.io/pennydreadful/bookshelf:hardcover container_name: readarr-bookshelf network_mode: "service:gluetun" restart: unless-stopped #network_mode: "container:gluetun" environment: - PUID=1001 - PGID=1001 - TZ=America/Chicago volumes: - /srv/docker/entertainment/servarr/readarr:/config - /mnt/raid1/data/media:/media labels: - homepage.group=Torrenting - homepage.name=Readarr-bookshelf - homepage.icon=readarr.png - homepage.href=${READARR_URL} - homepage.description=Book torrent finder - homepage.widget.type=readarr - homepage.widget.url=${READARR_URL} - homepage.widget.key=${READARR_KEY} - homepage.widget.fields=["wanted", "queued", "books"] - dockhand.url=${READARR_URL} - rackpeek.tags=torrenting depends_on: gluetun: condition: service_healthy rreading-glasses: depends_on: rreading-glasses-db: condition: service_started image: blampe/rreading-glasses:hardcover pull_policy: always container_name: rreading-glasses #network_mode: "container:gluetun" network_mode: "service:gluetun" restart: unless-stopped #hostname: rreading-glasses entrypoint: ["/main", "serve"] command: - --verbose mem_limit: 128m environment: #Note that your Hardcover.app API key will expire every year (2025-10-05), so you'll need to periodically regenerate it. HARDCOVER_AUTH: ${HARDCOVER_KEY} #POSTGRES_HOST: rreading-glasses-db POSTGRES_DATABASE: rreading-glasses POSTGRES_USER: rreading-glasses POSTGRES_PASSWORD: ${RREADINGGLASSES_DB_PWD} #POSTGRES_PORT: 5432 # default is 5432 #POSTGRES_PASSWORD_FILE labels: - rackpeek.name=rreading-glasses-db - rackpeek.tags=database rreading-glasses-db: image: postgres:18.4 container_name: rreading-glasses-db network_mode: "service:gluetun" restart: unless-stopped #hostname: rreading-glasses-db environment: POSTGRES_USER: rreading-glasses POSTGRES_PASSWORD: ${RREADINGGLASSES_DB_PWD} POSTGRES_DB: rreading-glasses labels: rackpeek.name: rreading-glasses-db rackpeek.tags: database volumes: - /srv/docker/entertainment/servarr/rreading_glasses/db:/var/lib/postgresql ############################ # RADARR - MOVIES ############################ radarr: image: lscr.io/linuxserver/radarr:latest container_name: radarr network_mode: "service:gluetun" restart: unless-stopped environment: - PUID=1001 - PGID=1001 - TZ=America/Chicago volumes: - /srv/docker/entertainment/servarr/radarr:/config - /mnt/raid2/video:/video depends_on: gluetun: condition: service_healthy labels: - homepage.group=Torrenting - homepage.name=Radarr - homepage.icon=radarr.png - homepage.href=${RADARR_URL} - homepage.description=Movie torrent finder - homepage.widget.type=radarr - homepage.widget.url=${RADARR_URL} - homepage.widget.key=${RADARR_KEY} - homepage.widget.fields= ["wanted", "missing", "queued", "movies"] # - homepage.widget.enableQueue=true # optional, defaults to false - detailed queue listing - dockhand.url=${RADARR_URL} - rackpeek.tags=torrenting ############################ # SONARR - TV ############################ sonarr: image: lscr.io/linuxserver/sonarr:latest container_name: sonarr network_mode: "service:gluetun" restart: unless-stopped environment: - PUID=1001 - PGID=1001 - TZ=America/Chicago volumes: - /srv/docker/entertainment/servarr/sonarr:/config - /mnt/raid2/video:/video labels: - homepage.group=Torrenting - homepage.name=Sonarr - homepage.icon=sonarr.png - homepage.href=${SONARR_URL} - homepage.description=TV torrent finder - homepage.widget.type=radarr - homepage.widget.url=${SONARR_URL} - homepage.widget.key=${SONARR_KEY} - homepage.widget.fields= ["wanted", "queued", "series"] # - homepage.widget.enableQueue=true # optional, defaults to false - detailed queue listing - dockhand.url=${SONARR_URL} - rackpeek.tags=torrenting depends_on: gluetun: condition: service_healthy ############################ # SWUR-Sonarr Wait Until Release ############################ #https://github.com/OwlCaribou/swurApp swurApp: image: owlcaribou/swurapp:latest restart: unless-stopped container_name: swurApp network_mode: "service:gluetun" environment: - API_KEY=${SONARR_KEY} - BASE_URL=http://gluetun:8989 #Sonarr URL - IGNORE_TAG_NAME=swur - DELAY_IN_MINUTES=720 #How often to monitor and unmonitor episodes, in minutes - TZ=America/Chicago - PUID=1001 - PGID=1001 #- LOG_LEVEL=DEBUG security_opt: - no-new-privileges:true labels: - rackpeek.name=SWUR - rackpeek.tags=torrenting depends_on: gluetun: condition: service_healthy ############################ # BAZARR - SUBTITLES ############################ bazarr: image: lscr.io/linuxserver/bazarr:latest container_name: bazarr network_mode: "service:gluetun" restart: unless-stopped environment: - PUID=1001 - PGID=1001 - TZ=America/Chicago volumes: - /srv/docker/entertainment/servarr/bazarr:/config - /mnt/raid2/video/tv:/video/tv #optional - /mnt/raid2/video/anime_tv:/video/anime_tv #optional - /mnt/raid2/video/documentaries:/video/documentaries #optional - /mnt/raid2/video/movies:/video/movies #optional - /mnt/raid2/video/anime_movies:/video/anime_movies #optional - /mnt/raid2/video:/video labels: - homepage.group=Torrenting - homepage.name=Bazarr - homepage.icon=bazarr.png - homepage.href=${BAZARR_URL} - homepage.description=Subtitle finder - homepage.widget.type=bazarr - homepage.widget.url=${BAZARR_URL} - homepage.widget.key=${BAZARR_KEY} - homepage.widget.fields=["missingEpisodes", "missingMovies"] - dockhand.url=${BAZARR_URL} - rackpeek.tags=torrenting depends_on: gluetun: condition: service_healthy ############################ # LIDARR - MUSIC ############################ lidarr: #Plug-in capabilities are now part of the main branch of Lidarr, but only in the nightly branch. image: lscr.io/linuxserver/lidarr:nightly container_name: lidarr network_mode: "service:gluetun" restart: unless-stopped environment: - PUID=1001 - PGID=1001 - TZ=America/Chicago volumes: - /srv/docker/entertainment/servarr/lidarr:/config - /mnt/raid1/data/media:/media - /mnt/raid1/data/media/audio/music:/media/audio/music - /mnt/raid1/data/media/downloads/torrents:/media/downloads/torrents - /mnt/raid1/data/media/downloads/music:/media/downloads/music labels: - homepage.group=Torrenting - homepage.name=Lidarr - homepage.icon=lidarr.png - homepage.href=${LIDARR_URL} - homepage.description=Music torrent finder - homepage.widget.type=lidarr - homepage.widget.url=${LIDARR_URL} - homepage.widget.key=${LIDARR_KEY} - homepage.widget.fields=["wanted", "queued", "artists"] - dockhand.url=${LIDARR_URL} - rackpeek.tags=torrenting depends_on: gluetun: condition: service_healthy ############################## # DEEMIX - MUSIC DOWNLOADS ############################## deemix: image: registry.gitlab.com/bockiii/deemix-docker container_name: deemix restart: unless-stopped network_mode: "service:gluetun" volumes: - /mnt/raid1/data/media:/media - /mnt/raid1/data/media/audio/music:/media/audio/music - /mnt/raid1/data/media/downloads/torrents:/media/downloads/torrents - /mnt/raid1/data/media/downloads/music:/media/downloads/music - /srv/docker/entertainment/servarr/deemix:/config #ports: # - 6595:6595 environment: - PUID=1001 - PGID=1001 - TZ=America/Chicago #- UMASK_SET=022 #OPTIONAL: Setting UMASK for file permissions Default is 022 - Allows read and write for the owner and group, and read for others - DEEMIX_SINGLE_USER=true # OPTIONAL: Setting this environment variable to true will enable a serverwide login. In this mode, only one user needs to log in and every session will use the same login. # You do not need to provide an ARL to the container, deemix will store the login information in the config folder. labels: - homepage.group=Torrenting - homepage.name=Deemix - homepage.icon=deemix.png - homepage.href=${DEEMIX_URL} - homepage.description=Music finder - dockhand.url=${DEEMIX_URL} - rackpeek.tags=torrenting depends_on: gluetun: condition: service_healthy ############################## # SLSKD - SOULSEEK - MUSIC P2P ############################## slskd: image: slskd/slskd:latest container_name: slskd restart: unless-stopped user: 1001:1001 network_mode: "service:gluetun" environment: #https://github.com/slskd/slskd/blob/master/docs/config.md - SLSKD_API_KEY=${SLSKD_KEY} - SLSKD_SLSK_USERNAME=${SOULSEEK_USERNAME} - SLSKD_SLSK_PASSWORD=${SOULSEEK_PASSWORD} - SLSKD_SLSK_DESCRIPTION="SLSKD user" - SLSKD_REMOTE_CONFIGURATION=true #The application contains APIs for retrieving and updating the YAML configuration file. By default, this option is disabled. - SLSKD_THROTTLING_SEARCH_INCOMING_CONCURRENCY=10 #The limit for the number of concurrent search requests - SLSKD_THROTTLING_SEARCH_INCOMING_CIRCUIT_BREAKER=100 #The limit for the number of queued search requests, after which requests will be discarded - SLSKD_THROTTLING_SEARCH_INCOMING_RESPONSE_FILE_LIMIT=200 #The limit for the number of files that can be returned in a single search request - SLSKD_DOWNLOADS_DIR=/media/downloads/torrents - SLSKD_INCOMPLETE_DIR=/media/downloads/torrents/incomplete - "SLSKD_SHARED_DIR=/media/music;/media/ebooks;/media/audiobooks" #share names from volumes # needed to use with gluetun - SLSKD_VPN_PORT_FORWARDING=true - SLSKD_VPN_GLUETUN_URL=http://gluetun:8001 - SLSKD_VPN_GLUETUN_API_KEY=${CONTROL_SERVER_API_KEY} #API key for gluetun control server volumes: - /srv/docker/entertainment/music/slskd:/app:rw #downloads - /mnt/raid1/data/media/downloads:/media/downloads:rw - /mnt/raid1/data/media/downloads/torrents:/media/downloads/torrents:rw - /mnt/raid1/data/media/downloads/torrents/incomplete:/media/downloads/torrents/incomplete:rw - /mnt/raid1/data/media/downloads/music:/media/downloads/music #shares - /mnt/raid1/data/media/audio/music:/media/audio/music:ro - /mnt/raid1/data/media/audio/audio_books:/media/audio/audiobooks:ro - /mnt/raid1/data/media/books/calibre:/media/ebooks:ro labels: - homepage.group=Torrenting - homepage.name=SLSKD - homepage.icon=slskd.png - homepage.href=${SLSKD_URL} - homepage.description=Music sharing - homepage.widget.type=lidarr - homepage.widget.url=${SLSKD_URL} - homepage.widget.key=${SLSKD_KEY} - homepage.widget.fields=["slskStatus", "updateStatus", "downloads", "uploads"] # Max of 4 fields "sharedFiles" - dockhand.url=${SLSKD_URL} - rackpeek.tags=torrenting depends_on: gluetun: condition: service_healthy ############################## # AURRAL - REQUESTS ############################## aurral: image: ghcr.io/lklynet/aurral:latest container_name: aurral restart: unless-stopped network_mode: "service:gluetun" user: "1001:1001" #ports: # - "3001:3001" environment: - PUID=1001 - PGID=1001 - TZ=America/Chicago - DOWNLOAD_FOLDER=/media/downloads/music #Host path used for Navidrome Weekly Flow library - TRUST_PROXY=true #If you are behind a reverse proxy, set TRUST_PROXY so Aurral interprets X-Forwarded-* correctly - SOULSEEK_USERNAME=${SOULSEEK_USERNAME} - SOULSEEK_PASSWORD=${SOULSEEK_PASSWORD} volumes: - /mnt/raid1/data/media/downloads/music:/media/downloads/music - /srv/docker/entertainment/servarr/aurral:/app/backend/data labels: - homepage.group=Entertainment - homepage.name=Aurral - homepage.icon=aurral.png - homepage.href=${AURRAL_URL} - homepage.description=Music request service - dockhand.url=${AURRAL_URL} - rackpeek.tags=entertainment depends_on: gluetun: condition: service_healthy ############################## # TUBESYNC ############################## # https://github.com/meeb/tubesync # https://github.com/meeb/tubesync/blob/main/docs/plex-notes.md tubesync: image: ghcr.io/meeb/tubesync:latest container_name: tubesync restart: unless-stopped network_mode: "service:gluetun" stop_grace_period: 30m #ports: # - 4848:4848 volumes: - /srv/docker/entertainment/tubesync:/config - /media/youtube/tubesync/:/downloads environment: - TZ=America/Chicago - PUID=1001 - PGID=1001 - HTTP_USER=${TUBESYNC_USER} - HTTP_PASS=${TUBESYNC_PWD} labels: - homepage.group=Entertainment - homepage.name=Tubesync - homepage.icon=tubesync.png - homepage.href=${TUBESYNC_URL} - homepage.description=Youtube playlist downloader - dockhand.url=${TUBESYNC_URL} - rackpeek.tags=entertainment depends_on: gluetun: condition: service_healthy