## Summary - Add Jellyfin ansible role for native macOS deployment via Homebrew cask - Add jellyfin_metrics role for Prometheus textfile metrics collection - Add Caddy routing for jellyfin.ops.eblu.me - Add Alloy log collection for Jellyfin stdout/stderr - Add Grafana dashboard for Jellyfin monitoring ## Architecture Jellyfin runs natively on indri (not in k8s) for full VideoToolbox hardware transcoding support. The M1 Mac Mini can handle ~3 concurrent 4K HDR→SDR transcoding streams. ## Deployment and Testing - [ ] Deploy Jellyfin: `mise run provision-indri -- --tags jellyfin,jellyfin_metrics,caddy,alloy` - [ ] Sync Grafana dashboard: `argocd app sync grafana-config` - [ ] Complete Jellyfin setup wizard at https://jellyfin.ops.eblu.me - [ ] Generate API key and save to `~/.jellyfin-api-key` - [ ] Add media libraries (/Volumes/allisonflix/Movies, /Volumes/allisonflix/TV) - [ ] Enable VideoToolbox hardware transcoding - [ ] Verify metrics in Grafana dashboard - [ ] Verify logs in Loki: `{service="jellyfin"}` 🤖 Generated with [Claude Code](https://claude.com/claude-code) Reviewed-on: https://forge.ops.eblu.me/eblume/blumeops/pulls/77
23 lines
709 B
YAML
23 lines
709 B
YAML
---
|
|
# Jellyfin media server configuration
|
|
|
|
# Port Jellyfin listens on
|
|
jellyfin_port: 8096
|
|
|
|
# Data directory (standard macOS location)
|
|
jellyfin_data_dir: "{{ ansible_env.HOME }}/Library/Application Support/jellyfin"
|
|
|
|
# Media path (NFS mount from sifaka)
|
|
jellyfin_media_path: /Volumes/allisonflix
|
|
|
|
# Homebrew cask application path
|
|
jellyfin_cask_app_path: /Applications/Jellyfin.app
|
|
|
|
# Binary path inside the cask app
|
|
jellyfin_binary: "{{ jellyfin_cask_app_path }}/Contents/MacOS/jellyfin"
|
|
|
|
# Web client path (different from binary location in Homebrew cask)
|
|
jellyfin_webdir: "{{ jellyfin_cask_app_path }}/Contents/Resources/jellyfin-web"
|
|
|
|
# Log directory
|
|
jellyfin_log_dir: "{{ ansible_env.HOME }}/Library/Logs"
|