feat(k8s): add K8s manifests for all homelab services

traefik, gitea, adguard, nextcloud, errorpages, homepages,
uptime-kuma, kener, checkmk, headscale, dockmon, metube,
downtify, portainer, netronome, userbot

Includes Helm values, deployments, services, ingress routes,
configmaps, secrets (placeholders), postgres statefulsets,
kustomize overlays, and Traefik dynamic configuration.
This commit is contained in:
2026-06-08 10:51:04 +02:00
parent f3d04e935c
commit 36922a177c
60 changed files with 2596 additions and 5 deletions
+10
View File
@@ -0,0 +1,10 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: metube-config
namespace: metube
data:
DOWNLOAD_MODE: "limited"
MAX_CONCURRENT_DOWNLOADS: "3"
DELETE_FILE_ON_TRASHCAN: "true"
DEFAULT_OPTION_PLAYLIST_STRICT_MODE: "true"
+52
View File
@@ -0,0 +1,52 @@
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: metube-prod
namespace: metube
spec:
entryPoints:
- websecure
routes:
- match: Host(`metube.forust.xyz`)
kind: Rule
middlewares:
- name: security-chain@file
services:
- name: metube-service
port: 8081
tls:
{}
---
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: metube-local
namespace: metube
spec:
entryPoints:
- websecure
routes:
- match: Host(`metube.workstation.internal`)
kind: Rule
services:
- name: metube-service
port: 8081
tls:
secretName: local-tls
---
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: metube-dev
namespace: metube
spec:
entryPoints:
- websecure
routes:
- match: Host(`metube.gigaforust.internal`)
kind: Rule
services:
- name: metube-service
port: 8081
tls:
secretName: local-tls
+54
View File
@@ -0,0 +1,54 @@
apiVersion: v1
kind: Service
metadata:
name: metube-service
namespace: metube
spec:
selector:
app: metube
ports:
- port: 8081
targetPort: 8081
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: metube-deployment
namespace: metube
spec:
replicas: 1
selector:
matchLabels:
app: metube
template:
metadata:
labels:
app: metube
spec:
containers:
- name: metube
image: ghcr.io/alexta69/metube
envFrom:
- configMapRef:
name: metube-config
ports:
- containerPort: 8081
volumeMounts:
- name: downloads
mountPath: /downloads
volumes:
- name: downloads
persistentVolumeClaim:
claimName: metube-downloads-pvc
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: metube-downloads-pvc
namespace: metube
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi
+4
View File
@@ -0,0 +1,4 @@
apiVersion: v1
kind: Namespace
metadata:
name: metube