feat: jellyfin (starting from scratch)

This commit is contained in:
2026-01-19 20:13:16 +01:00
parent 6e4f8c06b4
commit 8d665a7f34
+28 -90
View File
@@ -2,103 +2,41 @@ services:
jellyfin:
image: lscr.io/linuxserver/jellyfin:latest
container_name: jellyfin
environment:
- PUID=1000
- PGID=1000
- TZ=${TZ:-Europe/Moscow}
ports:
- "8096:8096/tcp"
- "7359:7359/udp"
volumes:
- ./jellyfin/config:/config
- ./data/media:/media
- ./data/downloads:/downloads
# HACK: Binding while bootstrapping, testing
# - jellyfin-cfg:/config
- ./config/jellyfin:/config
- /mnt/mediaserver/media/Movies:/media/Movies
- /mnt/mediaserver/media/Shows:/media/Shows
devices:
- /dev/dri:/dev/dri
labels:
- "traefik.enable=true"
- "traefik.docker.network=proxy"
- "traefik.http.services.jellyfin.loadbalancer.server.port=8096"
# Prod Router
- "traefik.http.routers.jellyfin.rule=Host(`media.forust.xyz`)"
- "traefik.http.routers.jellyfin.entrypoints=websecure"
- "traefik.http.routers.jellyfin.tls=true"
# Local Router
- "traefik.http.routers.jellyfin-local.rule=Host(`media.workstation.internal`) || Host(`ms.internal`)"
- "traefik.http.routers.jellyfin-local.entrypoints=websecure"
- "traefik.http.routers.jellyfin-local.tls=true"
# Dev Router
- "traefik.http.routers.jellyfin-dev.rule=Host(`media.gigaforust.internal`)"
- "traefik.http.routers.jellyfin-dev.entrypoints=websecure"
- "traefik.http.routers.jellyfin-dev.tls=true"
networks:
- traefik-proxy
- proxy
- streaming
restart: unless-stopped
jellyseerr:
image: ghcr.io/fallenbagel/jellyseerr:latest
init: true
container_name: jellyseerr
environment:
- LOG_LEVEL=debug
- TZ=${TZ:-Europe/Moscow}
- PORT=5055
ports:
- "5055:5055"
volumes:
- ./jellyseerr:/app/config
healthcheck:
test: ["CMD-SHELL", "wget --no-verbose --tries=1 --spider http://localhost:5055/api/v1/status || exit 1"]
start_period: 20s
timeout: 3s
interval: 15s
retries: 3
restart: unless-stopped
networks:
- traefik-proxy
- streaming
sonarr:
image: ghcr.io/hotio/sonarr:latest
container_name: sonarr
environment:
- PUID=1000
- PGID=1000
- UMASK=002
- TZ=${TZ:-Europe/Moscow}
ports:
- "8989:8989"
volumes:
- ./sonarr/config:/config
- ./data/media/tv:/tv
- ./data/downloads:/downloads
networks:
- traefik-proxy
- streaming
restart: unless-stopped
depends_on:
- qbittorrent
- prowlarr
qbittorrent:
image: ghcr.io/hotio/qbittorrent:latest
container_name: qbittorrent
environment:
- PUID=1000
- PGID=1000
- UMASK=002
- TZ=Europe/Moscow
ports:
- "8181:8080"
- "6881:6881/udp"
volumes:
- ./qbittorrent:/config
- ./data:/data
restart: unless-stopped
networks:
- streaming
prowlarr:
image: ghcr.io/hotio/prowlarr:latest
container_name: prowlarr
environment:
- PUID=1000
- PGID=1000
- TZ=${TZ:-Europe/Moscow}
ports:
- "9696:9696"
volumes:
- ./prowlarr/config:/config
networks:
- traefik-proxy
- streaming
restart: unless-stopped
volumes:
jellyfin-cfg:
networks:
traefik-proxy:
proxy:
external: true
streaming:
driver: bridge
name: streaming