feat(docker-stack): add media stack
This commit is contained in:
146
docker/stacks/media/docker-compose.yaml
Normal file
146
docker/stacks/media/docker-compose.yaml
Normal file
@@ -0,0 +1,146 @@
|
||||
services:
|
||||
# Torrent client
|
||||
qbittorrent:
|
||||
image: linuxserver/qbittorrent
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- PUID=${PUID}
|
||||
- PGID=${PGID}
|
||||
- TZ=${TZ}
|
||||
- UMASK=002
|
||||
- WEBUI_PORT=8114
|
||||
volumes:
|
||||
- ${MEDIA_PATH}:/media
|
||||
- ${SERVICE_DATA_ROOT_PATH}/qbittorrent/config:/config
|
||||
ports:
|
||||
- 8114:8114
|
||||
- 23312:23312
|
||||
networks:
|
||||
- traefik
|
||||
- sonarr
|
||||
- radarr
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.qbittorrent-service.rule=Host(`${QBITTORRENT_SERVICE_DOMAIN}`) && PathPrefix(`/api/v2`)"
|
||||
- "traefik.http.routers.qbittorrent-service.service=qbittorrent-service"
|
||||
- "traefik.http.services.qbittorrent-service.loadbalancer.server.port=8114"
|
||||
- "traefik.http.routers.qbittorrent-service.entrypoints=websecure"
|
||||
- "traefik.http.routers.qbittorrent-service.tls.certresolver=myresolver"
|
||||
- "traefik.http.middlewares.qbittorrent-service-auth.basicauth.users=${QBITTORRENT_BASIC_AUTH}"
|
||||
- "traefik.http.routers.qbittorrent-service.middlewares=qbittorrent-service-auth@docker"
|
||||
- "traefik.docker.network=traefik"
|
||||
|
||||
# Tracker indexer
|
||||
prowlarr:
|
||||
image: linuxserver/prowlarr:latest
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- PUID=${PUID}
|
||||
- PGID=${PGID}
|
||||
- TZ=${TZ}
|
||||
volumes:
|
||||
- ${SERVICE_DATA_ROOT_PATH}/prowlarr/config:/config
|
||||
ports:
|
||||
- 9696:9696
|
||||
networks:
|
||||
- sonarr
|
||||
- radarr
|
||||
|
||||
# Series manager
|
||||
sonarr:
|
||||
image: linuxserver/sonarr:latest
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- PUID=${PUID}
|
||||
- PGID=${PGID}
|
||||
- TZ=${TZ}
|
||||
- UMASK=002
|
||||
volumes:
|
||||
- ${SERVICE_DATA_ROOT_PATH}/sonarr/config:/config
|
||||
- ${MEDIA_PATH}:/media
|
||||
ports:
|
||||
- 8989:8989
|
||||
depends_on:
|
||||
- sonarr-db
|
||||
networks:
|
||||
- traefik
|
||||
- sonarr
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.sonarr-service.rule=Host(`${SONARR_SERVICE_DOMAIN}`) && PathPrefix(`/api/v3`)"
|
||||
- "traefik.http.routers.sonarr-service.entrypoints=websecure"
|
||||
- "traefik.http.routers.sonarr-service.tls.certresolver=myresolver"
|
||||
- "traefik.http.middlewares.sonarr-service-auth.basicauth.users=${SONARR_BASIC_AUTH}"
|
||||
- "traefik.http.routers.sonarr-service.middlewares=sonarr-service-auth@docker"
|
||||
- "traefik.docker.network=traefik"
|
||||
|
||||
sonarr-db:
|
||||
image: postgres:14
|
||||
restart: unless-stopped
|
||||
user: ${PUID}:${PGID}
|
||||
environment:
|
||||
- PUID=${PUID}
|
||||
- PGID=${PGID}
|
||||
- TZ=${TZ}
|
||||
- UMASK=002
|
||||
- POSTGRES_DB=${SONARR_DB_NAME}
|
||||
- POSTGRES_USER=${SONARR_DB_USER}
|
||||
- POSTGRES_PASSWORD=${SONARR_DB_PASSWORD}
|
||||
volumes:
|
||||
- ${SERVICE_DATA_ROOT_PATH}/sonarr/database:/var/lib/postgresql/data
|
||||
networks:
|
||||
- sonarr
|
||||
|
||||
# Movies manager
|
||||
radarr:
|
||||
image: linuxserver/radarr:latest
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- PUID=${PUID}
|
||||
- PGID=${PGID}
|
||||
- TZ=${TZ}
|
||||
- UMASK=002
|
||||
volumes:
|
||||
- ${SERVICE_DATA_ROOT_PATH}/radarr/config:/config
|
||||
- ${MEDIA_PATH}:/media
|
||||
ports:
|
||||
- 7878:7878
|
||||
depends_on:
|
||||
- radarr-db
|
||||
networks:
|
||||
- traefik
|
||||
- radarr
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.radarr-service.rule=Host(`${RADARR_SERVICE_DOMAIN}`) && PathPrefix(`/api/v3`)"
|
||||
- "traefik.http.routers.radarr-service.entrypoints=websecure"
|
||||
- "traefik.http.routers.radarr-service.tls.certresolver=myresolver"
|
||||
- "traefik.http.middlewares.radarr-service-auth.basicauth.users=${RADARR_BASIC_AUTH}"
|
||||
- "traefik.http.routers.radarr-service.middlewares=radarr-service-auth@docker"
|
||||
- "traefik.docker.network=traefik"
|
||||
|
||||
radarr-db:
|
||||
image: postgres:14
|
||||
restart: unless-stopped
|
||||
user: ${PUID}:${PGID}
|
||||
environment:
|
||||
- PUID=${PUID}
|
||||
- PGID=${PGID}
|
||||
- TZ=${TZ}
|
||||
- UMASK=002
|
||||
- POSTGRES_DB=${RADARR_DB_NAME}
|
||||
- POSTGRES_USER=${RADARR_DB_USER}
|
||||
- POSTGRES_PASSWORD=${RADARR_DB_PASSWORD}
|
||||
volumes:
|
||||
- ${SERVICE_DATA_ROOT_PATH}/radarr/database:/var/lib/postgresql/data
|
||||
networks:
|
||||
- radarr
|
||||
|
||||
networks:
|
||||
radarr:
|
||||
name: radarr
|
||||
sonarr:
|
||||
name: sonarr
|
||||
traefik:
|
||||
name: traefik
|
||||
external: true
|
||||
30
docker/stacks/media/stack.env
Normal file
30
docker/stacks/media/stack.env
Normal file
@@ -0,0 +1,30 @@
|
||||
# Paths
|
||||
MEDIA_PATH=
|
||||
SERVICE_DATA_ROOT_PATH=
|
||||
|
||||
# User/Group IDs
|
||||
PUID=1027
|
||||
PGID=100
|
||||
TZ=Europe/Kyiv
|
||||
|
||||
# Service Domains
|
||||
QBITTORRENT_SERVICE_DOMAIN=
|
||||
SONARR_SERVICE_DOMAIN=
|
||||
SONARR_DOMAIN=
|
||||
RADARR_SERVICE_DOMAIN=
|
||||
|
||||
# Database Configuration
|
||||
# Sonarr Database
|
||||
SONARR_DB_USER=sonarr
|
||||
SONARR_DB_NAME=sonarr-main
|
||||
SONARR_DB_PASSWORD=
|
||||
|
||||
# Radarr Database
|
||||
RADARR_DB_USER=radarr
|
||||
RADARR_DB_NAME=radarr-main
|
||||
RADARR_DB_PASSWORD=
|
||||
|
||||
# Basic Auth for API access (format: user:hashedpassword)
|
||||
QBITTORRENT_BASIC_AUTH=
|
||||
SONARR_BASIC_AUTH=
|
||||
RADARR_BASIC_AUTH=
|
||||
Reference in New Issue
Block a user