bart 80321ac4a9
Sync HTPC Manifests to GitOps / Sync Manifests to GitOps Repo (push) Successful in 4s
feat(jackett): add jackett deployment, service, pvc and migration scripts
2026-10-30 10:08:18 +01:00

HTPC & Media Services Platform

Beheert de configuratie, deployment en automatisering van de HTPC (Home Theater PC) en media-stack voor bnhmeijer.nl op vmserver (10.2.0.4).


🧭 Inhoudsopgave


📌 Overzicht

Deze repository bevat de Kubernetes manifests, configuraties en eventuele hulpscripts voor de HTPC mediadiensten. De workloads worden beheerd via GitOps (Gitea Actions en ArgoCD) binnen het homelab cluster.


🎬 Applicaties & Services

De HTPC omgeving omvat onder andere de volgende diensten:

Service Poort Beschrijving
Jellyfin 8096 Media streaming en playback server voor films, series en muziek
Sonarr 8989 Automatisch beheer en downloaden van tv-series
Radarr 7878 Automatisch beheer en downloaden van speelfilms
Lidarr 8686 Automatisch beheer en downloaden van muziek
Bazarr 6767 Ondertitelbeheer en synchronisatie
Jackett / Prowlarr 9117 / 9696 Torrent- en usenet indexer proxy
SABnzbd / Transmission 8080 / 9091 Downloadclients voor media-acquisitie (BitTorrent peer-poort 53662)
slskd 5030 / 50300 Soulseek peer-to-peer client en web daemon (HTTP: 5030, Soulseek listen: 50300)

🏛️ Architectuur & Ingress

  • SSL & Reverse Proxy: Inkomend verkeer verloopt via de centrale Apache reverse proxy op thuus.bnhmeijer.nl.
  • Authenticatie: Beveiligd via Keycloak OIDC of ingebouwde service-authenticatie.
  • Interne routering: Envoy Gateway HTTPRoutes routeren verkeer direct naar de betreffende Kubernetes pods in de htpc namespace.

🚀 Migratie van Host Services naar Kubernetes

Radarr

Voor het migreren van de standalone radarr.service op 10.2.0.4 naar de Kubernetes pod is een geautomatiseerd script beschikbaar:

# Migratie uitvoeren (stopt host service, synct /storage/var/lib/radarr naar K8s PVC, start pod):
./migrate_radarr_to_cluster.sh

# Terugrollen naar standalone service indien gewenst:
./rollback_radarr_migration.sh
  • Dataopslag: PersistentVolumeClaim radarr-config (10Gi, local-path op /datadisk/infra/pv).
  • Mediaopslag: HostPath /datadisk gemount op /datadisk (voor films in /datadisk/htpc/Films en downloads in /datadisk/upload).
  • Netwerk & Ingress: Luistert op poort 7878 (zowel via ClusterIP als HostPort 7878 op 10.2.0.4), waardoor de bestaande Apache reverse proxy rule (ProxyPass /radarr http://127.0.0.1:7878/radarr) naadloos blijft functioneren.

Transmission

De BitTorrent daemon (transmission) draait als pod in de htpc namespace:

  • Dataopslag: PersistentVolumeClaim transmission-config (10Gi, local-path op /datadisk/infra/pv), gemigreerd vanuit /var/www/.config/transmission-daemon met behoud van alle torrents, resume-bestanden en instellingen.
  • Mediaopslag: HostPath /datadisk en /mnt/mp3 zodat /datadisk/upload/finished en /datadisk/upload/incomplete identiek zijn voor Transmission, Radarr, Sonarr en Lidarr.
  • Netwerk: Web UI / RPC op poort 9091 (ClusterIP + HostPort 9091) en BitTorrent peer-poort 53662 (TCP & UDP, ClusterIP + HostPort 53662).

slskd

De Soulseek daemon (slskd) draait als pod in de htpc namespace:

  • Dataopslag: PersistentVolumeClaim slskd-config (10Gi, local-path op /datadisk/infra/pv), gemigreerd vanuit /var/www/.local/share/slskd via een init-container (inclusief slskd.yml, SQLite databases en state).
  • Mediaopslag: HostPath /datadisk gemount op /datadisk (voor /datadisk/upload/slskd, /datadisk/upload/incomplete en /datadisk/htpc/mp3) en /mnt/mp3 gemount op /mnt/mp3.
  • Netwerk: Web UI op poort 5030 (ClusterIP + HostPort 5030), optioneel HTTPS op poort 5031 en Soulseek listen poort 50300 (ClusterIP + HostPort 50300).
  • Migratie & Opruimen:
    # Migratie uitvoeren (maakt backup in /storage/backups/, stopt host service, start pod):
    ./migrate_slskd_to_cluster.sh
    
    # Oude host bestanden en service opruimen:
    ./cleanup_old_slskd.sh
    

Jackett

De torrent indexer proxy (jackett) draait als pod in de htpc namespace:

  • Dataopslag: PersistentVolumeClaim jackett-config (10Gi, local-path op /datadisk/infra/pv), gemigreerd vanuit /home/bart/.config/Jackett via init-container (inclusief alle indexers en ServerConfig.json).
  • Mediaopslag: HostPath /datadisk gemount op /datadisk.
  • Netwerk & Ingress: Luistert op poort 9117 (ClusterIP + HostPort 9117). De Apache reverse proxy routeert https://thuus.bnhmeijer.nl/jackett/ naadloos door naar 127.0.0.1:9117.
  • Migratie & Opruimen:
    # Migratie uitvoeren (maakt backup in /storage/backups/, stopt host service, start pod):
    ./migrate_jackett_to_cluster.sh
    
    # Oude host bestanden en service opruimen:
    ./cleanup_old_jackett.sh
    
S
Description
No description provided
Readme
143 KiB
Languages
Shell 76.4%
Python 23.6%