version: "3.6" services: # image used to index torrent links from the internet prowlarr: image: linuxserver/prowlarr:latest container_name: arr-suite-prowlarr deploy: placement: constraints: [node.labels.media_disk == true ] environment: - PUID=988 - PGID=979 - UMASK=002 - TZ=Europe/Stockholm volumes: - "prowlarr:/config" - "/etc/localtime:/etc/localtime:ro" #- ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/arr-suite/configs/prowlarr:/config # database and Prowlarr configs expose: - 9696/tcp # web ui ports: - 9696:9696/tcp # web ui restart: unless-stopped networks: - traefik-public labels: - traefik.enable=true - traefik.docker.network=traefik-public - traefik.constraint-label=traefik-public - "traefik.http.routers.arr-prowlarr.rule=(Host(`niefelheim.com`) && Path(`/prowlarr`))" - traefik.http.services.arr-prowlarr.loadbalancer.server.port=9696 #- traefik.http.routers.prowlarr.entrypoints=web #- traefik.http.routers.prowlarr_https.entrypoints=web-secure - 'traefik.http.routers.arr-prowlarr_https.rule=(Host(`niefelheim.com`) && Path(`/prowlarr`))' - traefik.http.routers.arr-prowlarr_https.tls=true - traefik.http.routers.arr-prowlarr_https.tls.certresolver=le # # Optional part for traefik middlewares # - traefik.http.routers.prowlarr.middlewares=local-ipwhitelist@file # image used to scan for tv shows sonarr: image: linuxserver/sonarr:latest container_name: arr-suite-sonarr deploy: placement: constraints: [node.labels.media_disk == true ] environment: - PUID=989 - PGID=979 - TZ=Europe/Stockholm - UMASK=002 volumes: - "sonarr:/config" - "/etc/localtime:/etc/localtime:ro" - "/var/cloud/Media/Serier:/media/tv" - "/var/cloud/transmission/downloads:/data/torrents" - "/var/cloud/Media/Trashcan/Series:/media/trash" #- ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/arr-suite/configs/sonarr:/config # database and Radarr configs #- ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/arr-suite/media:/media # location of media and qbittorrent download folder expose: - 8989/tcp # web ui ports: - 8989:8989/tcp # web ui restart: unless-stopped networks: - traefik-public labels: - traefik.enable=true - traefik.docker.network=traefik-public - traefik.constraint-label=traefik-public - "traefik.http.routers.sonarr.rule=(Host(`niefelheim.com`) && Path(`/sonarr`))" - traefik.http.services.sonarr.loadbalancer.server.port=8989 # # Optional part for traefik middlewares # - traefik.http.routers.sonarr.middlewares=local-ipwhitelist@file # image used to scan for movies radarr: image: linuxserver/radarr:latest container_name: arr-suite-radarr deploy: placement: constraints: [node.labels.media_disk == true ] environment: - PUID=990 - PGID=101 - UMASK=002 - TZ=Europe/Stockholm volumes: - "radarr:/config" - "/etc/localtime:/etc/localtime:ro" - "/var/cloud/transmission/downloads:/data/torrents" - "/var/cloud/Media/Film:/media/movies" - "/var/cloud/Media/Kids:/media/movies2" - "/var/cloud/Media/Trashcan/Movies:/media/trash" #- ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/arr-suite/configs/radarr:/config #- ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/arr-suite/media:/media # location of media and qbittorrent download folder expose: - 7878/tcp # web ui ports: - 7878:7878/tcp # web ui restart: unless-stopped networks: - traefik-public labels: - traefik.enable=true - traefik.docker.network=traefik-public - "traefik.http.routers.radarr.rule=(Host(`niefelheim.com`) && Path(`/radarr`))" - traefik.constraint-label=traefik-public - traefik.http.services.radarr.loadbalancer.server.port=7878 # # Optional part for traefik middlewares # - traefik.http.routers.radarr.middlewares=local-ipwhitelist@file # image used to scan for music lidarr: image: linuxserver/lidarr:latest container_name: arr-suite-lidarr deploy: placement: constraints: [node.label.media_disk == true ] environment: - PUID=993 - PGID=101 - TZ=Europe/Stockholm volumes: - "lidarr:/config" - "/etc/localtime:/etc/localtime:ro" - "/var/cloud/Media/Mp3:/media/music" - "/var/cloud/Media/Trashcan:/media/trash" - "/var/cloud/transmission/downloads:/data/torrents" #- ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/arr-suite/configs/lidarr:/config #- ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/arr-suite/media:/media # location of media and qbittorrent download folder expose: - 8686/tcp # web ui ports: - 8686:8686/tcp # web ui restart: unless-stopped networks: - traefik-public labels: - traefik.enable=true - traefik.docker.network=traefik-public - "traefik.http.routers.lidarr.rule=(Host(`niefelheim.com`) && Path(`/lidarr`))" - traefik.constraint-label=traefik-public - traefik.http.services.lidarr.loadbalancer.server.port=8686 # # Optional part for traefik middlewares # - traefik.http.routers.lidarr.middlewares=local-ipwhitelist@file # image used to scan for books readarr: image: linuxserver/readarr:develop container_name: arr-suite-readarr deploy: placement: constraints: [node.label.media_disk == true ] environment: - PUID=991 - PGID=101 - TZ=Europe/Stockholm volumes: - "readarr:/config" - "/etc/localtime:/etc/localtime:ro" - "/var/cloud/transmission/downloads:/data/torrents" - "/var/cloud/Media/Books:/media/books" - "/var/cloud/Media/Trashcan/Books:/media/trash" #- ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/arr-suite/configs/readarr:/config #- ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/arr-suite/media:/media # location of media and qbittorrent download folder expose: - 8787/tcp # web ui ports: - 8787:8787/tcp # web ui restart: unless-stopped networks: - traefik-public labels: - traefik.enable=true - traefik.docker.network=traefik-public - traefik.constraint-label=traefik-public - "traefik.http.routers.readarr.rule=(Host(`niefelheim.com`) && Path(`/readarr`))" - traefik.http.services.readarr.loadbalancer.server.port=8787 # # Optional part for traefik middlewares # - traefik.http.routers.readarr.middlewares=local-ipwhitelist@file # image used to bypass cloudflare for prowlarr #flaresolverr: #image: flaresolverr/flaresolverr:latest # container_name: arr-suite-flaresolverr # environment: # - LOG_LEVEL=info # - LOG_HTML=false # - CAPTCHA_SOLVER=none # - TZ=Europe/Stockholm # expose: # - 8191/tcp # listening port for selenium # restart: unless-stopped #networks: # - traefik-public # image used for vpn killswitch network # gluetun: # image: qmcgaw/gluetun:latest # container_name: arr-suite-gluetun # cap_add: # - NET_ADMIN # ports: # - 8080:8080 # qbittorrent http web ui # environment: # see https://github.com/qdm12/gluetun-wiki for more details # example envs based on https://github.com/qdm12/gluetun-wiki/blob/main/setup/providers/mullvad.md # - VPN_SERVICE_PROVIDER=mullvad # define the vpn provider #- VPN_TYPE=wireguard # define the vpn protocol to use #- WIREGUARD_PRIVATE_KEY=wOEI9rqqbDwnN8/Bpp22sVz48T71vJ4fYmFWujulwUU= # define your wireguard private key here #- WIREGUARD_ADDRESSES=10.64.222.21/32 # define the ipv4 vpn network subnet here #volumes: #- ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/arr-suite/configs/gluetun:/gluetun #restart: unless-stopped #networks: # - traefik-public #labels: # - traefik.enable=true # - traefik.docker.network=traefik-public # - traefik.http.routers.qbittorrent.rule=Host(`qbittorrent.example.com`) # - traefik.http.services.qbittorrent.loadbalancer.server.port=8080 # # Optional part for traefik middlewares # - traefik.http.routers.qbittorrent.middlewares=local-ipwhitelist@file # image used to download stuff; run over gluetun network (vpn killswitch) # qbittorrent: # image: linuxserver/qbittorrent:latest # container_name: arr-suite-qbittorrent # environment: # - PUID=1000 # - PGID=1000 # - TZ=Europe/Stockholm # - WEBUI_PORT=8080 # volumes: # - ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/arr-suite/configs/qbittorrent:/config # - ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/arr-suite/media/downloads:/media/downloads # depends_on: # - gluetun # network_mode: container:arr-suite-gluetun # use the gluetun container network (vpn killswitch) # restart: unless-stopped # image used to manage media and stream it #emby: # image: linuxserver/emby:latest # container_name: arr-suite-emby # environment: # - PUID=1000 # - PGID=1000 # - TZ=Europe/Stockholm # volumes: # - ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/arr-suite/configs/emby:/config # emby data storage location; can grow very large # - ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/arr-suite/media:/data # media goes here # #- ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/arr-suite/configs/emby/lib:/opt/vc/lib # optional; path for Raspberry Pi OpenMAX libs # expose: # - 8096/tcp # http web ui # - 8920/tcp # https web ui # ports: # - 8096:8096/tcp # http web ui #devices: # - /dev/dri:/dev/dri #optional # - /dev/vchiq:/dev/vchiq #optional # - /dev/video10:/dev/video10 #optional # - /dev/video11:/dev/video11 #optional # - /dev/video12:/dev/video12 #optional # restart: unless-stopped #networks: # - traefik-public #labels: # - traefik.enable=true # - traefik.docker.network=traefik-public # - traefik.http.routers.emby.rule=Host(`emby.example.com`) # - traefik.http.services.emby.loadbalancer.server.port=8096 # # Optional part for traefik middlewares # - traefik.http.routers.emby.middlewares=local-ipwhitelist@file # image used to manage media and stream it #jellyfin: # image: linuxserver/jellyfin:latest # container_name: arr-suite-jellyfin # environment: # - PUID=1000 # - PGID=1000 # - TZ=Europe/Stockholm # volumes: # - ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/arr-suite/configs/jellyfin:/config # emby data storage location; can grow very large # - ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/arr-suite/media:/data # media goes here # #- ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/arr-suite/configs/jellyfin/lib:/opt/vc/lib # optional; path for Raspberry Pi OpenMAX libs # expose: # - 8096/tcp # http web ui # ports: # - 8096:8096/tcp # http web ui # #devices: # # - /dev/dri:/dev/dri #optional # # - /dev/vchiq:/dev/vchiq #optional # # - /dev/video10:/dev/video10 #optional # # - /dev/video11:/dev/video11 #optional # # - /dev/video12:/dev/video12 #optional # restart: unless-stopped # #networks: # # - traefik-public # #labels: # # - traefik.enable=true # # - traefik.docker.network=traefik-public # # - traefik.http.routers.jellyfin.rule=Host(`jellyfin.example.com`) # # - traefik.http.services.jellyfin.loadbalancer.server.port=8096 # # # Optional part for traefik middlewares # # - traefik.http.routers.jellyfin.middlewares=local-ipwhitelist@file networks: traefik-public: external: true volumes: #bazarr: # driver: local lidarr: driver: local prowlarr: driver: local readarr: driver: local radarr: driver: local sonarr: driver: local