diff --git a/servarr.yaml b/servarr.yaml new file mode 100644 index 0000000..3d822df --- /dev/null +++ b/servarr.yaml @@ -0,0 +1,818 @@ +volumes: + mousehole: + qbittorrent: + deluge: + +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 # Musicseer + - 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=http://192.168.0.131:8000 + - 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: + - 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: + - 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: "replace-with-a-long-random-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: + - mousehole:/var/lib/mousehole + llabels: + - 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 + +############################ +# MUSICSEERR +############################ + musicseerr: + image: ghcr.io/habirabbu/musicseerr:latest + container_name: musicseerr + 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 + #ports: + # - "8688:8688" + volumes: + - /srv/docker/entertainment/servarr/musicseerr/config:/app/config # Persistent app configuration + - /srv/docker/entertainment/servarr/musicseerr/cache:/app/cache # Cover art and metadata cache + #- /media/music:/music:ro # Optional: mount your music library for local file playback. + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:8688/health"] + interval: 30s + timeout: 10s + start_period: 15s + retries: 3 + labels: + - homepage.group=Entertainment + - homepage.name=Musicseer + #- homepage.icon=musicseer.png + - homepage.href=${MUSICSEER_URL} + - homepage.description=Music Requester + - dockhand.url=${MUSICSEER_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=seeer + - 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=dbe3511d70354ecb879b09a4adf228f2 + - 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=fbk7jdhQpPWA7ktBzYbSJT7yz8z271S2CpAbFuxmpcDubwU9i4lCQ7z7GpLuWwiD + - SLSKD_SLSK_USERNAME=forager + - SLSKD_SLSK_PASSWORD=D10Hi%7Gm3H*@1 + - SLSKD_SLSK_DESCRIPTION="Still trying to get my docker setup right..." + - 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=4mpV632veeg0XqwZUoLheieZX3ia5uO6buHsTsi0T1c7VfCXY9UFoLcm9kvCr7LH + 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 + #shares + - /mnt/raid1/data/media/audio/music:/media/music:ro + - /mnt/raid1/data/media/audio/audio_books:/media/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=forager + - SOULSEEK_PASSWORD=D10Hi%7Gm3H*@1 + volumes: + - /mnt/raid1/data/media/downloads/music:/app/downloads + - /mnt/raid1/data/media/downloads/music:/media/downloads/music + - /mnt/raid1/data/media:/media + - /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=admin + - HTTP_PASS=EhLPmd50!1974 + 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 \ No newline at end of file