Initial commit of Docker files
This commit is contained in:
253
compose/media-stack.yml
Executable file
253
compose/media-stack.yml
Executable file
@@ -0,0 +1,253 @@
|
||||
# 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
|
Reference in New Issue
Block a user