claude-projects/Media & Automation/media-stack.md

2.8 KiB
Raw Blame History

Media Stack — Project Knowledge

Host: VM102 / jellyfin

  • IP: 192.168.88.10
  • Specs: 2c/12GB RAM
  • SSH: root@192.168.88.10 (via Proxmox host jump)
  • Media disk: 6000GB at /mnt/media/
  • Single /data mount structure for hardlink support

Services on VM102

Service Port URL
Jellyfin 8096 jellyfin.jgitta.com
qBittorrent-nox
Radarr 7878 radarr.jgitta.com (internal only)
Sonarr 8989 sonarr.jgitta.com (internal only)
Prowlarr 9696 prowlarr.jgitta.com (internal only)
FlareSolverr 8191

Jellyfin

  • Port: 8096
  • GPU: NVIDIA (VFIO passthrough from Proxmox host — GPU is NOT on host, it's passed to VM102)
  • Hardware transcoding: NVIDIA NVENC enabled
  • Live TV: HDHomeRun FLEX QUATRO
    • DeviceID: 10B00DE1
    • IP: 192.168.88.22
    • DeviceAuth-based XMLTV guide (refreshed every 20h via cron)
    • Script: /home/jgitta/scripts/refresh-hdhomerun-guide.sh
    • DVR license key: unassigned (SiliconDust ticket raised)
  • DNS fix service: fix-jellyfin-dns.service (fixes DNS after ProtonVPN kill switch on boot)
    • Sets nameserver to 192.168.88.1
    • Removes kill switch default route

ProtonVPN

  • Interface: proton0 / pvpnksintrf1 (kill switch interface)
  • Kill switch enabled
  • qBittorrent bound to proton0
  • Port forwarding: port 54514, renews via NAT-PMP every 60s
  • Cron sync script: runs every 5 minutes (*/5)
  • Split tunneling service: me.proton.vpn.split_tunneling.service

qBittorrent-nox

  • Bound to ProtonVPN interface
  • systemd hard cap: MemoryMax=2G
  • Downloads to /mnt/media/downloads/

*arr Stack

  • All services in Docker on VM102
  • Quality profiles: HD-1080p (815GB cap)
  • Prowlarr URLs must point to 192.168.88.10 (not wrong IP)
  • IndexerStatus/DownloadClientStatus cleared from SQLite DBs if stale

Photos (on VM113 / photos — 192.168.88.32)

  • PhotoPrism: https://photos.jgitta.com (port 2342)
  • Immich: https://pictures.jgitta.com (port 2283)
  • Source: /mnt/photos/joe and /mnt/photos/cynthia (NFS from big-11t, mounted at /mnt/photos)
  • Migrated from Siklos (VM112) to dedicated VM113: April 2026

Home Automation

  • Home Assistant (VM106): 192.168.88.39, ha.jgitta.com
    • Integrated with Hubitat via HACS
    • Grafana/Telegram monitoring
  • Hubitat: 192.168.88.65, hub.jgitta.com
    • Primary Z-Wave/Zigbee hub
    • Maker API: app ID 146, token 8fb12954-f427-4972-99e2-f9c893d4420c
    • Zooz S505D Matter dimmer "Island Light": static DHCP at 192.168.88.15
  • Frigate NVR (ThinkStation, 192.168.88.41): cameras.jgitta.com
    • Auth disabled, Caddy proxy headers: Remote-User: guest_viewer, Remote-Role: viewer
    • Reolink cameras: 192.168.88.100105
    • Front driveway zone: car detection → Alexa announcements
    • Version: 0.17

SMTP

  • Fastmail: jgitta@jgitta.com