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
+14
View File
@@ -0,0 +1,14 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: netronome-config
namespace: netronome
data:
NETRONOME__DB_TYPE: "postgres"
NETRONOME__DB_HOST: "netronome-postgres-service"
NETRONOME__DB_PORT: "5432"
NETRONOME__DB_NAME: "netronome"
NETRONOME__DB_SSLMODE: "disable"
NETRONOME__HOST: "0.0.0.0"
NETRONOME__PORT: "7575"
NETRONOME__BASE_URL: "/"
+50
View File
@@ -0,0 +1,50 @@
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: netronome-prod
namespace: netronome
spec:
entryPoints:
- websecure
routes:
- match: Host(`nm.forust.xyz`)
kind: Rule
services:
- name: netronome-service
port: 7575
tls:
{}
---
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: netronome-local
namespace: netronome
spec:
entryPoints:
- websecure
routes:
- match: Host(`nm.workstation.internal`)
kind: Rule
services:
- name: netronome-service
port: 7575
tls:
secretName: local-tls
---
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: netronome-dev
namespace: netronome
spec:
entryPoints:
- websecure
routes:
- match: Host(`nm.gigaforust.internal`)
kind: Rule
services:
- name: netronome-service
port: 7575
tls:
secretName: local-tls
+4
View File
@@ -0,0 +1,4 @@
apiVersion: v1
kind: Namespace
metadata:
name: netronome
+77
View File
@@ -0,0 +1,77 @@
apiVersion: v1
kind: Service
metadata:
name: netronome-service
namespace: netronome
spec:
selector:
app: netronome
ports:
- port: 7575
protocol: TCP
targetPort: 7575
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: netronome-deployment
namespace: netronome
labels:
app: netronome
spec:
replicas: 1
selector:
matchLabels:
app: netronome
template:
metadata:
labels:
app: netronome
spec:
containers:
- name: netronome
image: ghcr.io/autobrr/netronome:latest
ports:
- name: netronome-port
protocol: TCP
containerPort: 7575
envFrom:
- configMapRef:
name: netronome-config
env:
- name: NETRONOME__DB_USER
valueFrom:
secretKeyRef:
name: netronome-secret
key: NETRONOME__DB_USER
- name: NETRONOME__DB_PASSWORD
valueFrom:
secretKeyRef:
name: netronome-secret
key: NETRONOME__DB_PASSWORD
resources:
requests:
memory: "512Mi"
cpu: "500m"
limits:
memory: "1Gi"
cpu: "1000m"
volumeMounts:
- name: netronome-data
mountPath: /data
volumes:
- name: netronome-data
persistentVolumeClaim:
claimName: netronome-pvc
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: netronome-pvc
namespace: netronome
spec:
resources:
requests:
storage: 1Gi
accessModes:
- ReadWriteOnce