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,23 @@
|
||||
# Nicht-geheime Konfiguration. Geheimnisse (Passwoerter, API-Keys) gehoeren
|
||||
# in 02-secret.yaml (aus 02-secret.example.yaml kopiert), NIE hierher.
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: wabenhain-config
|
||||
namespace: wabenhain
|
||||
data:
|
||||
# "postgresql" oder "mysql" — muss zum Service passen, den du unter
|
||||
# 03-postgres.yaml/03-mysql.yaml tatsaechlich ausrollst, UND zum
|
||||
# DATABASE_URL-Host in 02-secret.yaml. Ein einzelnes Image traegt beide
|
||||
# Prisma-Client-Varianten, siehe src/lib/prisma.ts.
|
||||
DATABASE_PROVIDER: "postgresql"
|
||||
NODE_ENV: "production"
|
||||
# Oeffentliche URL des Shops (fuer absolute Links in E-Mails/Sitemaps/CSP).
|
||||
NEXT_PUBLIC_SITE_URL: "https://shop.example.com"
|
||||
SMTP_PORT: "587"
|
||||
SMTP_FROM: "Wabenhain <[email protected]>"
|
||||
# Optional, siehe README-Abschnitte "Google-Rezensionen"/"CAPTCHA" — leer
|
||||
# lassen, wenn nicht genutzt, die App faellt automatisch zurueck.
|
||||
GOOGLE_PLACES_API_KEY: ""
|
||||
GOOGLE_PLACE_ID: ""
|
||||
NEXT_PUBLIC_TURNSTILE_SITE_KEY: ""
|
||||
Reference in New Issue
Block a user