blumeops/ansible/roles/jellyfin_metrics/defaults/main.yml
Erich Blume bcc8685316 Add Jellyfin media server deployment (#77)
## 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
2026-01-30 16:57:26 -08:00

20 lines
639 B
YAML

---
# Jellyfin metrics collection configuration
# Jellyfin server URL
jellyfin_metrics_url: "http://localhost:8096"
# Path to file containing Jellyfin API key (should have 600 permissions)
jellyfin_metrics_api_key_file: "/Users/erichblume/.jellyfin-api-key"
# Metrics collection interval in seconds
jellyfin_metrics_interval: 60
# Output directory for prometheus textfile collector
jellyfin_metrics_dir: /opt/homebrew/var/node_exporter/textfile
# Script installation path
jellyfin_metrics_script: /Users/erichblume/.local/bin/jellyfin-metrics
# Log directory for metrics script output
jellyfin_metrics_log_dir: /opt/homebrew/var/log