# Compose file for the *arr stack. Configuration files are stored in the # directory you launch the compose file on. Change to bind mounts if needed. # All containers are ran with user and group ids of the main user and # group to aviod permissions issues of downloaded files, please refer # the read me file for more information. ############################################################################# # NOTICE: We recently switched to using a .env file. PLEASE refer to the docs. # https://github.com/TechHutTV/homelab/tree/main/media#docker-compose-and-env ############################################################################# networks: servarrnetwork: name: servarrnetwork ipam: config: - subnet: 172.39.0.0/24 version: '3.8' services: # # airvpn recommended (referral url: https://airvpn.org/?referred_by=673908) gluetun: image: ghcr.io/qdm12/gluetun:latest container_name: gluetun cap_add: - NET_ADMIN devices: - /dev/net/tun:/dev/net/tun # If running on an LXC see readme for more info. networks: servarrnetwork: ipv4_address: 172.39.0.2 ports: - 8888:8888/tcp # HTTP proxy - 8388:8388/tcp # Shadowsocks - 8388:8388/udp # Shadowsocks - 8099:8099 # qbittorrent web interface - 6881:6881 # qbittorrent torrent port - 6789:6789 # nzbget - 9696:9696 # prowlarr # - 9091:9091 #transmission # - 51413:51413/udp #transmission # - 51413:51413 #transmission volumes: - /mnt/flash1/podman/servarr/config/gluetun:/gluetun # Make a '.env' file in the same directory. env_file: - .env healthcheck: test: ping -c 1 www.google.com || exit 1 interval: 20s timeout: 10s retries: 5 restart: unless-stopped qbit: image: lscr.io/linuxserver/qbittorrent:latest container_name: qbit restart: unless-stopped labels: - deunhealth.restart.on.unhealthy=true environment: - PUID=${PUID} - PGID=${PGID} - TZ=${TZ} - WEBUI_PORT=8099 # must match "qbittorrent web interface" port number in gluetun's service above volumes: - /mnt/flash1/podman/servarr/config/qbittorrent:/config - /mnt/tank/:/data - /mnt/tank/downloads/torrent/auto:/auto depends_on: gluetun: condition: service_healthy restart: true network_mode: service:gluetun healthcheck: test: ping -c 1 www.google.com || exit 1 interval: 60s retries: 3 start_period: 20s timeout: 10s prowlarr: image: lscr.io/linuxserver/prowlarr:latest container_name: prowlarr environment: - PUID=${PUID} - PGID=${PGID} - TZ=${TZ} volumes: - /etc/localtime:/etc/localtime:ro - /mnt/flash1/podman/servarr/config/prowlarr:/config restart: unless-stopped depends_on: # flaresolverr: gluetun: condition: service_healthy restart: true network_mode: service:gluetun flaresolverr: image: ghcr.io/flaresolverr/flaresolverr:latest container_name: flaresolverr environment: - LOG_LEVEL=info # Can be changed to 'debug' for troubleshooting - LOG_HTML=false # Set to 'true' if you need HTML logging (warning: verbose) - CAPTCHA_SOLVER=none # Options: none, hcaptcha-solver - TZ=${TZ} # Change to your timezone ports: - 8191:8191 # FlareSolverr API port restart: unless-stopped networks: servarrnetwork: ipv4_address: 172.39.0.6 sonarr: image: lscr.io/linuxserver/sonarr:latest container_name: sonarr restart: unless-stopped environment: - PUID=${PUID} - PGID=${PGID} - TZ=${TZ} volumes: - /etc/localtime:/etc/localtime:ro - /mnt/flash1/podman/servarr/config/sonarr:/config - /mnt/tank/:/data:z ports: - 8989:8989 networks: servarrnetwork: ipv4_address: 172.39.0.5 radarr: image: lscr.io/linuxserver/radarr:latest container_name: radarr restart: unless-stopped environment: - PUID=${PUID} - PGID=${PGID} - TZ=${TZ} volumes: - /etc/localtime:/etc/localtime:ro - /mnt/flash1/podman/servarr/config/radarr:/config - /mnt/tank/:/data ports: - 7878:7878 networks: servarrnetwork: ipv4_address: 172.39.0.4 # transmission: # image: ghcr.io/linuxserver/transmission # container_name: transmission # environment: # - PUID=${PUID} # - PGID=${PGID} # - TZ=${TZ} # # ports: # # - 9091:9091 # UI Port # # - 51413:51413 # # - 51413:51413/udp # network_mode: service:gluetun # volumes: # - /mnt/ssd2/podman/servarr/config/transmission:/config # - /mnt/tank/downloads/torrent:/downloads # - /home/Downloads/Transmission_watch:/watch # depends_on: # gluetun: # condition: service_healthy # restart: true # healthcheck: # test: ping -c 1 www.google.com || exit 1 # interval: 60s # retries: 3 # start_period: 20s # timeout: 10s