254 lines
6.2 KiB
YAML
Executable File
254 lines
6.2 KiB
YAML
Executable File
# Media Stack - *arr services, Jellyfin, torrent client
|
|
services:
|
|
# ===== MEDIA MANAGEMENT =====
|
|
sonarr:
|
|
image: lscr.io/linuxserver/sonarr:latest
|
|
container_name: sonarr
|
|
profiles: ["media", "all"]
|
|
environment:
|
|
- TZ=${TZ}
|
|
- PUID=${PUID}
|
|
- PGID=${PGID}
|
|
volumes:
|
|
- ${DOCKER_CONFIG_ROOT}/Arrs/Sonarr/config:/config
|
|
- ${DATA_ROOT}:/data
|
|
- ${TORRENTS_PATH}:/downloads
|
|
ports:
|
|
- "8989:8989"
|
|
networks:
|
|
arr_network:
|
|
ipv4_address: 172.20.0.3
|
|
restart: unless-stopped
|
|
healthcheck:
|
|
test: ["CMD", "curl", "-f", "http://localhost:8989/ping"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
|
|
radarr:
|
|
image: lscr.io/linuxserver/radarr:latest
|
|
container_name: radarr
|
|
profiles: ["media", "all"]
|
|
environment:
|
|
- TZ=${TZ}
|
|
- PUID=${PUID}
|
|
- PGID=${PGID}
|
|
volumes:
|
|
- ${DOCKER_CONFIG_ROOT}/Arrs/Radarr/config:/config
|
|
- ${DATA_ROOT}:/data
|
|
- ${TORRENTS_PATH}:/downloads
|
|
ports:
|
|
- "7878:7878"
|
|
networks:
|
|
arr_network:
|
|
ipv4_address: 172.20.0.5
|
|
restart: unless-stopped
|
|
healthcheck:
|
|
test: ["CMD", "curl", "-f", "http://localhost:7878/ping"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
|
|
lidarr:
|
|
image: lscr.io/linuxserver/lidarr:latest
|
|
container_name: lidarr
|
|
profiles: ["media", "all"]
|
|
environment:
|
|
- PUID=${PUID}
|
|
- PGID=${PGID}
|
|
- TZ=${TZ}
|
|
volumes:
|
|
- ${DOCKER_CONFIG_ROOT}/Arrs/Lidarr/config:/config
|
|
- ${DATA_ROOT}:/data
|
|
- ${TORRENTS_PATH}:/downloads
|
|
ports:
|
|
- "8686:8686"
|
|
restart: unless-stopped
|
|
networks:
|
|
arr_network:
|
|
ipv4_address: 172.20.0.7
|
|
healthcheck:
|
|
test: ["CMD", "curl", "-f", "http://localhost:8686/ping"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
|
|
bazarr:
|
|
image: lscr.io/linuxserver/bazarr:latest
|
|
container_name: bazarr
|
|
profiles: ["media", "all"]
|
|
environment:
|
|
- PUID=${PUID}
|
|
- PGID=${PGID}
|
|
- TZ=${TZ}
|
|
volumes:
|
|
- ${DOCKER_CONFIG_ROOT}/Arrs/Bazarr/config:/config
|
|
- ${DATA_ROOT}:/data
|
|
networks:
|
|
arr_network:
|
|
ipv4_address: 172.20.0.6
|
|
ports:
|
|
- "6767:6767"
|
|
restart: unless-stopped
|
|
healthcheck:
|
|
test: ["CMD", "curl", "-f", "http://localhost:6767/ping"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
|
|
prowlarr:
|
|
image: lscr.io/linuxserver/prowlarr:latest
|
|
container_name: prowlarr
|
|
profiles: ["media", "all"]
|
|
environment:
|
|
- TZ=${TZ}
|
|
- PUID=${PUID}
|
|
- PGID=${PGID}
|
|
volumes:
|
|
- ${DOCKER_CONFIG_ROOT}/Arrs/Prowlarr/config:/config
|
|
ports:
|
|
- "9696:9696"
|
|
networks:
|
|
arr_network:
|
|
ipv4_address: 172.20.0.4
|
|
restart: unless-stopped
|
|
healthcheck:
|
|
test: ["CMD", "curl", "-f", "http://localhost:9696/ping"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
|
|
flaresolverr:
|
|
image: ghcr.io/flaresolverr/flaresolverr:latest
|
|
container_name: flaresolverr
|
|
profiles: ["media", "all"]
|
|
environment:
|
|
- TZ=${TZ}
|
|
ports:
|
|
- "8191:8191"
|
|
networks:
|
|
arr_network:
|
|
ipv4_address: 172.20.0.8
|
|
restart: unless-stopped
|
|
healthcheck:
|
|
test: ["CMD", "curl", "-f", "http://localhost:8191/health"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
|
|
# ===== MEDIA STREAMING =====
|
|
jellyfin:
|
|
image: jellyfin/jellyfin:latest
|
|
container_name: jellyfin
|
|
profiles: ["media", "all"]
|
|
ports:
|
|
- "8096:8096"
|
|
volumes:
|
|
- ${DOCKER_CONFIG_ROOT}/Arrs/Jellyfin/config:/config
|
|
- ${DOCKER_CONFIG_ROOT}/Arrs/Jellyfin/cache:/cache
|
|
- ${DATA_ROOT}:/data
|
|
- /dev/dri/renderD128:/dev/dri/renderD128
|
|
group_add:
|
|
- "104"
|
|
restart: unless-stopped
|
|
environment:
|
|
- TZ=${TZ}
|
|
- PUID=${PUID}
|
|
- PGID=${PGID}
|
|
- JELLYFIN_PublishedServerUrl=${JELLYFIN_URL}
|
|
healthcheck:
|
|
test: ["CMD", "curl", "-f", "http://localhost:8096/health"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
|
|
jellyseerr:
|
|
image: fallenbagel/jellyseerr:latest
|
|
container_name: jellyseerr
|
|
profiles: ["media", "all"]
|
|
environment:
|
|
- LOG_LEVEL=info
|
|
- TZ=${TZ}
|
|
volumes:
|
|
- ${DOCKER_CONFIG_ROOT}/Arrs/Jellyseerr/config:/app/config
|
|
- ${TORRENTS_PATH}:/downloads
|
|
ports:
|
|
- "5055:5055"
|
|
networks:
|
|
arr_network:
|
|
ipv4_address: 172.20.0.14
|
|
restart: unless-stopped
|
|
healthcheck:
|
|
test: ["CMD", "curl", "-f", "http://localhost:5055/api/v1/status"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
|
|
# ===== DOWNLOAD CLIENT =====
|
|
qbittorrent:
|
|
container_name: qbittorrent
|
|
image: lscr.io/linuxserver/qbittorrent:latest
|
|
profiles: ["media", "all"]
|
|
environment:
|
|
- PUID=${PUID}
|
|
- PGID=${PGID}
|
|
- TZ=${TZ}
|
|
- WEBUI_PORT=8080
|
|
ports:
|
|
- "7070:8080"
|
|
- "56881:6881"
|
|
- "56881:6881/udp"
|
|
volumes:
|
|
- ./qBittorrent/config:/config
|
|
- ${TORRENTS_PATH}:/downloads
|
|
networks:
|
|
arr_network:
|
|
ipv4_address: 172.20.0.2
|
|
restart: unless-stopped
|
|
healthcheck:
|
|
test: ["CMD", "curl", "-f", "http://localhost:8080"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
|
|
# ===== MUSIC SCROBBLING =====
|
|
multi-scrobbler:
|
|
image: foxxmd/multi-scrobbler:latest
|
|
container_name: multi-scrobbler
|
|
profiles: ["media", "all"]
|
|
environment:
|
|
- TZ=${TZ}
|
|
- PUID=${PUID}
|
|
- PGID=${PGID}
|
|
- BASE_URL=${SCROBBLE_URL}
|
|
- SPOTIFY_CLIENT_ID=${SPOTIFY_CLIENT_ID}
|
|
- SPOTIFY_CLIENT_SECRET=${SPOTIFY_CLIENT_SECRET}
|
|
- SPOTIFY_REDIRECT_URI=${SPOTIFY_REDIRECT_URI}
|
|
- MALOJA_URL=${MALOJA_URL}
|
|
- MALOJA_API_KEY=${MALOJA_API_KEY}
|
|
volumes:
|
|
- "./scrobble/config:/config"
|
|
ports:
|
|
- "9078:9078"
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- maloja
|
|
|
|
maloja:
|
|
image: krateng/maloja:latest
|
|
container_name: maloja
|
|
profiles: ["media", "all"]
|
|
ports:
|
|
- "42010:42010"
|
|
volumes:
|
|
- "./maloja/config:/etc/maloja"
|
|
- "./maloja/data:/var/lib/maloja"
|
|
- "./maloja/logs:/var/log/maloja"
|
|
environment:
|
|
- MALOJA_FORCE_PASSWORD=${MALOJA_FORCE_PASSWORD}
|
|
restart: unless-stopped
|
|
|
|
networks:
|
|
arr_network:
|
|
external: true
|