Files
htpc/README.md
2022-10-04 10:22:48 -06:00

93 lines
4.0 KiB
Markdown

# HTPC powered by k3s
This is my current [HTPC](https://en.wikipedia.org/wiki/Home_theater_PC) setup. It runs on [k3s](https://k3s.io/) - a lightweight and easy to install Kubernetes distribution.
It includes the following applications:
* [Sonarr](https://sonarr.tv/) - for tv shows
* [Radarr](https://radarr.video/) - for movies
* [Bazarr](https://github.com/morpheus65535/bazarr) - for subtitles
* [Transmission](https://transmissionbt.com/) - for torrents
* [Prowlarr](https://wiki.servarr.com/prowlarr) - torrent indexer that synchronizes torrent indexers between Sonarr and Radarr
* [Plex](https://www.plex.tv/) - Media server to stream shows and movies
## Getting Started
### Verifying the installation
All resources are created in the `htpc` namespace. So if you run:
```bash
kubectl get all -n htpc
```
You should get something similar to:
```bash
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](base/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](https://www.linuxserver.io/our-images/).
The namespace uses an NFS volume to store configuration and media files. It defaults to the directory: `/nfs/htpc`
```bash
/nfs/htpc
├── bazarr
├── downloads
├── plex
├── prowlarr
├── media
│   ├── movies
│   └── tv
├── radarr
├── sonarr
└── transmission
```