Add migration scripts and manifests for GitLab and Gitea to Longhorn

- Create .vscode/settings.json for YAML schema validation.
- Add WISSENSBASIS.md for documentation on HomeLabScripts.
- Implement migration job for GitLab from NFS to Longhorn with migrate-to-longhorn.yaml and migrate-to-longhorn.sh.
- Add Gitea migration scripts and manifests for PostgreSQL to Longhorn.
- Create persistent volume claims and deployments for Gitea and Homarr.
- Set up namespaces and services for Homarr and Speedtest Tracker.
- Add secrets for Homarr and Speedtest Tracker with sensitive data.
- Configure Ingress for Speedtest Tracker with Traefik annotations.

Co-authored-by: Copilot <copilot@github.com>
This commit is contained in:
2026-04-24 23:08:23 +02:00
parent be9329d313
commit 39079615f5
22 changed files with 1137 additions and 11 deletions
@@ -0,0 +1,4 @@
apiVersion: v1
kind: Namespace
metadata:
name: speedtest-tracker
@@ -0,0 +1,62 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: speedtest-tracker
namespace: speedtest-tracker
labels:
app.kubernetes.io/name: speedtest-tracker
spec:
replicas: 1
selector:
matchLabels:
app.kubernetes.io/name: speedtest-tracker
template:
metadata:
labels:
app.kubernetes.io/name: speedtest-tracker
spec:
dnsPolicy: None
dnsConfig:
nameservers:
- 10.152.183.10
- 8.8.8.8
searches:
- speedtest-tracker.svc.cluster.local
options:
- name: ndots
value: "5"
containers:
- name: speedtest-tracker
image: lscr.io/linuxserver/speedtest-tracker:latest
env:
- name: PUID
value: "1000"
- name: PGID
value: "1000"
- name: APP_KEY
valueFrom:
secretKeyRef:
name: speedtest-tracker-secret
key: APP_KEY
- name: DISPLAY_TIMEZONE
value: Europe/Berlin
- name: DB_CONNECTION
value: sqlite
- name: SPEEDTEST_SCHEDULE
value: "0 * * * *"
- name: SPEEDTEST_SERVERS
value: ""
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
cpu: 500m
memory: 512Mi
volumeMounts:
- mountPath: /config
name: speedtest-tracker
volumes:
- name: speedtest-tracker
persistentVolumeClaim:
claimName: speedtest-tracker
@@ -0,0 +1,20 @@
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: speedtest-tracker
namespace: speedtest-tracker
annotations:
traefik.ingress.kubernetes.io/router.entrypoints: web
spec:
ingressClassName: traefik
rules:
- host: speedtest.henryathome.home64.de
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: speedtest-tracker
port:
number: 80
@@ -0,0 +1,12 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: speedtest-tracker
namespace: speedtest-tracker
spec:
accessModes:
- ReadWriteOnce
storageClassName: longhorn
resources:
requests:
storage: 5Gi
@@ -0,0 +1,8 @@
apiVersion: v1
kind: Secret
metadata:
name: speedtest-tracker-secret
namespace: speedtest-tracker
type: Opaque
stringData:
APP_KEY: "base64:kRwkJqieSmtYw0+066zNiNgXInLSexYxT9RgIyONNMI=" # https://speedtest-tracker.dev
@@ -0,0 +1,16 @@
apiVersion: v1
kind: Service
metadata:
name: speedtest-tracker
namespace: speedtest-tracker
labels:
app.kubernetes.io/name: speedtest-tracker
spec:
type: NodePort
selector:
app.kubernetes.io/name: speedtest-tracker
ports:
- port: 80
targetPort: 80
protocol: TCP
nodePort: 30800