Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

HTPC services running on Kubernetes

NotificationsYou must be signed in to change notification settings

fabito/htk8s

Repository files navigation

test

HTPC powered by k3s

htk8s diagrams

This is my currentHTPC setup. It runs onk3s - a lightweight and easy to install Kubernetes distribution.It includes the following applications:

Applications state (settings / db) and media files are stored in a shared volume of typehostPath. It does not use PVC and currently only works if the wholehtpc namespace is deployed in the same node.

Getting Started

Quickstart

# for x86_64kubectl apply -f https://raw.githubusercontent.com/fabito/htk8s/v0.1/install_x86_64.yaml# for raspberry pi (ARM)kubectl apply -f https://raw.githubusercontent.com/fabito/htk8s/v0.1/install_armhf.yaml

The Gitops way

argocd htpc application

# x86_64 onlykubectl apply -f https://raw.githubusercontent.com/fabito/htk8s/v0.1/install_argocd.yaml

This alternate manifest will installArgo CD along with thehtpc application. Then it will monitor this repo for changes and apply them to the cluster accordingly (more specifically theoverlays/x86overlay).

You can access the ArgoCD UI at:https://localhost/argocd.

Verifying the installation

All resources are created in thehtpc namespace. So if you run:

k3s kubectl get all -n htpc

You should get something similar to:

NAME                                READY   STATUS    RESTARTS   AGEpod/bazarr-795f88c5c9-w75l7         1/1     Running   0          24hpod/emby-6f457df664-fqbmc           1/1     Running   0          24hpod/jackett-6bcf6cd8d6-lrh6j        1/1     Running   0          24hpod/radarr-5c965c7678-zt8sq         1/1     Running   0          24hpod/sonarr-b65c8956-mxng4           1/1     Running   0          24hpod/transmission-5f7fdc6cb5-nrtbb   1/1     Running   0          24hNAME                   TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)    AGEservice/bazarr         ClusterIP   10.43.43.224<none>        6767/TCP   24hservice/emby           ClusterIP   10.43.212.198<none>        8096/TCP   24hservice/jackett        ClusterIP   10.43.104.233<none>        9117/TCP   24hservice/radarr         ClusterIP   10.43.141.101<none>        7878/TCP   24hservice/sonarr         ClusterIP   10.43.35.98<none>        8989/TCP   24hservice/transmission   ClusterIP   10.43.184.198<none>        9091/TCP   24hNAME                           READY   UP-TO-DATE   AVAILABLE   AGEdeployment.apps/bazarr         1/1     1            1           24hdeployment.apps/emby           1/1     1            1           24hdeployment.apps/jackett        1/1     1            1           24hdeployment.apps/radarr         1/1     1            1           24hdeployment.apps/sonarr         1/1     1            1           24hdeployment.apps/transmission   1/1     1            1           24hNAME                                      DESIRED   CURRENT   READY   AGEreplicaset.apps/bazarr-795f88c5c9         1         1         1       24hreplicaset.apps/emby-6f457df664           1         1         1       24hreplicaset.apps/jackett-6bcf6cd8d6        1         1         1       24hreplicaset.apps/radarr-5c965c7678         1         1         1       24hreplicaset.apps/sonarr-b65c8956           1         1         1       24hreplicaset.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 replacelocalhost with the IP or the server name running k3s.

AppURI
radarrhttp://localhost/radarr
sonarrhttp://localhost/sonarr
bazarrhttp://localhost/bazarr
jackethttp://localhost/jackett
transmissionhttp://localhost/transmission
embyhttp://localhost/

Check theingress-route.yaml for more details.

Each module except for Emby is configured to respond on a custom basepath (check the init containers logic for more details).

How it works (WIP)

It usesLinuxServers images.

It uses ahostPath volume to store configuration and media files. It defaults to the/opt/htpc directory

/opt/htpc├── bazarr├── downloads├── emby├── jackett├── media│   ├── movies│   └── tv├── radarr├── sonarr└── transmission

[8]ページ先頭

©2009-2025 Movatter.jp