Dark-Alex-17 / htpc

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

About