# Jellyfin Media Server # Docs: https://jellyfin.org/docs/general/installation/container/?method=docker-compose # Transcoding: https://jellyfin.org/docs/general/post-install/transcoding/hardware-acceleration/nvidia services: jellyfin: container_name: jellyfin image: lscr.io/linuxserver/jellyfin:latest env_file: - .env environment: - NVIDIA_VISIBLE_DEVICES=all - NVIDIA_DRIVER_CAPABILITIES=compute,video,utility volumes: - ./config:/config - ./cache:/cache # Media folders (read-only) - /mnt/media/movies:/media/movies:ro - /mnt/media/tv:/media/tv:ro - /mnt/media/music:/media/music:ro - /mnt/media/photos:/media/photos:ro - /mnt/media/homemovies:/media/homemovies:ro ports: - "8096:8096" - "7359:7359/udp" # Optional - for autodiscovery restart: unless-stopped networks: - homelab labels: traefik.enable: true traefik.docker.network: homelab traefik.http.routers.jellyfin.rule: Host(`flix.fig.systems`) traefik.http.routers.jellyfin.entrypoints: websecure traefik.http.routers.jellyfin.tls.certresolver: letsencrypt traefik.http.services.jellyfin.loadbalancer.server.port: 8096 # Homarr Discovery homarr.name: Jellyfin (Media Server) homarr.group: Media homarr.icon: simple-icons:jellyfin # Note: Jellyfin has its own auth system, SSO middleware disabled by default # Uncomment the line below to enable SSO (requires users to auth via Authelia first) # NVIDIA GPU transcoding (GTX 1070) runtime: nvidia # Shared memory for transcoding - prevents stuttering shm_size: 4gb deploy: resources: limits: memory: 12G cpus: '5.0' reservations: memory: 4G devices: - driver: nvidia count: all capabilities: [gpu] networks: homelab: external: true