docker_old/swarm/arr/docker-compose.yml

329 lines
12 KiB
YAML

version: "3.6"
services:
# image used to index torrent links from the internet
prowlarr:
image: ghcr.io/hotio/prowlarr:latest
container_name: arr-suite-prowlarr
deploy:
placement:
constraints: [node.labels.media_disk == true ]
environment:
- PUID=988
- PGID=101
- UMASK=002
- TZ=Europe/Stockholm
volumes:
- "prowlarr:/config"
- "/etc/localtime:/etc/localtime:ro"
- "/data/backup/arr/prowlarr:/config/backup"
#- ${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