Project TV v3 (Rocky Edition)

Project TV v3 is a complete rewrite of the media server setup, migrating from Ubuntu 24.04 with Docker Compose to Rocky Linux 10 with Kubernetes (kubeadm).

Key changes from v2

Feature v2 (Ubuntu) v3 (Rocky)
OS Ubuntu 24.04 Rocky Linux 10
Container orchestration Docker Compose Kubernetes (kubeadm)
Music server None Navidrome
Library refresh VM + xdotool Jellyfin API CronJob
TV tuner driver DEB package RPM (DKMS)
ZFS datasets Fixed list Dynamic (installer prompts)
Installation Manual steps Interactive installer

Architecture

Rocky Linux 10 (Host)
├── ZFS Pool (user-configured datasets)
├── Kubernetes (kubeadm + containerd + Flannel)
│   ├── Mirakurun (TV tuner management, port 40772)
│   ├── EPGStation + MariaDB (TV recording, port 8888)
│   ├── Jellyfin (media server, port 8096)
│   ├── Tube Archivist + Redis + ES (YouTube archive, port 8000)
│   ├── Navidrome (music server, port 4533)
│   └── CronJob: Jellyfin library refresh (hourly)
├── Sanoid (ZFS snapshot management)
├── KDE Plasma 6 (desktop)
└── px4_drv (TV tuner kernel driver, DKMS RPM)

Hardware used

  • Intel 12th Gen Alder Lake-S with UHD Graphics 730
  • PLEX PX-W3PE5 TV tuner (USB, via MosChip MCS9990 PCIe USB card)
  • SCM SCR331-LC1 SmartCard reader (for B-CAS)
  • Realtek RTL8111 Gigabit Ethernet
  • NVMe boot drive + SATA drives for ZFS

Repository

All scripts, manifests, and documentation are at: github.com/metalllinux/project-tv-rocky-edition

Updated: