Initial commit: Claude project knowledge documents

Infrastructure, media, photos, and networking project knowledge
files used as reference context for Claude Code sessions.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-09 13:28:41 -05:00
commit 6d3269f54c
5 changed files with 576 additions and 0 deletions
+75
View File
@@ -0,0 +1,75 @@
# 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`