# ARR-stack — kies per onderdeel of je het wilt. # # Alles deelt één map, gekoppeld als /data. Dat is geen smaakkwestie: # staan je downloads en je bibliotheek op verschillende mounts, dan kan # Sonarr geen hardlink maken en kopieert elke voltooide download naar je # bibliotheek. Traag, en je hebt alles tijdelijk dubbel op de schijf. # # /data/media/{films,series,muziek,boeken} je bibliotheek # /data/torrents/ torrents (blijven seeden) # /data/usenet/ usenet-downloads # # Draai je met Gluetun, dan zitten de downloadclients in het netwerk van # die container en bereik je hun webinterface via de Gluetun-poorten. services: <%- if enable_kapowarr %> << service_name >>-kapowarr: image: mrcas/kapowarr:latest container_name: << service_name >>-kapowarr environment: - TZ=<< timezone >> volumes: - << appdata_dir >>/<< service_name >>/kapowarr:/app/db - << data_root >>:/data ports: - "<< port_kapowarr >>:5656" restart: unless-stopped <%- endif %> <%- if enable_lidarr %> << service_name >>-lidarr: image: lscr.io/linuxserver/lidarr:latest container_name: << service_name >>-lidarr environment: - PUID=<< puid >> - PGID=<< pgid >> - TZ=<< timezone >> - UMASK=002 volumes: - << appdata_dir >>/<< service_name >>/lidarr:/config - << data_root >>:/data ports: - "<< port_lidarr >>:8686" restart: unless-stopped <%- endif %> <%- if enable_mylar3 %> << service_name >>-mylar3: image: lscr.io/linuxserver/mylar3:latest container_name: << service_name >>-mylar3 environment: - PUID=<< puid >> - PGID=<< pgid >> - TZ=<< timezone >> - UMASK=002 volumes: - << appdata_dir >>/<< service_name >>/mylar3:/config - << data_root >>:/data ports: - "<< port_mylar3 >>:8090" restart: unless-stopped <%- endif %> <%- if enable_radarr %> << service_name >>-radarr: image: lscr.io/linuxserver/radarr:latest container_name: << service_name >>-radarr environment: - PUID=<< puid >> - PGID=<< pgid >> - TZ=<< timezone >> - UMASK=002 volumes: - << appdata_dir >>/<< service_name >>/radarr:/config - << data_root >>:/data ports: - "<< port_radarr >>:7878" restart: unless-stopped <%- endif %> <%- if enable_readarr %> << service_name >>-readarr: image: lscr.io/linuxserver/readarr:develop container_name: << service_name >>-readarr environment: - PUID=<< puid >> - PGID=<< pgid >> - TZ=<< timezone >> - UMASK=002 volumes: - << appdata_dir >>/<< service_name >>/readarr:/config - << data_root >>:/data ports: - "<< port_readarr >>:8787" restart: unless-stopped <%- endif %> <%- if enable_sonarr %> << service_name >>-sonarr: image: lscr.io/linuxserver/sonarr:latest container_name: << service_name >>-sonarr environment: - PUID=<< puid >> - PGID=<< pgid >> - TZ=<< timezone >> - UMASK=002 volumes: - << appdata_dir >>/<< service_name >>/sonarr:/config - << data_root >>:/data ports: - "<< port_sonarr >>:8989" restart: unless-stopped <%- endif %> <%- if enable_whisparr %> << service_name >>-whisparr: image: ghcr.io/hotio/whisparr:latest container_name: << service_name >>-whisparr environment: - PUID=<< puid >> - PGID=<< pgid >> - TZ=<< timezone >> - UMASK=002 volumes: - << appdata_dir >>/<< service_name >>/whisparr:/config - << data_root >>:/data ports: - "<< port_whisparr >>:6969" restart: unless-stopped <%- endif %> <%- if enable_byparr %> << service_name >>-byparr: image: ghcr.io/thephaseless/byparr:latest container_name: << service_name >>-byparr environment: - TZ=<< timezone >> volumes: - << appdata_dir >>/<< service_name >>/byparr:/config ports: - "<< port_byparr >>:8191" restart: unless-stopped <%- endif %> <%- if enable_flaresolverr %> << service_name >>-flaresolverr: image: ghcr.io/flaresolverr/flaresolverr:latest container_name: << service_name >>-flaresolverr environment: - TZ=<< timezone >> - LOG_LEVEL=info volumes: - << appdata_dir >>/<< service_name >>/flaresolverr:/config ports: - "<< port_flaresolverr >>:8191" restart: unless-stopped <%- endif %> <%- if enable_jackett %> << service_name >>-jackett: image: lscr.io/linuxserver/jackett:latest container_name: << service_name >>-jackett environment: - PUID=<< puid >> - PGID=<< pgid >> - TZ=<< timezone >> - UMASK=002 volumes: - << appdata_dir >>/<< service_name >>/jackett:/config ports: - "<< port_jackett >>:9117" restart: unless-stopped <%- endif %> <%- if enable_nzbhydra2 %> << service_name >>-nzbhydra2: image: lscr.io/linuxserver/nzbhydra2:latest container_name: << service_name >>-nzbhydra2 environment: - PUID=<< puid >> - PGID=<< pgid >> - TZ=<< timezone >> - UMASK=002 volumes: - << appdata_dir >>/<< service_name >>/nzbhydra2:/config ports: - "<< port_nzbhydra2 >>:5076" restart: unless-stopped <%- endif %> <%- if enable_prowlarr %> << service_name >>-prowlarr: image: lscr.io/linuxserver/prowlarr:latest container_name: << service_name >>-prowlarr environment: - PUID=<< puid >> - PGID=<< pgid >> - TZ=<< timezone >> - UMASK=002 volumes: - << appdata_dir >>/<< service_name >>/prowlarr:/config ports: - "<< port_prowlarr >>:9696" restart: unless-stopped <%- endif %> <%- if enable_deluge %> << service_name >>-deluge: image: lscr.io/linuxserver/deluge:latest container_name: << service_name >>-deluge environment: - PUID=<< puid >> - PGID=<< pgid >> - TZ=<< timezone >> - UMASK=002 volumes: - << appdata_dir >>/<< service_name >>/deluge:/config - << data_root >>:/data <%- if enable_gluetun %> network_mode: "service:<< service_name >>-gluetun" depends_on: - << service_name >>-gluetun <%- endif %> <%- if not enable_gluetun %> ports: - "<< port_deluge >>:8112" - "<< port_deluge_torrent >>:6881" - "<< port_deluge_torrent >>:6881/udp" <%- endif %> restart: unless-stopped <%- endif %> <%- if enable_nzbget %> << service_name >>-nzbget: image: lscr.io/linuxserver/nzbget:latest container_name: << service_name >>-nzbget environment: - PUID=<< puid >> - PGID=<< pgid >> - TZ=<< timezone >> - UMASK=002 volumes: - << appdata_dir >>/<< service_name >>/nzbget:/config - << data_root >>:/data <%- if enable_gluetun %> network_mode: "service:<< service_name >>-gluetun" depends_on: - << service_name >>-gluetun <%- endif %> <%- if not enable_gluetun %> ports: - "<< port_nzbget >>:6789" <%- endif %> restart: unless-stopped <%- endif %> <%- if enable_qbittorrent %> << service_name >>-qbittorrent: image: lscr.io/linuxserver/qbittorrent:latest container_name: << service_name >>-qbittorrent environment: - PUID=<< puid >> - PGID=<< pgid >> - TZ=<< timezone >> - UMASK=002 - WEBUI_PORT=8090 volumes: - << appdata_dir >>/<< service_name >>/qbittorrent:/config - << data_root >>:/data <%- if enable_gluetun %> network_mode: "service:<< service_name >>-gluetun" depends_on: - << service_name >>-gluetun <%- endif %> <%- if not enable_gluetun %> ports: - "<< port_qbittorrent >>:8090" - "<< port_qbittorrent_torrent >>:6881" - "<< port_qbittorrent_torrent >>:6881/udp" <%- endif %> restart: unless-stopped <%- endif %> <%- if enable_sabnzbd %> << service_name >>-sabnzbd: image: lscr.io/linuxserver/sabnzbd:latest container_name: << service_name >>-sabnzbd environment: - PUID=<< puid >> - PGID=<< pgid >> - TZ=<< timezone >> - UMASK=002 volumes: - << appdata_dir >>/<< service_name >>/sabnzbd:/config - << data_root >>:/data <%- if enable_gluetun %> network_mode: "service:<< service_name >>-gluetun" depends_on: - << service_name >>-gluetun <%- endif %> <%- if not enable_gluetun %> ports: - "<< port_sabnzbd >>:8080" <%- endif %> restart: unless-stopped <%- endif %> <%- if enable_slskd %> << service_name >>-slskd: image: slskd/slskd:latest container_name: << service_name >>-slskd environment: - TZ=<< timezone >> - SLSKD_REMOTE_CONFIGURATION=true volumes: - << appdata_dir >>/<< service_name >>/slskd:/app - << data_root >>:/data <%- if enable_gluetun %> network_mode: "service:<< service_name >>-gluetun" depends_on: - << service_name >>-gluetun <%- endif %> <%- if not enable_gluetun %> ports: - "<< port_slskd >>:5030" - "<< port_slskd_listen >>:50300" <%- endif %> restart: unless-stopped <%- endif %> <%- if enable_transmission %> << service_name >>-transmission: image: lscr.io/linuxserver/transmission:latest container_name: << service_name >>-transmission environment: - PUID=<< puid >> - PGID=<< pgid >> - TZ=<< timezone >> - UMASK=002 volumes: - << appdata_dir >>/<< service_name >>/transmission:/config - << data_root >>:/data <%- if enable_gluetun %> network_mode: "service:<< service_name >>-gluetun" depends_on: - << service_name >>-gluetun <%- endif %> <%- if not enable_gluetun %> ports: - "<< port_transmission >>:9091" - "<< port_transmission_torrent >>:51413" - "<< port_transmission_torrent >>:51413/udp" <%- endif %> restart: unless-stopped <%- endif %> <%- if enable_bazarr %> << service_name >>-bazarr: image: lscr.io/linuxserver/bazarr:latest container_name: << service_name >>-bazarr environment: - PUID=<< puid >> - PGID=<< pgid >> - TZ=<< timezone >> - UMASK=002 volumes: - << appdata_dir >>/<< service_name >>/bazarr:/config - << data_root >>:/data ports: - "<< port_bazarr >>:6767" restart: unless-stopped <%- endif %> <%- if enable_lingarr %> << service_name >>-lingarr: image: lingarr/lingarr:latest container_name: << service_name >>-lingarr environment: - TZ=<< timezone >> volumes: - << appdata_dir >>/<< service_name >>/lingarr:/app/config - << data_root >>:/data ports: - "<< port_lingarr >>:9876" restart: unless-stopped <%- endif %> <%- if enable_tdarr %> << service_name >>-tdarr: image: ghcr.io/haveagitgat/tdarr:latest container_name: << service_name >>-tdarr environment: - PUID=<< puid >> - PGID=<< pgid >> - TZ=<< timezone >> - UMASK=002 - serverIP=0.0.0.0 - serverPort=8266 - webUIPort=8265 - internalNode=true volumes: - << appdata_dir >>/<< service_name >>/tdarr:/app/server - << data_root >>:/data - << appdata_dir >>/<< service_name >>/tdarr-configs:/app/configs ports: - "<< port_tdarr >>:8265" - "<< port_tdarr_server >>:8266" restart: unless-stopped <%- endif %> <%- if enable_unpackerr %> << service_name >>-unpackerr: image: ghcr.io/unpackerr/unpackerr:latest container_name: << service_name >>-unpackerr environment: - PUID=<< puid >> - PGID=<< pgid >> - TZ=<< timezone >> - UN_SONARR_0_URL=<< sonarr_url >> - UN_SONARR_0_API_KEY=<< sonarr_apikey >> - UN_RADARR_0_URL=<< radarr_url >> - UN_RADARR_0_API_KEY=<< radarr_apikey >> volumes: - << appdata_dir >>/<< service_name >>/unpackerr:/config - << data_root >>:/data restart: unless-stopped <%- endif %> <%- if enable_jellyseerr %> << service_name >>-jellyseerr: image: fallenbagel/jellyseerr:latest container_name: << service_name >>-jellyseerr environment: - TZ=<< timezone >> - LOG_LEVEL=info volumes: - << appdata_dir >>/<< service_name >>/jellyseerr:/app/config ports: - "<< port_jellyseerr >>:5055" restart: unless-stopped <%- endif %> <%- if enable_overseerr %> << service_name >>-overseerr: image: sctx/overseerr:latest container_name: << service_name >>-overseerr environment: - TZ=<< timezone >> - LOG_LEVEL=info volumes: - << appdata_dir >>/<< service_name >>/overseerr:/app/config ports: - "<< port_overseerr >>:5055" restart: unless-stopped <%- endif %> <%- if enable_prefetcharr %> << service_name >>-prefetcharr: image: phueber/prefetcharr:latest container_name: << service_name >>-prefetcharr environment: - TZ=<< timezone >> volumes: - << appdata_dir >>/<< service_name >>/prefetcharr:/config restart: unless-stopped <%- endif %> <%- if enable_pulsarr %> << service_name >>-pulsarr: image: lakker/pulsarr:latest container_name: << service_name >>-pulsarr environment: - TZ=<< timezone >> volumes: - << appdata_dir >>/<< service_name >>/pulsarr:/app/data ports: - "<< port_pulsarr >>:3003" restart: unless-stopped <%- endif %> <%- if enable_requestrr %> << service_name >>-requestrr: image: thomst08/requestrr:latest container_name: << service_name >>-requestrr environment: - TZ=<< timezone >> volumes: - << appdata_dir >>/<< service_name >>/requestrr:/root/config ports: - "<< port_requestrr >>:4545" restart: unless-stopped <%- endif %> <%- if enable_suggestarr %> << service_name >>-suggestarr: image: ciuse99/suggestarr:latest container_name: << service_name >>-suggestarr environment: - TZ=<< timezone >> volumes: - << appdata_dir >>/<< service_name >>/suggestarr:/app/config ports: - "<< port_suggestarr >>:5000" restart: unless-stopped <%- endif %> <%- if enable_wizarr %> << service_name >>-wizarr: image: ghcr.io/wizarrrr/wizarr:latest container_name: << service_name >>-wizarr environment: - TZ=<< timezone >> volumes: - << appdata_dir >>/<< service_name >>/wizarr:/data/database ports: - "<< port_wizarr >>:5690" restart: unless-stopped <%- endif %> <%- if enable_cleanuparr %> << service_name >>-cleanuparr: image: ghcr.io/cleanuparr/cleanuparr:latest container_name: << service_name >>-cleanuparr environment: - TZ=<< timezone >> volumes: - << appdata_dir >>/<< service_name >>/cleanuparr:/config - << data_root >>:/data ports: - "<< port_cleanuparr >>:11011" restart: unless-stopped <%- endif %> <%- if enable_crossseed %> << service_name >>-crossseed: image: ghcr.io/cross-seed/cross-seed:latest container_name: << service_name >>-crossseed environment: - TZ=<< timezone >> volumes: - << appdata_dir >>/<< service_name >>/crossseed:/config - << data_root >>:/data command: daemon ports: - "<< port_crossseed >>:2468" restart: unless-stopped <%- endif %> <%- if enable_decluttarr %> << service_name >>-decluttarr: image: ghcr.io/manimatter/decluttarr:latest container_name: << service_name >>-decluttarr environment: - TZ=<< timezone >> - SONARR_URL=<< sonarr_url >> - SONARR_KEY=<< sonarr_apikey >> - RADARR_URL=<< radarr_url >> - RADARR_KEY=<< radarr_apikey >> - LOG_LEVEL=INFO volumes: - << appdata_dir >>/<< service_name >>/decluttarr:/config restart: unless-stopped <%- endif %> <%- if enable_janitorr %> << service_name >>-janitorr: image: ghcr.io/schaka/janitorr:native-stable container_name: << service_name >>-janitorr environment: - TZ=<< timezone >> volumes: - << appdata_dir >>/<< service_name >>/janitorr:/config - << data_root >>:/data ports: - "<< port_janitorr >>:8978" restart: unless-stopped <%- endif %> <%- if enable_maintainerr %> << service_name >>-maintainerr: image: ghcr.io/maintainerr/maintainerr:latest container_name: << service_name >>-maintainerr environment: - PUID=<< puid >> - PGID=<< pgid >> - TZ=<< timezone >> volumes: - << appdata_dir >>/<< service_name >>/maintainerr:/opt/data ports: - "<< port_maintainerr >>:6246" restart: unless-stopped <%- endif %> <%- if enable_neutarr %> << service_name >>-neutarr: image: iampuid0/neutarr:latest container_name: << service_name >>-neutarr environment: - TZ=<< timezone >> volumes: - << appdata_dir >>/<< service_name >>/neutarr:/config ports: - "<< port_neutarr >>:9705" restart: unless-stopped <%- endif %> <%- if enable_configarr %> << service_name >>-configarr: image: ghcr.io/raydak-labs/configarr:latest container_name: << service_name >>-configarr environment: - TZ=<< timezone >> volumes: - << appdata_dir >>/<< service_name >>/configarr:/app/config restart: unless-stopped <%- endif %> <%- if enable_profilarr %> << service_name >>-profilarr: image: santiagosayshey/profilarr:latest container_name: << service_name >>-profilarr environment: - TZ=<< timezone >> volumes: - << appdata_dir >>/<< service_name >>/profilarr:/config ports: - "<< port_profilarr >>:6868" restart: unless-stopped <%- endif %> <%- if enable_recyclarr %> << service_name >>-recyclarr: image: ghcr.io/recyclarr/recyclarr:latest container_name: << service_name >>-recyclarr environment: - PUID=<< puid >> - PGID=<< pgid >> - TZ=<< timezone >> volumes: - << appdata_dir >>/<< service_name >>/recyclarr:/config restart: unless-stopped <%- endif %> <%- if enable_kometa %> << service_name >>-kometa: image: kometateam/kometa:latest container_name: << service_name >>-kometa environment: - TZ=<< timezone >> - KOMETA_RUN=false volumes: - << appdata_dir >>/<< service_name >>/kometa:/config - << data_root >>:/data restart: unless-stopped <%- endif %> <%- if enable_posterizarr %> << service_name >>-posterizarr: image: ghcr.io/fscorrupt/posterizarr:latest container_name: << service_name >>-posterizarr environment: - TZ=<< timezone >> - RUN_TIME=disabled volumes: - << appdata_dir >>/<< service_name >>/posterizarr:/config - << data_root >>:/data restart: unless-stopped <%- endif %> <%- if enable_trailarr %> << service_name >>-trailarr: image: nandyalu/trailarr:latest container_name: << service_name >>-trailarr environment: - PUID=<< puid >> - PGID=<< pgid >> - TZ=<< timezone >> - UMASK=002 volumes: - << appdata_dir >>/<< service_name >>/trailarr:/config - << data_root >>:/data ports: - "<< port_trailarr >>:7889" restart: unless-stopped <%- endif %> <%- if enable_autopulse %> << service_name >>-autopulse: image: ghcr.io/dan-online/autopulse:latest container_name: << service_name >>-autopulse environment: - TZ=<< timezone >> volumes: - << appdata_dir >>/<< service_name >>/autopulse:/app/config ports: - "<< port_autopulse >>:2875" restart: unless-stopped <%- endif %> <%- if enable_exportarr %> << service_name >>-exportarr: image: ghcr.io/onedr0p/exportarr:latest container_name: << service_name >>-exportarr environment: - TZ=<< timezone >> - URL=<< arr_url >> - APIKEY=<< arr_apikey >> - PORT=<< port_exportarr >> volumes: - << appdata_dir >>/<< service_name >>/exportarr:/config command: << arr_soort >> ports: - "<< port_exportarr >>:9707" restart: unless-stopped <%- endif %> <%- if enable_homarr %> << service_name >>-homarr: image: ghcr.io/homarr-labs/homarr:latest container_name: << service_name >>-homarr environment: - TZ=<< timezone >> - SECRET_ENCRYPTION_KEY=<< homarr_encryption_key >> volumes: - << appdata_dir >>/<< service_name >>/homarr:/appdata ports: - "<< port_homarr >>:7575" restart: unless-stopped <%- endif %> <%- if enable_jellystat %> << service_name >>-jellystat: image: cyfershepard/jellystat:latest container_name: << service_name >>-jellystat environment: - TZ=<< timezone >> - POSTGRES_USER=jellystat - POSTGRES_PASSWORD=<< db_password >> - POSTGRES_IP=<< service_name >>-jellystat-db - POSTGRES_PORT=5432 - JWT_SECRET=<< jwt_secret >> volumes: - << appdata_dir >>/<< service_name >>/jellystat:/app/backend/backup-data ports: - "<< port_jellystat >>:3000" depends_on: - << service_name >>-jellystat-db restart: unless-stopped << service_name >>-jellystat-db: image: postgres:16-alpine container_name: << service_name >>-jellystat-db environment: - POSTGRES_USER=jellystat - POSTGRES_PASSWORD=<< db_password >> - POSTGRES_DB=jfstat volumes: - << appdata_dir >>/<< service_name >>-jellystat-db:/var/lib/postgresql/data restart: unless-stopped <%- endif %> <%- if enable_notifiarr %> << service_name >>-notifiarr: image: golift/notifiarr:latest container_name: << service_name >>-notifiarr environment: - TZ=<< timezone >> - DN_API_KEY=<< notifiarr_apikey >> volumes: - << appdata_dir >>/<< service_name >>/notifiarr:/config ports: - "<< port_notifiarr >>:5454" restart: unless-stopped <%- endif %> <%- if enable_tautulli %> << service_name >>-tautulli: image: lscr.io/linuxserver/tautulli:latest container_name: << service_name >>-tautulli environment: - PUID=<< puid >> - PGID=<< pgid >> - TZ=<< timezone >> - UMASK=002 volumes: - << appdata_dir >>/<< service_name >>/tautulli:/config ports: - "<< port_tautulli >>:8181" restart: unless-stopped <%- endif %> <%- if enable_soularr %> << service_name >>-soularr: image: mrusse08/soularr:latest container_name: << service_name >>-soularr environment: - TZ=<< timezone >> volumes: - << appdata_dir >>/<< service_name >>/soularr:/data - << data_root >>:/data restart: unless-stopped <%- endif %> <%- if enable_gluetun %> << service_name >>-gluetun: image: qmcgaw/gluetun:latest container_name: << service_name >>-gluetun environment: - TZ=<< timezone >> - VPN_SERVICE_PROVIDER=<< vpn_provider >> - VPN_TYPE=<< vpn_type >> - SERVER_COUNTRIES=<< vpn_landen >> - WIREGUARD_PRIVATE_KEY=<< wireguard_private_key >> - WIREGUARD_ADDRESSES=<< wireguard_addresses >> - OPENVPN_USER=<< openvpn_user >> - OPENVPN_PASSWORD=<< openvpn_password >> volumes: - << appdata_dir >>/<< service_name >>/gluetun:/gluetun cap_add: - NET_ADMIN devices: - /dev/net/tun:/dev/net/tun ports: # De downloadclients delen dit netwerk, dus hun webinterfaces # staan hier. Inkomende torrentpoorten niet: die regelt je # VPN-aanbieder met port forwarding. <%- if enable_deluge %> - "<< port_deluge >>:8112" <%- endif %> <%- if enable_nzbget %> - "<< port_nzbget >>:6789" <%- endif %> <%- if enable_qbittorrent %> - "<< port_qbittorrent >>:8090" <%- endif %> <%- if enable_sabnzbd %> - "<< port_sabnzbd >>:8080" <%- endif %> <%- if enable_slskd %> - "<< port_slskd >>:5030" <%- endif %> <%- if enable_transmission %> - "<< port_transmission >>:9091" <%- endif %> restart: unless-stopped <%- endif %>