Skip to content

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.uk Caddy route is currently commented out — access is direct/app-based

Tautulli (Plex analytics)

  • URL: tautulli.mdhmedia.ukno 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 stack tautulli (image pinned lscr.io/linuxserver/tautulli)
  • Dashboard: a Media tile on mdhmedia.uk with the live-stream widget (reads get_activity over the LAN at 192.168.1.241:8181)
  • Data: the tautulli-config volume (API key + admin password + collected history), adopted external at the 2026-08-31 hand-deploy → git-sync cutover; backed by CT 101's nightly PBS backup

Radarr

Sonarr

Prowlarr

NZBGet

qBittorrent

Ombi

Audiobooks

Audiobookshelf

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 with blocklist=true so 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.