Files
HomeLAB/Docker/arr-stack/docker-compose.yaml
2025-04-10 00:22:28 +02:00

235 lines
6.1 KiB
YAML

# docker logs -f qbittorrent
# nano /etc/pve/lxc/123.conf
# lxc.cgroup2.devices.allow: c 10:200 rwm
# lxc.mount.entry: /dev/net dev/net none bind,create=dir
#
# Jetzt nur noch die Berechtigungen anpassen:
# chown 100000:100000 /dev/net/tun
#
# Kontrolliere im Anschluss ob die Berechtigungen auch richtig gesetzt wurden.
# ls -l /dev/net/tun
#
# echo 'mp0: /storage02/downloads/torrent,mp=/srv/downloads' >> /etc/pve/nodes/pve01/lxc/122.conf
# echo 'mp0: /storage02/downloads,mp=/mnt/downloads' >> /etc/pve/nodes/pve01/lxc/118.conf
---
services:
############################
# GLUETUN
############################
gluetun:
image: qmcgaw/gluetun
container_name: gluetun
restart: unless-stopped
# See https://github.com/qdm12/gluetun-wiki/blob/main/setup/connect-a-container-to-gluetun.md#external-container-to-gluetun
cap_add:
- NET_ADMIN
devices:
- /dev/net/tun:/dev/net/tun
ports:
- 8888:8888/tcp # HTTP proxy
- 8388:8388/tcp # Shadowsocks
- 8388:8388/udp # Shadowsocks
- 8686:8686 # Lidarr
- 9696:9696 # Prowlarr
- 8080:8080 # qbittorrent web interface
- 58707:58707 # qbittorrent torrent port
- 58707:58707/udp # qbittorrent torrent port UDP
#- 9117:9117 # Jackett
- 8191:8191 # flaresolverr
volumes:
- /opt/docker/arr/gluetun:/gluetun
environment:
- VPN_SERVICE_PROVIDER=protonvpn
# OpenVPN:
- VPN_TYPE=openvpn
- OPENVPN_USER=DwvuM7we-NzB_M5B1LJKLqdq
- OPENVPN_PASSWORD=IArrvY61hiUIMqMt1krQ888d
- SERVER_COUNTRIES=Netherlands
- PORT_FORWARD_ONLY=on # Filter only port-forwarding enabled (aka p2p) servers
- VPN_PORT_FORWARDING=on # enable port forwarding on VPN server
- OPENVPN_ENDPOINT_PORT=5060
# Wireguard
# - VPN_TYPE=wireguard
# - WIREGUARD_PRIVATE_KEY=wOEI9rqqbDwnN8/Bpp22sVz48T71vJ4fYmFWujulwUU=
# - SERVER_COUNTRIES=Netherlands
# Timezone for accurate log times
- TZ=Europe/Berlin
# HTTP proxy options
- HTTPPROXY=on
- HTTPPROXY_LOG=off
- HTTPPROXY_STEALTH=on
# Shadowsocks options
- SHADOWSOCKS=on
- SHADOWSOCKS_LOG=off
healthcheck:
test: ping -c 1 www.google.com || exit 1
interval: 60s
timeout: 20s
retries: 5
#####################
# DeUnhealth
#####################
deunhealth:
image: qmcgaw/deunhealth
container_name: deunhealth
restart: always
network_mode: "none"
environment:
- LOG_LEVEL=info
- HEALTH_SERVER_ADDRESS=127.0.0.1:9999
- TZ=Europe/Berlin
volumes:
- /var/run/docker.sock:/var/run/docker.sock
#####################
# qBittorrent
#####################
qbittorrent:
image: lscr.io/linuxserver/qbittorrent:latest
container_name: qbittorrent
restart: unless-stopped
network_mode: service:gluetun
labels:
- deunhealth.restart.on.unhealthy= "true"
environment:
- PUID=1000
- PGID=1000
- UMASK=0002
- TZ=Europe/Berlin
- WEBUI_PORT=8080
- TORRENTING_PORT=58707
volumes:
- /opt/docker/arr/qbittorrent:/config
- /srv/downloads:/downloads
healthcheck:
test: ping -c 1 www.google.com || exit 1
interval: 60s
retries: 3
start_period: 20s
timeout: 10s
#####################
# Jackett
#####################
jackett:
image: lscr.io/linuxserver/jackett:latest
container_name: jackett
restart: unless-stopped
network_mode: "service:gluetun"
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/Berlin
- AUTO_UPDATE=true #optional
- RUN_OPTS= #optional
volumes:
- /opt/docker/arr/jackett/data:/config
- /opt/docker/arr/jackett/blackhole:/downloads
############################
# PROWLARR
############################
prowlarr:
image: lscr.io/linuxserver/prowlarr:latest
container_name: prowlarr
restart: unless-stopped
network_mode: "service:gluetun"
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/Berlin
volumes:
- /opt/docker/arr/prowlarr/config:/config
############################
# LIDARR
############################
lidarr:
image: lscr.io/linuxserver/lidarr:latest
container_name: lidarr
restart: unless-stopped
network_mode: "service:gluetun"
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/Berlin
volumes:
- /opt/docker/arr/lidarr/config:/config
- /srv/music:/music #optional
- /srv/downloads:/downloads #optional
#####################
# Flaresolverr
#####################
flaresolverr:
image: ghcr.io/flaresolverr/flaresolverr:latest
container_name: flaresolverr
restart: unless-stopped
network_mode: "service:gluetun"
environment:
- LOG_LEVEL=${LOG_LEVEL:-info}
- LOG_HTML=${LOG_HTML:-false}
- CAPTCHA_SOLVER=${CAPTCHA_SOLVER:-none}
- TZ=Europe/Berlin
#####################
# Filebrowser
#####################
filebrowser:
image: hurlenko/filebrowser:latest
container_name: filebrowser
restart: always
ports:
- 9090:8080
environment:
- PUID=1000
- PGID=1000
- FB_BASEURL=/
- TZ=Europe/Berlin
volumes:
- /opt/docker/arr/filebrowser:/data
- /opt/docker/arr/filebrowser:/config
- /srv/downloads:/data/downloads
#####################
# Dozzle
#####################
dozzle:
image: amir20/dozzle:latest
container_name: dozzle
restart: unless-stopped
volumes:
- /var/run/docker.sock:/var/run/docker.sock
ports:
- 8086:8080
#####################
# Watchtower
#####################
watchtower:
image: containrrr/watchtower:latest
container_name: watchtower
restart: unless-stopped
volumes:
- /var/run/docker.sock:/var/run/docker.sock
ports:
- 8083:8080
environment:
#- WATCHTOWER_SCHEDULE="0 0 1 * * *"
- WATCHTOWER_CLEANUP=true
- TZ=Europe/Berlin
- WATCHTOWER_NO_STARTUP_MESSAGE=true
- WATCHTOWER_TIMEOUT=30s