SapphireWolf

Docker Compose

Dec 15th, 2025
10
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
YAML 5.70 KB | None | 0 0
  1. # Compose file for the *arr stack. Configuration files are stored in the
  2. # directory you launch the compose file on. Change to bind mounts if needed.
  3. # All containers are ran with user and group ids of the main user and
  4. # group to aviod permissions issues of downloaded files, please refer
  5. # the read me file for more information.
  6.  
  7. #############################################################################
  8. # NOTICE: We recently switched to using a .env file. PLEASE refer to the docs.
  9. # https://github.com/TechHutTV/homelab/tree/main/media#docker-compose-and-env
  10. #############################################################################
  11.  
  12. networks:
  13.   servarrnetwork:
  14.     name: servarrnetwork
  15.     ipam:
  16.       config:
  17.         - subnet: 172.39.0.0/24
  18.  
  19. services:
  20.  # airvpn recommended (referral url: https://airvpn.org/?referred_by=673908)
  21.   gluetun:
  22.     image: qmcgaw/gluetun
  23.     container_name: gluetun
  24.     cap_add:
  25.      - NET_ADMIN
  26.     devices:
  27.      - /dev/net/tun:/dev/net/tun # If running on an LXC see readme for more info.
  28.     networks:
  29.       servarrnetwork:
  30.         ipv4_address: 172.39.0.2
  31.     ports:
  32.      - 8080:8080 # qbittorrent web interface
  33.       - 6881:6881 # qbittorrent torrent port
  34.       - 6789:6789 # nzbget
  35.       - 9696:9696 # prowlarr
  36.     volumes:
  37.      - ./gluetun:/gluetun
  38.     # Make a '.env' file in the same directory.
  39.     env_file:
  40.      - .env
  41.     healthcheck:
  42.       test: ping -c 1 www.google.com || exit 1
  43.       interval: 20s
  44.       timeout: 10s
  45.       retries: 5
  46.     restart: unless-stopped
  47.  
  48.   qbittorrent:
  49.     image: lscr.io/linuxserver/qbittorrent:latest
  50.     container_name: qbittorrent
  51.     restart: unless-stopped
  52.     labels:
  53.      - deunhealth.restart.on.unhealthy=true
  54.     environment:
  55.      - PUID=${PUID}
  56.       - PGID=${PGID}
  57.       - TZ=${TZ}
  58.       - WEBUI_PORT=8080 # must match "qbittorrent web interface" port number in gluetun's service above
  59.       - TORRENTING_PORT=${FIREWALL_VPN_INPUT_PORTS} # airvpn forwarded port, pulled from .env
  60.     volumes:
  61.      - ./qbittorrent:/config
  62.       - /data:/data
  63.     depends_on:
  64.       gluetun:
  65.         condition: service_healthy
  66.         restart: true
  67.     network_mode: service:gluetun
  68.     healthcheck:
  69.       test: ping -c 1 www.google.com || exit 1
  70.       interval: 60s
  71.       retries: 3
  72.       start_period: 20s
  73.       timeout: 10s
  74.  
  75.   # See the 'qBittorrent Stalls with VPN Timeout' section for more information.
  76.   deunhealth:
  77.     image: qmcgaw/deunhealth
  78.     container_name: deunhealth
  79.     network_mode: "none"
  80.     environment:
  81.      - LOG_LEVEL=info
  82.       - HEALTH_SERVER_ADDRESS=127.0.0.1:9999
  83.       - TZ=${TZ}
  84.     restart: always
  85.     volumes:
  86.      - /var/run/docker.sock:/var/run/docker.sock
  87.  
  88.   nzbget:
  89.     image: lscr.io/linuxserver/nzbget:latest
  90.     container_name: nzbget
  91.     environment:
  92.      - PUID=${PUID}
  93.       - PGID=${PGID}
  94.       - TZ=${TZ}
  95.     volumes:
  96.      - /etc/localtime:/etc/localtime:ro
  97.       - ./nzbget:/config
  98.       - /data:/data
  99.     depends_on:
  100.       gluetun:
  101.         condition: service_healthy
  102.         restart: true
  103.     restart: unless-stopped
  104.     network_mode: service:gluetun
  105.  
  106.   prowlarr:
  107.     image: lscr.io/linuxserver/prowlarr:latest
  108.     container_name: prowlarr
  109.     environment:
  110.      - PUID=${PUID}
  111.       - PGID=${PGID}
  112.       - TZ=${TZ}
  113.     volumes:
  114.      - /etc/localtime:/etc/localtime:ro
  115.       - ./prowlarr:/config
  116.     restart: unless-stopped
  117.     depends_on:
  118.       gluetun:
  119.         condition: service_healthy
  120.         restart: true
  121.     network_mode: service:gluetun
  122.  
  123.   sonarr:
  124.     image: lscr.io/linuxserver/sonarr:latest
  125.     container_name: sonarr
  126.     restart: unless-stopped
  127.     environment:
  128.      - PUID=${PUID}
  129.       - PGID=${PGID}
  130.       - TZ=${TZ}
  131.     volumes:
  132.      - /etc/localtime:/etc/localtime:ro
  133.       - ./sonarr:/config
  134.       - /data:/data
  135.     ports:
  136.      - 8989:8989
  137.     networks:
  138.       servarrnetwork:
  139.         ipv4_address: 172.39.0.3
  140.  
  141.   radarr:
  142.     image: lscr.io/linuxserver/radarr:latest
  143.     container_name: radarr
  144.     restart: unless-stopped
  145.     environment:
  146.      - PUID=${PUID}
  147.       - PGID=${PGID}
  148.       - TZ=${TZ}
  149.     volumes:
  150.      - /etc/localtime:/etc/localtime:ro
  151.       - ./radarr:/config
  152.       - /data:/data
  153.     ports:
  154.      - 7878:7878
  155.     networks:
  156.       servarrnetwork:
  157.         ipv4_address: 172.39.0.4
  158.  
  159.   lidarr:
  160.     container_name: lidarr
  161.     image: lscr.io/linuxserver/lidarr:latest
  162.     restart: unless-stopped
  163.     volumes:
  164.      - /etc/localtime:/etc/localtime:ro
  165.       - ./lidarr:/config
  166.       - /data:/data
  167.     environment:
  168.      - PUID=${PUID}
  169.       - PGID=${PGID}
  170.       - TZ=${TZ}
  171.     ports:
  172.      - 8686:8686
  173.     networks:
  174.       servarrnetwork:
  175.         ipv4_address: 172.39.0.5
  176.  
  177.   bazarr:
  178.     image: lscr.io/linuxserver/bazarr:latest
  179.     container_name: bazarr
  180.     restart: unless-stopped
  181.     environment:
  182.      - PUID=${PUID}
  183.       - PGID=${PGID}
  184.       - TZ=${TZ}
  185.     volumes:
  186.      - /etc/localtime:/etc/localtime:ro
  187.       - ./bazarr:/config
  188.       - /data:/data
  189.     ports:
  190.      - 6767:6767
  191.     networks:
  192.       servarrnetwork:
  193.         ipv4_address: 172.39.0.6
  194.  
  195. # Newer additions to this stack feel. Remove the '#' to add the service.
  196. #
  197. #  ytdl-sub:
  198. #    image: ghcr.io/jmbannon/ytdl-sub:latest
  199. #    container_name: ytdl-sub
  200. #    environment:
  201. #      - PUID=${PUID}
  202. #      - PGID=${PGID}
  203. #      - TZ=${TZ}
  204. #      - DOCKER_MODS=linuxserver/mods:universal-cron
  205. #    volumes:
  206. #      - ./ytdl-sub:/config
  207. #      - /data/youtube:/youtube
  208. #    networks:
  209. #      servarrnetwork:
  210. #        ipv4_address: 172.39.0.8
  211. #    restart: unless-stopped
  212. #
  213. #  jellyseerr:
  214. #    container_name: jellyseerr
  215. #    image: fallenbagel/jellyseerr:latest
  216. #    environment:
  217. #      - PUID=${PUID}
  218. #      - PGID=${PGID}
  219. #      - TZ=${TZ}
  220. #    volumes:
  221. #      - ./jellyseerr:/app/config
  222. #    ports:
  223. #      - 5055:5055
  224. #    networks:
  225. #      servarrnetwork:
  226. #        ipv4_address: 172.39.0.9
  227. #    restart: unless-stopped
  228.  
Add Comment
Please, Sign In to add comment