feat(family): deploy Single-Writer DuckDB backend, Mila parent cockpit & feeding analytics, and Moritz macro tracker

This commit is contained in:
Moritz Graf
2026-10-17 07:21:49 +02:00
parent ef50d87bd7
commit 5b8432caf4
96 changed files with 16409 additions and 29 deletions
+30 -9
View File
@@ -10,15 +10,37 @@ spec:
apiVersion: traefik.io/v1alpha1
kind: Middleware
metadata:
name: hosting-legacy-redirect
name: hosting-redirect-mila
namespace: minio
spec:
redirectRegex:
regex: "^https?://([^/]+)/(mila|moritz|nutrition|sleep)\\.html(.*)"
replacement: "https://${1}/family/${2}.html${3}"
permanent: false
regex: "^https?://([^/]+)/(?:family/)?(mila|sleep)\\.html.*"
replacement: "https://family.haumdaucher.de/tracking/mila/"
permanent: true
---
# Public Ingress for hosting.haumdaucher.de (Recipes, Public Assets)
apiVersion: traefik.io/v1alpha1
kind: Middleware
metadata:
name: hosting-redirect-moritz
namespace: minio
spec:
redirectRegex:
regex: "^https?://([^/]+)/(?:family/)?(moritz|nutrition)\\.html.*"
replacement: "https://family.haumdaucher.de/tracking/moritz/"
permanent: true
---
apiVersion: traefik.io/v1alpha1
kind: Middleware
metadata:
name: hosting-redirect-family-root
namespace: minio
spec:
redirectRegex:
regex: "^https?://([^/]+)/family/?$"
replacement: "https://family.haumdaucher.de/"
permanent: true
---
# Public Ingress for hosting.haumdaucher.de (Recipes, Public Assets, Legacy Redirects)
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
@@ -29,7 +51,7 @@ metadata:
cert-manager.io/cluster-issuer: "letsencrypt-prod"
kubernetes.io/tls-acme: "true"
traefik.ingress.kubernetes.io/router.priority: "10"
traefik.ingress.kubernetes.io/router.middlewares: minio-hosting-legacy-redirect@kubernetescrd,minio-hosting-add-prefix@kubernetescrd
traefik.ingress.kubernetes.io/router.middlewares: minio-hosting-redirect-mila@kubernetescrd,minio-hosting-redirect-moritz@kubernetescrd,minio-hosting-redirect-family-root@kubernetescrd,minio-hosting-add-prefix@kubernetescrd
spec:
ingressClassName: traefik
rules:
@@ -48,8 +70,7 @@ spec:
- hosting.haumdaucher.de
secretName: hosting-haumdaucher-de-tls
---
# Protected Ingress for /family (Family Dashboards, Nutrition & Sleep Analytics)
# Protected by Authentik ForwardAuth
# Protected Ingress for /family (Redirects and Authentik Outpost)
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
@@ -60,7 +81,7 @@ metadata:
cert-manager.io/cluster-issuer: "letsencrypt-prod"
kubernetes.io/tls-acme: "true"
traefik.ingress.kubernetes.io/router.priority: "100"
traefik.ingress.kubernetes.io/router.middlewares: auth-authentik-forwardauth@kubernetescrd,minio-hosting-add-prefix@kubernetescrd
traefik.ingress.kubernetes.io/router.middlewares: minio-hosting-redirect-mila@kubernetescrd,minio-hosting-redirect-moritz@kubernetescrd,minio-hosting-redirect-family-root@kubernetescrd,auth-authentik-forwardauth@kubernetescrd,minio-hosting-add-prefix@kubernetescrd
spec:
ingressClassName: traefik
rules: