Core Infrastructure: - Add LLDAP for centralized user authentication (lldap.fig.systems) - Configure Tinyauth with LLDAP backend for SSO (auth.fig.systems) - Set up Traefik v3.3 with Let's Encrypt SSL automation - Create homelab Docker network for service isolation Media Services: - Configure Jellyfin with /media folder mappings (flix.fig.systems) - Add Jellyseerr for media requests (requests.fig.systems) - Update Immich with photo library access (photos.fig.systems) - Set up Sonarr for TV automation (sonarr.fig.systems) - Set up Radarr for movie automation (radarr.fig.systems) - Configure SABnzbd for Usenet downloads (sabnzbd.fig.systems) - Add qBittorrent for torrent downloads (qbt.fig.systems) Utility Services: - Update Linkwarden with proper networking (links.fig.systems) - Configure Vikunja task management (tasks.fig.systems) - Set up LubeLogger vehicle tracking (garage.fig.systems) - Configure Calibre-web for ebooks (books.fig.systems) - Add Booklore for book tracking (booklore.fig.systems) - Update FreshRSS reader (rss.fig.systems) - Update RSSHub with internal networking (rsshub.fig.systems) - Update MicroBin pastebin (paste.fig.systems) - Add File Browser for media access (files.fig.systems) Technical Improvements: - Standardize all compose files to compose.yaml (Docker best practice) - Add Traefik labels to all services for SSL termination - Implement proper network isolation (homelab + service-specific networks) - Add health checks to database services - Configure dual domain support (fig.systems + edfig.dev) - Set proper /media folder mappings for all media services - Add comprehensive README with deployment instructions Security: - Enable SSO via Tinyauth for most services - Configure LLDAP with admin user (edfig/admin@edfig.dev) - Services with built-in auth have SSO disabled by default - All traffic secured with automatic Let's Encrypt certificates
50 lines
1.7 KiB
YAML
50 lines
1.7 KiB
YAML
# 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
|
|
environment:
|
|
- PUID=1000
|
|
- PGID=1000
|
|
- TZ=America/Los_Angeles
|
|
- JELLYFIN_PublishedServerUrl=https://flix.fig.systems
|
|
volumes:
|
|
- ./config:/config
|
|
- ./cache:/cache
|
|
# Media folders (read-only)
|
|
- /media/movies:/media/movies:ro
|
|
- /media/tv:/media/tv:ro
|
|
- /media/music:/media/music:ro
|
|
- /media/photos:/media/photos:ro
|
|
- /media/homemovies:/media/homemovies:ro
|
|
ports:
|
|
- "8096:8096"
|
|
- "7359:7359/udp" # Optional - for autodiscovery
|
|
restart: unless-stopped
|
|
networks:
|
|
- homelab
|
|
labels:
|
|
traefik.enable: true
|
|
traefik.http.routers.jellyfin.rule: Host(`flix.fig.systems`) || Host(`flix.edfig.dev`)
|
|
traefik.http.routers.jellyfin.entrypoints: websecure
|
|
traefik.http.routers.jellyfin.tls.certresolver: letsencrypt
|
|
traefik.http.services.jellyfin.loadbalancer.server.port: 8096
|
|
# Note: Jellyfin has its own auth system, SSO middleware disabled by default
|
|
# Uncomment the line below to enable SSO (requires users to auth via tinyauth first)
|
|
# traefik.http.routers.jellyfin.middlewares: tinyauth
|
|
# Uncomment for NVIDIA GPU transcoding
|
|
# runtime: nvidia
|
|
# deploy:
|
|
# resources:
|
|
# reservations:
|
|
# devices:
|
|
# - driver: nvidia
|
|
# count: all
|
|
# capabilities: [gpu]
|
|
|
|
networks:
|
|
homelab:
|
|
external: true
|