stacks/media/compose.override.yml

# stacks/media/compose.override.yml
# Local overrides: gpu passthrough for jellyfin, bigger tmp dir for
# transcoding, and qbittorrent bound to the wireguard-only network.
# Committed because it is not secret - just specific to homelab-1.

services:
  jellyfin:
    devices:
      - /dev/dri:/dev/dri
    group_add:
      - "107"   # render group on host
    environment:
      JELLYFIN_PublishedServerUrl: https://jellyfin.home.arpa
    tmpfs:
      - /tmp/jellyfin-transcode:size=8G,mode=1777
    deploy:
      resources:
        limits:
          memory: 4g
        reservations:
          memory: 512m

  sonarr:
    volumes:
      - /mnt/tank/media/tv:/tv
      - ./sonarr:/config
    environment:
      TZ: Europe/Zurich

  radarr:
    volumes:
      - /mnt/tank/media/movies:/movies
      - ./radarr:/config
    environment:
      TZ: Europe/Zurich

  prowlarr:
    volumes:
      - ./prowlarr:/config

  qbittorrent:
    network_mode: "service:gluetun"
    depends_on:
      gluetun:
        condition: service_healthy
    volumes:
      - ./qbittorrent:/config
      - /mnt/tank/media/downloads:/downloads

  bazarr:
    volumes:
      - /mnt/tank/media/tv:/tv
      - /mnt/tank/media/movies:/movies
      - ./bazarr:/config

  gluetun:
    cap_add:
      - NET_ADMIN
    devices:
      - /dev/net/tun:/dev/net/tun
    env_file:
      - ./media.env
    ports:
      - "127.0.0.1:8080:8080"   # qbt webui via gluetun