Media Stack¶
Architecture¶
flowchart TD
Prowlarr[Prowlarr] <--> Indexers[(Indexers)]
Prowlarr --> Radarr[Radarr]
Prowlarr --> Sonarr[Sonarr]
Radarr --> NZBGet[NZBGet]
Radarr --> qBit[qBittorrent]
Sonarr --> NZBGet
Sonarr --> qBit
NZBGet --> Plex[Plex]
qBit --> Plex
Services¶
Plex¶
- Role: Media server
- Host: Unraid (Holly), dedicated br0 IP
192.168.1.210:32400 - Note: the
plex.mdhmedia.ukCaddy route is currently commented out — access is direct/app-based
Tautulli (Plex analytics)¶
- URL: tautulli.mdhmedia.uk — no SSO (Tautulli has its own login, so the Tautulli iOS app connects directly)
- Role: Plex activity monitoring, history and stats
- Host: CT 101 (
192.168.1.241:8181), Arcane git-sync stacktautulli(image pinnedlscr.io/linuxserver/tautulli) - Dashboard: a Media tile on mdhmedia.uk with the live-stream widget (reads
get_activityover the LAN at192.168.1.241:8181) - Data: the
tautulli-configvolume (API key + admin password + collected history), adoptedexternalat the 2026-08-31 hand-deploy → git-sync cutover; backed by CT 101's nightly PBS backup
Radarr¶
- URL: radarr.mdhmedia.uk
- Port: 7878
- Role: Movie collection management and automation
Sonarr¶
- URL: sonarr.mdhmedia.uk
- Port: 8989
- Role: TV series collection management and automation
Prowlarr¶
- URL: prowlarr.mdhmedia.uk
- Port: 9696
- Role: Indexer management for Radarr/Sonarr
NZBGet¶
- URL: nzbget.mdhmedia.uk or nzb.mdhmedia.uk
- Port: 6789
- Role: Usenet downloader
qBittorrent¶
- URL: torrent.mdhmedia.uk
- Port: 8080
- Role: Torrent client
Ombi¶
- URL: ombi.mdhmedia.uk
- Port: 3579
- Role: Media request management
Audiobooks¶
Audiobookshelf¶
- URL: abs.mdhmedia.uk
- Port: 13378
- Role: Audiobook and podcast server
Libation¶
- URL: libate.mdhmedia.uk
- Port: 8099 (headless libation-sync stack on CT 101 / 192.168.1.241; SSO-gated. Old Holly Kasm GUI on :3001 retired 2026-08-10.)
- Role: Headless Audible liberation (
mdhmatt/libate:headless) — scans all configured Audible accounts and liberates new books into the Audiobookshelf library; the URL serves its SSO-gated account-helper UI.
Host health (Holly)¶
The stack above runs on Holly (Unraid, 192.168.1.200), fully recovered as of
2026-07-29 — its Docker daemon came back after a VM reboot (the 2026-07-25 boot-USB
failure had corrupted docker.img).
- Disks: all SMART-healthy (0 reallocated / pending / CRC errors). The array is deliberately zero-parity — the "2 disabled" slots are the empty parity slots, not failures. Two data drives are at ~54,500 power-on hours (~6.2 years).
- Capacity is the real issue: disk4 96%, disk1 95%, disk6 93%, disk2 90% used. 263.9 GB of byte-verified duplicates were deleted on 2026-07-28 (movie downloads 146.5 GB, audiobook dupes 95.6 GB, redundant backups 21.8 GB; the GoPro and OneDrive trees were kept).
Automated protection (Jarvis)¶
Two Jarvis cron jobs (neteng-malware-sweep /
neteng-reclaim-scan) watch this stack — the only sanctioned auto-deletes:
neteng-malware-sweep(daily 07:30) removes fake video torrents, preferring the Radarr/Sonarr queue delete withblocklist=trueso the bad release is blocklisted and re-searched.neteng-reclaim-scan(Mon 09:00) lists imported-but-still-seeding downloads for a Telegram-confirmed reclaim.
Details in Downloads & folder layout.