feat: Docker-, Kubernetes- und Gitea-Actions-Deployment-Pipeline
Docker Image bauen und veroeffentlichen / build-and-push (push) Waiting to run
Docker Image bauen und veroeffentlichen / build-and-push (push) Waiting to run
Dockerfile (Multi-Stage, "output: standalone"), docker-compose.yml mit Caddy als einzigem nach aussen offenem Reverse-Proxy (verhindert X-Forwarded-For-Faelschung fuer das App-eigene Rate-Limiting), Gitea Actions Workflow der bei jedem Push zwei Image-Tags in die Gitea- Container-Registry baut (schlankes Laufzeit-Image + ein Migrations- Image mit Prisma-CLI), sowie rohe Kubernetes-Manifeste (Namespace, ConfigMap, Secret-Vorlage, Postgres-/MySQL-StatefulSet, Migrations-Job, App-Deployment, Ingress) fuer den Cluster-Betrieb. Siehe k8s/README.md fuer den vollstaendigen Einrichtungs-/Deployment-Ablauf.
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
# Vorlage OHNE echte Geheimnisse — analog zu .env.example. Kopieren nach
|
||||
# 02-secret.yaml (per .gitignore ausgeschlossen, NIE committen), Werte
|
||||
# ausfuellen, dann "kubectl apply -f k8s/02-secret.yaml".
|
||||
#
|
||||
# Alternative ohne Datei mit Klartext-Secrets auf der Platte:
|
||||
# kubectl create secret generic wabenhain-secrets -n wabenhain \
|
||||
# --from-literal=DATABASE_URL='postgresql://wabenhain:CHANGE-ME@wabenhain-postgres:5432/wabenhain?schema=public' \
|
||||
# --from-literal=DB_PASSWORD='CHANGE-ME' \
|
||||
# --from-literal=SESSION_SECRET="$(openssl rand -base64 32)" \
|
||||
# --from-literal=ADMIN_EMAIL='[email protected]' \
|
||||
# --from-literal=ADMIN_PASSWORD="$(openssl rand -base64 24 | tr -d '=+/' | head -c 28)" \
|
||||
# --from-literal=STRIPE_SECRET_KEY='' \
|
||||
# --from-literal=STRIPE_PUBLISHABLE_KEY='' \
|
||||
# --from-literal=STRIPE_WEBHOOK_SECRET='' \
|
||||
# --from-literal=SMTP_HOST='' --from-literal=SMTP_USER='' --from-literal=SMTP_PASSWORD='' \
|
||||
# --from-literal=TURNSTILE_SECRET_KEY=''
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: wabenhain-secrets
|
||||
namespace: wabenhain
|
||||
type: Opaque
|
||||
stringData:
|
||||
# Host "wabenhain-postgres" bzw. "wabenhain-mysql" passend zum Service aus
|
||||
# 03-postgres.yaml/03-mysql.yaml waehlen; Port 5432 (Postgres) bzw. 3306
|
||||
# (MySQL). Muss zu DATABASE_PROVIDER in 01-configmap.yaml passen.
|
||||
DATABASE_URL: "postgresql://wabenhain:CHANGE-ME@wabenhain-postgres:5432/wabenhain?schema=public"
|
||||
# Dasselbe Passwort wie oben in DATABASE_URL — wird vom Postgres-/MySQL-
|
||||
# StatefulSet (je nachdem, welches du anwendest) zum Anlegen des
|
||||
# Datenbank-Nutzers verwendet.
|
||||
DB_PASSWORD: "CHANGE-ME"
|
||||
# Mindestens 32 Zeichen, z.B.: openssl rand -base64 32
|
||||
SESSION_SECRET: "CHANGE-ME-min-32-zeichen-zufaelliger-string"
|
||||
# Unvorhersehbar waehlen (nicht "admin@..."), siehe README "Admin-Zugang" —
|
||||
# sonst koennte sich jemand die erwartete Adresse vorregistrieren.
|
||||
ADMIN_EMAIL: "[email protected]"
|
||||
ADMIN_PASSWORD: "CHANGE-ME"
|
||||
STRIPE_SECRET_KEY: ""
|
||||
STRIPE_PUBLISHABLE_KEY: ""
|
||||
STRIPE_WEBHOOK_SECRET: ""
|
||||
SMTP_HOST: ""
|
||||
SMTP_USER: ""
|
||||
SMTP_PASSWORD: ""
|
||||
TURNSTILE_SECRET_KEY: ""
|
||||
Reference in New Issue
Block a user