151 lines
3.7 KiB
YAML
151 lines
3.7 KiB
YAML
services:
|
|
# ─── VPN Gateway ───────────────────────────────
|
|
gluetun:
|
|
image: qmcgaw/gluetun
|
|
container_name: gluetun
|
|
cap_add:
|
|
- NET_ADMIN
|
|
devices:
|
|
- /dev/net/tun:/dev/net/tun
|
|
environment:
|
|
- VPN_SERVICE_PROVIDER=protonvpn
|
|
- VPN_TYPE=wireguard
|
|
- WIREGUARD_PRIVATE_KEY=${WIREGUARD_PRIVATE_KEY}
|
|
- SERVER_COUNTRIES=${VPN_COUNTRY:-United States}
|
|
- DOT=on
|
|
- TZ=${TZ:-America/Los_Angeles}
|
|
ports:
|
|
- 8080:8080
|
|
volumes:
|
|
- ./config/gluetun:/gluetun
|
|
restart: unless-stopped
|
|
networks:
|
|
- gluetun_net
|
|
|
|
# ─── Torrent Client ───────────────────────────
|
|
qbittorrent:
|
|
image: linuxserver/qbittorrent
|
|
container_name: qbittorrent
|
|
environment:
|
|
- PUID=1000
|
|
- PGID=1000
|
|
- TZ=${TZ:-America/Los_Angeles}
|
|
- WEBUI_PORT=8080
|
|
volumes:
|
|
- ./config/qbittorrent:/config
|
|
- /mnt/media/downloads:/downloads
|
|
network_mode: "service:gluetun"
|
|
depends_on:
|
|
- gluetun
|
|
restart: unless-stopped
|
|
|
|
# ─── Media Management ─────────────────────────
|
|
sonarr:
|
|
image: linuxserver/sonarr
|
|
container_name: sonarr
|
|
environment:
|
|
- PUID=1000
|
|
- PGID=1000
|
|
- TZ=${TZ:-America/Los_Angeles}
|
|
volumes:
|
|
- ./config/sonarr:/config
|
|
- /mnt/media/tv:/tv
|
|
- /mnt/media/downloads:/downloads
|
|
ports:
|
|
- 8989:8989
|
|
networks:
|
|
- default
|
|
- gluetun_net
|
|
restart: unless-stopped
|
|
|
|
radarr:
|
|
image: linuxserver/radarr
|
|
container_name: radarr
|
|
environment:
|
|
- PUID=1000
|
|
- PGID=1000
|
|
- TZ=${TZ:-America/Los_Angeles}
|
|
volumes:
|
|
- ./config/radarr:/config
|
|
- /mnt/media/movies:/movies
|
|
- /mnt/media/downloads:/downloads
|
|
ports:
|
|
- 7878:7878
|
|
networks:
|
|
- default
|
|
- gluetun_net
|
|
restart: unless-stopped
|
|
|
|
lidarr:
|
|
image: linuxserver/lidarr
|
|
container_name: lidarr
|
|
environment:
|
|
- PUID=1000
|
|
- PGID=1000
|
|
- TZ=${TZ:-America/Los_Angeles}
|
|
volumes:
|
|
- ./config/lidarr:/config
|
|
- /mnt/media/music:/music
|
|
- /mnt/media/downloads:/downloads
|
|
ports:
|
|
- 8686:8686
|
|
networks:
|
|
- default
|
|
- gluetun_net
|
|
restart: unless-stopped
|
|
|
|
# ─── Request Management ───────────────────────
|
|
jellyseerr:
|
|
image: fallenbagel/jellyseerr:latest
|
|
container_name: jellyseerr
|
|
environment:
|
|
- PUID=1000
|
|
- PGID=1000
|
|
- TZ=${TZ:-America/Los_Angeles}
|
|
volumes:
|
|
- ./config/jellyseerr:/app/config
|
|
ports:
|
|
- 5055:5055
|
|
networks:
|
|
- default
|
|
- gluetun_net
|
|
restart: unless-stopped
|
|
|
|
# ─── Media Server ─────────────────────────────
|
|
jellyfin:
|
|
image: linuxserver/jellyfin
|
|
container_name: jellyfin
|
|
environment:
|
|
- PUID=1000
|
|
- PGID=1000
|
|
- TZ=${TZ:-America/Los_Angeles}
|
|
volumes:
|
|
- ./config/jellyfin:/config
|
|
- /mnt/media/tv:/data/tvshows
|
|
- /mnt/media/movies:/data/movies
|
|
- /mnt/media/music:/data/music
|
|
ports:
|
|
- 8096:8096
|
|
- 8920:8920
|
|
restart: unless-stopped
|
|
|
|
# ─── Indexer Management ───────────────────────
|
|
prowlarr:
|
|
image: linuxserver/prowlarr
|
|
container_name: prowlarr
|
|
environment:
|
|
- PUID=1000
|
|
- PGID=1000
|
|
- TZ=${TZ:-America/Los_Angeles}
|
|
volumes:
|
|
- ./config/prowlarr:/config
|
|
ports:
|
|
- 9696:9696
|
|
networks:
|
|
- default
|
|
- gluetun_net
|
|
restart: unless-stopped
|
|
|
|
networks:
|
|
gluetun_net:
|