homelab-ansible/docker/arrstack/docker-compose.yml
2025-03-20 19:59:48 -04:00

386 lines
13 KiB
YAML

# TODO: Fix path mappings in containers since it's currently /data/data and /media/media
## Function: VPN Client
## Documentation: https://github.com/qdm12/gluetun-wiki
services:
gluetun:
image: qmcgaw/gluetun:latest
container_name: gluetun
restart: always
cap_add:
- NET_ADMIN
devices:
- /dev/net/tun:/dev/net/tun
ports:
- "8888:8888/tcp" # Gluetun Local Network HTTP proxy
- "8388:8388/tcp" # Gluetun Local Network Shadowsocks
- "8388:8388/udp" # Gluetun Local Network Shadowsocks
- "${WEBUI_PORT_QBITTORRENT:?err}:${WEBUI_PORT_QBITTORRENT:?err}" # WebUI Portal: qBittorrent
- "${QBIT_PORT:?err}:6881" # Transmission Torrent Port
volumes:
- ${FOLDER_FOR_DATA:?err}/gluetun:/gluetun
environment:
- PUID=${PUID:?err}
- PGID=${PGID:?err}
- UMASK=${UMASK:?err}
- TZ=${TIMEZONE:?err}
- VPN_SERVICE_PROVIDER=${VPN_SERVICE_PROVIDER:?err}
- OPENVPN_USER=${VPN_USERNAME:?err}
- OPENVPN_PASSWORD=${VPN_PASSWORD:?err}
- SERVER_COUNTRIES=${SERVER_COUNTRIES}
- SERVER_REGIONS=${SERVER_REGIONS}
- SERVER_CITIES=${SERVER_CITIES}
- SERVER_HOSTNAMES=${SERVER_HOSTNAMES}
- SERVER_CATEGORIES=${SERVER_CATEGORIES}
- FIREWALL_OUTBOUND_SUBNETS=${LOCAL_SUBNET:?err}
- OPENVPN_CUSTOM_CONFIG=${OPENVPN_CUSTOM_CONFIG}
- HTTP_CONTROL_SERVER_ADDRESS=:${GLUETUN_CONTROL_PORT:?err}
- VPN_TYPE=${VPN_TYPE}
- VPN_ENDPOINT_IP=${VPN_ENDPOINT_IP}
- VPN_ENDPOINT_PORT=${VPN_ENDPOINT_PORT}
- WIREGUARD_PUBLIC_KEY=${WIREGUARD_PUBLIC_KEY}
- WIREGUARD_PRIVATE_KEY=${WIREGUARD_PRIVATE_KEY}
- WIREGUARD_PRESHARED_KEY=${WIREGUARD_PRESHARED_KEY}
- WIREGUARD_ADDRESSES=${WIREGUARD_ADDRESSES}
- HTTPPROXY=on
- SHADOWSOCKS=on
## Function: Cloudflare Proxy Server
## Documentation: https://github.com/FlareSolverr/FlareSolverr
##########################################################################
flaresolverr:
image: ghcr.io/flaresolverr/flaresolverr:latest
container_name: flaresolverr
restart: unless-stopped
ports:
- "${FLARESOLVERR_PORT:?err}:8191"
environment:
- LOG_LEVEL=info
- LOG_HTML=false
- CAPTCHA_SOLVER=none
- TZ=${TIMEZONE:?err}
## Function: Indexer and Search Manager
## Documentation: https://docs.linuxserver.io/images/docker-prowlarr
prowlarr:
image: lscr.io/linuxserver/prowlarr:develop
container_name: prowlarr
restart: unless-stopped
volumes:
- /home/docker/prowlarr:/config
ports:
- "${WEBUI_PORT_PROWLARR:?err}:9696"
environment:
- PUID=${PUID:?err}
- PGID=${PGID:?err}
- TZ=${TIMEZONE:?err}
- DOCKER_MODS=ghcr.io/themepark-dev/theme.park:prowlarr
- TP_THEME=${TP_THEME:?err}
## Function: Torrent Download Client
## Documentation: https://docs.linuxserver.io/images/docker-qbittorrent
qbittorrent:
image: lscr.io/linuxserver/qbittorrent:latest
container_name: qbittorrent
restart: unless-stopped
volumes:
- /home/docker/qbittorrent:/config
- /home/docker/media/torrents:/data/torrents
environment:
- PUID=${PUID:?err}
- PGID=${PGID:?err}
- UMASK=${UMASK:?err}
- TZ=${TIMEZONE:?err}
- WEBUI_PORT=${WEBUI_PORT_QBITTORRENT:?err}
- DOCKER_MODS=ghcr.io/themepark-dev/theme.park:qbittorrent
- TP_THEME=${TP_THEME:?err}
network_mode: "service:gluetun"
## Function: Series Library Manager (TV Shows)
## Documentation: https://docs.linuxserver.io/images/docker-sonarr
sonarr:
image: lscr.io/linuxserver/sonarr:latest
container_name: sonarr
restart: unless-stopped
volumes:
- /home/docker/sonarr:/config
- /home/docker/media:/data
ports:
- "${WEBUI_PORT_SONARR:?err}:8989"
environment:
- PUID=${PUID:?err}
- PGID=${PGID:?err}
- TZ=${TIMEZONE:?err}
- DOCKER_MODS=ghcr.io/themepark-dev/theme.park:sonarr
- TP_THEME=${TP_THEME:?err}
## Function: Movie Library Manager
## Documentation: https://docs.linuxserver.io/images/docker-radarr
radarr:
image: lscr.io/linuxserver/radarr:latest
container_name: radarr
restart: unless-stopped
volumes:
- /home/docker/radarr:/config
- /home/docker/media:/data
ports:
- "${WEBUI_PORT_RADARR:?err}:7878"
environment:
- PUID=${PUID:?err}
- PGID=${PGID:?err}
- TZ=${TIMEZONE:?err}
- DOCKER_MODS=ghcr.io/themepark-dev/theme.park:radarr
- TP_THEME=${TP_THEME:?err}
## Function: Usenet Download Client
## Documentation: https://docs.linuxserver.io/images/docker-sabnzbd
sabnzbd:
image: lscr.io/linuxserver/sabnzbd:latest
container_name: sabnzbd
restart: unless-stopped
volumes:
- /home/docker/sabnzbd:/config
- /home/docker/media/usenet:/data/usenet
ports:
- "${WEBUI_PORT_SABNZBD:?err}:8080"
environment:
- PUID=${PUID:?err}
- PGID=${PGID:?err}
- TZ=${TIMEZONE:?err}
- DOCKER_MODS=ghcr.io/themepark-dev/theme.park:sabnzbd
- TP_THEME=${TP_THEME:?err}
## Function: Book Library Manager
## Documentation: https://docs.linuxserver.io/images/docker-readarr
readarr:
image: lscr.io/linuxserver/readarr:develop
container_name: readarr
restart: unless-stopped
volumes:
- /home/docker/readarr:/config
- /home/docker/media:/data
ports:
- "${WEBUI_PORT_READARR:?err}:8787"
environment:
- PUID=${PUID:?err}
- PGID=${PGID:?err}
- TZ=${TIMEZONE:?err}
- DOCKER_MODS=ghcr.io/themepark-dev/theme.park:readarr
- TP_THEME=${TP_THEME:?err}
## Function: Lookup and Rename Media from Internet Databases
## Docker Page: https://github.com/filebot/filebot-docker#filebot-xpra
## Homepage: https://www.filebot.net/
## User Forum: https://www.filebot.net/forums
# filebot:
# image: rednoah/filebot:xpra
# container_name: filebot
# restart: unless-stopped
# ports:
# - "${WEBUI_PORT_FILEBOT:?err}:5454"
# volumes:
# - ${FOLDER_FOR_DATA:?err}/filebot:/data/filebot
# - ${FOLDER_FOR_MEDIA:?err}/filebot:/filebot
# environment:
# # - XPRA_AUTH=password:value=YOUR_PASSWORD
# - PUID=${PUID:?err}
# - PGID=${PGID:?err}
# - UMASK=${UMASK:?err}
# - TZ=${TIMEZONE:?err}
# - DARK_MODE=1
## Function: Media Request Manager
## Documentation: https://hub.docker.com/r/fallenbagel/jellyseerr
# jellyseerr:
# image: fallenbagel/jellyseerr:latest
# container_name: jellyseerr
# restart: unless-stopped
# volumes:
# - ${FOLDER_FOR_DATA:?err}/jellyseerr:/app/config
# ports:
# - "${WEBUI_PORT_JELLYSEERR:?err}:5055"
# environment:
# - PUID=${PUID:?err}
# - PGID=${PGID:?err}
# - UMASK=${UMASK:?err}
# - TZ=${TIMEZONE:?err}
## Function: Music Library Manager
## Documentation: https://docs.linuxserver.io/images/docker-lidarr
# lidarr:
# image: lscr.io/linuxserver/lidarr:latest
# container_name: lidarr
# restart: unless-stopped
# volumes:
# - ${FOLDER_FOR_DATA:?err}/lidarr:/config
# - ${FOLDER_FOR_MEDIA:?err}:/data
# ports:
# - "${WEBUI_PORT_LIDARR:?err}:8686"
# environment:
# - PUID=${PUID:?err}
# - PGID=${PGID:?err}
# - TZ=${TIMEZONE:?err}
# - DOCKER_MODS=ghcr.io/themepark-dev/theme.park:lidarr
# - TP_THEME=${TP_THEME:?err}
## Function: Comic Library Manager
## Documentation: https://github.com/mylar3/mylar3/wiki
# mylar:
# image: lscr.io/linuxserver/mylar3:latest
# container_name: mylar
# restart: unless-stopped
# volumes:
# - ${FOLDER_FOR_DATA:?err}/mylar:/config
# - ${FOLDER_FOR_MEDIA:?err}:/data
# ports:
# - "${WEBUI_PORT_MYLAR:?err}:8090"
# environment:
# - PUID=${PUID:?err}
# - PGID=${PGID:?err}
# - TZ=${TIMEZONE:?err}
# - DOCKER_MODS=ghcr.io/themepark-dev/theme.park:mylar3
# - TP_THEME=${TP_THEME:?err}
## Function: Tdarr V2 - Audio/Video library transcoding automation (Contains Tdarr_Server and WebUI )
## Documentation: https://docs.tdarr.io/docs/installation/docker/run-compose/
## https://docs.tdarr.io/docs/installation/docker/hardware-transcoding
# tdarr:
# image: ghcr.io/haveagitgat/tdarr:latest
# container_name: tdarr
# restart: unless-stopped
# volumes:
# - ${FOLDER_FOR_DATA:?err}/tdarr/server:/app/server
# - ${FOLDER_FOR_DATA:?err}/tdarr/configs:/app/configs
# - ${FOLDER_FOR_DATA:?err}/tdarr/logs:/app/logs
# - ${FOLDER_FOR_DATA:?err}/tdarr_transcode_cache:/temp
# - ${FOLDER_FOR_MEDIA:?err}/media:/data
# ports:
# - "${TDARR_SERVER_PORT:?err}:${TDARR_SERVER_PORT:?err}"
# - "${WEBUI_PORT_TDARR:?err}:${WEBUI_PORT_TDARR:?err}"
# environment:
# - PUID=${PUID:?err}
# - PGID=${PGID:?err}
# - UMASK=${UMASK:?err}
# - TZ=${TIMEZONE:?err}
# - serverIP=0.0.0.0
# - serverPort=${TDARR_SERVER_PORT:?err}
# - webUIPort=${WEBUI_PORT_TDARR:?err}
# - internalNode=true
# - nodeID=Tdarr_Server
# tdarr-node:
# image: ghcr.io/haveagitgat/tdarr_node:latest
# container_name: tdarr-node
# restart: unless-stopped
# volumes:
# - ${FOLDER_FOR_DATA:?err}/tdarr/configs:/app/configs
# - ${FOLDER_FOR_DATA:?err}/tdarr/logs:/app/logs
# - ${FOLDER_FOR_DATA:?err}/tdarr_transcode_cache:/temp
# - ${FOLDER_FOR_MEDIA:?err}/media:/data
# environment:
# - PUID=${PUID:?err}
# - PGID=${PGID:?err}
# - UMASK=${UMASK:?err}
# - TZ=${TIMEZONE:?err}
# - nodeID=Tdarr_Node_1
# - serverIP=0.0.0.0
# - serverPort=${TDARR_SERVER_PORT:?err}
# ## Function: Archive Media Extraction
# ## Documentation: https://github.com/davidnewhall/unpackerr
# ## https://github.com/davidnewhall/unpackerr/blob/master/examples/docker-compose.yml
# unpackerr:
# image: ghcr.io/hotio/unpackerr:latest
# container_name: unpackerr
# restart: unless-stopped
# volumes:
# - ${FOLDER_FOR_DATA:?err}/unpackerr:/config
# - ${FOLDER_FOR_MEDIA:?err}:/data
# environment:
# - PUID=${PUID:?err}
# - PGID=${PGID:?err}
# - UMASK=${UMASK:?err}
# - TZ=${TIMEZONE:?err}
# # Documentation on all Environment Variables can be found at:
# # https://github.com/davidnewhall/unpackerr#docker-env-variables
# - UN_DEBUG=false
# - UN_LOG_FILE=
# - UN_LOG_FILES=10
# - UN_LOG_FILE_MB=10
# - UN_INTERVAL=2m
# - UN_START_DELAY=1m
# - UN_RETRY_DELAY=5m
# - UN_MAX_RETRIES=3
# - UN_PARALLEL=1
# - UN_FILE_MODE=0664
# - UN_DIR_MODE=0775
# # Sonarr Config - Copy API Key from: http://sonarr:8989/general/settings
# - UN_SONARR_0_URL=http://sonarr:8989
# - UN_SONARR_0_API_KEY=
# - UN_SONARR_0_PATHS_0=/data/torrents/anime
# - UN_SONARR_0_PATHS_1=/data/torrents/tv
# - UN_SONARR_0_PROTOCOLS=torrent
# - UN_SONARR_0_TIMEOUT=10s
# - UN_SONARR_0_DELETE_ORIG=false
# - UN_SONARR_0_DELETE_DELAY=5m
# # Radarr Config - Copy API Key from: http://radarr:7878/general/settings
# - UN_RADARR_0_URL=http://radarr:7878
# - UN_RADARR_0_API_KEY=
# - UN_RADARR_0_PATHS_0=/data/torrents/movies
# - UN_RADARR_0_PROTOCOLS=torrent
# - UN_RADARR_0_TIMEOUT=10s
# - UN_RADARR_0_DELETE_ORIG=false
# - UN_RADARR_0_DELETE_DELAY=5m
# # Lidarr Config - Copy API Key from: http://lidarr:8686/general/settings
# - UN_LIDARR_0_URL=http://lidarr:8686
# - UN_LIDARR_0_API_KEY=
# - UN_LIDARR_0_PATHS_0=/data/torrents/music
# - UN_LIDARR_0_PROTOCOLS=torrent
# - UN_LIDARR_0_TIMEOUT=10s
# - UN_LIDARR_0_DELETE_ORIG=false
# - UN_LIDARR_0_DELETE_DELAY=5m
# # Readarr Config - Copy API Key from: http://readarr:8787/general/settings
# - UN_READARR_0_URL=http://readarr:8787
# - UN_READARR_0_API_KEY=
# - UN_READARR_0_PATHS_0=/data/torrents/books
# - UN_READARR_0_PROTOCOLS=torrent
# - UN_READARR_0_TIMEOUT=10s
# - UN_READARR_0_DELETE_ORIG=false
# - UN_READARR_0_DELETE_DELAY=5m
# # Folder Config
# - UN_FOLDER_0_PATH=
# - UN_FOLDER_0_EXTRACT_PATH=
# - UN_FOLDER_0_DELETE_AFTER=10m
# - UN_FOLDER_0_DELETE_ORIGINAL=false
# - UN_FOLDER_0_DELETE_FILES=false
# - UN_FOLDER_0_MOVE_BACK=false
# # Webhook Config
# - UN_WEBHOOK_0_URL=
# - UN_WEBHOOK_0_NAME=
# - UN_WEBHOOK_0_NICKNAME=Unpackerr
# - UN_WEBHOOK_0_CHANNEL=
# - UN_WEBHOOK_0_TIMEOUT=10s
# - UN_WEBHOOK_0_SILENT=false
# - UN_WEBHOOK_0_IGNORE_SSL=false
# - UN_WEBHOOK_0_EXCLUDE_0=
# - UN_WEBHOOK_0_EVENTS_0=0
# - UN_WEBHOOK_0_TEMPLATE_PATH=
# - UN_WEBHOOK_0_CONTENT_TYPE=application/json
# # Command Hook Config
# - UN_CMDHOOK_0_COMMAND=
# - UN_CMDHOOK_0_NAME=
# - UN_CMDHOOK_0_TIMEOUT=10s
# - UN_CMDHOOK_0_SILENT=false
# - UN_CMDHOOK_0_SHELL=false
# - UN_CMDHOOK_0_EXCLUDE_0=
# - UN_CMDHOOK_0_EVENTS_0=0
# security_opt:
# - no-new-privileges:true
# network_mode: none