HTPC powered by k3s
This is my current HTPC setup. It runs on k3s - a lightweight and easy to install Kubernetes distribution. It includes the following applications:
- Sonarr - for tv shows
- Radarr - for movies
- Bazarr - for subtitles
- Transmission - for torrents
- Prowlarr - torrent indexer that synchronizes torrent indexers between Sonarr and Radarr
- Plex - Media server to stream shows and movies
Getting Started
Verifying the installation
All resources are created in the htpc namespace. So if you run:
kubectl get all -n htpc
You should get something similar to:
NAME READY STATUS RESTARTS AGE
pod/bazarr-795f88c5c9-w75l7 1/1 Running 0 24h
pod/plex-6f457df664-fqbmc 1/1 Running 0 24h
pod/prowlarr-6bcf6cd8d6-lrh6j 1/1 Running 0 24h
pod/radarr-5c965c7678-zt8sq 1/1 Running 0 24h
pod/sonarr-b65c8956-mxng4 1/1 Running 0 24h
pod/transmission-5f7fdc6cb5-nrtbb 1/1 Running 0 24h
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/bazarr ClusterIP 10.43.43.224 <none> 6767/TCP 24h
service/plex ClusterIP 10.43.212.198 <none> 32400/TCP 24h
service/prowlarr ClusterIP 10.43.104.233 <none> 9696/TCP 24h
service/radarr ClusterIP 10.43.141.101 <none> 7878/TCP 24h
service/sonarr ClusterIP 10.43.35.98 <none> 8989/TCP 24h
service/transmission ClusterIP 10.43.184.198 <none> 9091/TCP 24h
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/bazarr 1/1 1 1 24h
deployment.apps/plex 1/1 1 1 24h
deployment.apps/prowlarr 1/1 1 1 24h
deployment.apps/radarr 1/1 1 1 24h
deployment.apps/sonarr 1/1 1 1 24h
deployment.apps/transmission 1/1 1 1 24h
NAME DESIRED CURRENT READY AGE
replicaset.apps/bazarr-795f88c5c9 1 1 1 24h
replicaset.apps/plex-6f457df664 1 1 1 24h
replicaset.apps/prowlarr-6bcf6cd8d6 1 1 1 24h
replicaset.apps/radarr-5c965c7678 1 1 1 24h
replicaset.apps/sonarr-b65c8956 1 1 1 24h
replicaset.apps/transmission-5f7fdc6cb5 1 1 1 24h
You should also be able to reach each component's ui using the links below. Don't forget to replace localhost by the IP or the server name running k3s.
| App | URI |
|---|---|
| radarr | http://localhost/radarr |
| sonarr | http://localhost/sonarr |
| bazarr | http://localhost/bazarr |
| prowlarr | http://localhost/prowlarr |
| transmission | http://localhost/transmission |
| plex | http://localhost/ |
Check the ingress.yaml for more details.
Each module except for Plex is configured to respond on a custom basepath (check the init containers logic for more details).
How it works (WIP)
All images are provided by LinuxServers.
The namespace uses an NFS volume to store configuration and media files. It defaults to the directory: /nfs/htpc
/nfs/htpc
├── bazarr
├── downloads
├── plex
├── prowlarr
├── media
│ ├── movies
│ └── tv
├── radarr
├── sonarr
└── transmission
Description