From 8d665a7f34519b6365a00c6f58204b377a82fa2f Mon Sep 17 00:00:00 2001 From: mr-forust Date: Mon, 19 Jan 2026 20:13:16 +0100 Subject: [PATCH] feat: jellyfin (starting from scratch) --- streaming/compose.yaml | 118 ++++++++++------------------------------- 1 file changed, 28 insertions(+), 90 deletions(-) diff --git a/streaming/compose.yaml b/streaming/compose.yaml index 62644c8..0b324fd 100644 --- a/streaming/compose.yaml +++ b/streaming/compose.yaml @@ -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 \ No newline at end of file + name: streaming \ No newline at end of file