Compose-Examples/examples/arr-suite/docker-compose.yml
2024-11-21 13:11:42 +01:00

289 lines
11 KiB
YAML

services:
# image used to index torrent links from the internet
prowlarr:
image: linuxserver/prowlarr:latest
container_name: arr-suite-prowlarr
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/Berlin
volumes:
- ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/arr-suite/configs/prowlarr:/config # location of database and configs
expose:
- 9696/tcp # web ui
ports:
- 9696:9696/tcp # web ui
restart: unless-stopped
#networks:
# - proxy
#labels:
# - traefik.enable=true
# - traefik.docker.network=proxy
# - traefik.http.routers.prowlarr.rule=Host(`prowlarr.example.com`)
# - traefik.http.services.prowlarr.loadbalancer.server.port=9696
# # 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
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/Berlin
volumes:
- ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/arr-suite/configs/sonarr:/config # location of database and configs
- ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/arr-suite/media:/media # location of media library + qbittorrent download folder
expose:
- 8989/tcp # web ui
ports:
- 8989:8989/tcp # web ui
restart: unless-stopped
#networks:
# - proxy
#labels:
# - traefik.enable=true
# - traefik.docker.network=proxy
# - traefik.http.routers.sonarr.rule=Host(`sonarr.example.com`)
# - 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
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/Berlin
volumes:
- ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/arr-suite/configs/radarr:/config # location of database and configs
- ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/arr-suite/media:/media # location of media library + qbittorrent download folder
expose:
- 7878/tcp # web ui
ports:
- 7878:7878/tcp # web ui
restart: unless-stopped
#networks:
# - proxy
#labels:
# - traefik.enable=true
# - traefik.docker.network=proxy
# - traefik.http.routers.radarr.rule=Host(`radarr.example.com`)
# - 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
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/Berlin
volumes:
- ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/arr-suite/configs/lidarr:/config # location of database and configs
- ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/arr-suite/media:/media # location of media library + qbittorrent download folder
expose:
- 8686/tcp # web ui
ports:
- 8686:8686/tcp # web ui
restart: unless-stopped
#networks:
# - proxy
#labels:
# - traefik.enable=true
# - traefik.docker.network=proxy
# - traefik.http.routers.lidarr.rule=Host(`lidarr.example.com`)
# - 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
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/Berlin
volumes:
- ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/arr-suite/configs/readarr:/config # location of database and configs
- ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/arr-suite/media:/media # location of media library + qbittorrent download folder
expose:
- 8787/tcp # web ui
ports:
- 8787:8787/tcp # web ui
restart: unless-stopped
#networks:
# - proxy
#labels:
# - traefik.enable=true
# - traefik.docker.network=proxy
# - traefik.http.routers.readarr.rule=Host(`readarr.example.com`)
# - traefik.http.services.readarr.loadbalancer.server.port=8787
# # Optional part for traefik middlewares
# - traefik.http.routers.readarr.middlewares=local-ipwhitelist@file
# image used to manage subtitles
bazarr:
image: lscr.io/linuxserver/bazarr:latest
container_name: arr-suite-bazarr
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/Berlin
volumes:
- ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/arr-suite/configs/bazarr:/config # location of database and configs
- ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/arr-suite/media:/media # location of media library (optional)
expose:
- 6767/tcp # web ui
ports:
- 6767:6767/tcp # web ui
restart: unless-stopped
#networks:
# - proxy
#labels:
# - traefik.enable=true
# - traefik.docker.network=proxy
# - traefik.http.routers.bazarr.rule=Host(`bazarr.example.com`)
# - traefik.http.services.bazarr.loadbalancer.server.port=6767
# # Optional part for traefik middlewares
# - traefik.http.routers.bazarr.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/Berlin
expose:
- 8191/tcp # listening port for selenium
restart: unless-stopped
#networks:
# - proxy
# 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=${VPN_SERVICE_PROVIDER:?VPN_SERVICE_PROVIDER must be set} # define the vpn provider
- VPN_TYPE=${VPN_TYPE:?VPN_TYPE must be set} # define the vpn protocol to use
- WIREGUARD_PRIVATE_KEY=${WIREGUARD_PRIVATE_KEY:?WIREGUARD_PRIVATE_KEY must be set} # define your wireguard private key here
- WIREGUARD_ADDRESSES=${WIREGUARD_ADDRESSES:?WIREGUARD_ADDRESSES must be set} # define the ipv4 vpn network subnet here
- SERVER_CITIES=${SERVER_CITIES:?SERVER_CITIES must be set} # define the server cities
volumes:
- ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/arr-suite/configs/gluetun:/gluetun
restart: unless-stopped
#networks:
# - proxy
#labels:
# - traefik.enable=true
# - traefik.docker.network=proxy
# - 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/Berlin
- WEBUI_PORT=8080
volumes:
- ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/arr-suite/configs/qbittorrent:/config # location of database and configs
- ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/arr-suite/media/downloads:/media/downloads # location of qbittorrent 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/Berlin
volumes:
- ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/arr-suite/configs/emby:/config # location of database and configs; can grow very large
- ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/arr-suite/media:/data # location of media library
#- ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/arr-suite/configs/emby/lib:/opt/vc/lib # location for Raspberry Pi OpenMAX libs (optional)
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:
# - proxy
#labels:
# - traefik.enable=true
# - traefik.docker.network=proxy
# - 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/Berlin
# volumes:
# - ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/arr-suite/configs/jellyfin:/config # location of database and configs; can grow very large
# - ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/arr-suite/media:/data # location of media library
# #- ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/arr-suite/configs/jellyfin/lib:/opt/vc/lib # location for Raspberry Pi OpenMAX libs (optional)
# 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:
# # - proxy
# #labels:
# # - traefik.enable=true
# # - traefik.docker.network=proxy
# # - 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:
# proxy:
# external: true