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,37 @@
|
||||
# Setzt einen bereits im Cluster laufenden Ingress-Controller voraus (z.B.
|
||||
# ingress-nginx) sowie optional cert-manager fuer automatisches TLS. Host
|
||||
# unten anpassen (muss zu NEXT_PUBLIC_SITE_URL in 01-configmap.yaml passen).
|
||||
#
|
||||
# X-Forwarded-For: ingress-nginx setzt den Header standardmaessig korrekt
|
||||
# (verwirft einen vom Client mitgeschickten Wert), lib/rate-limit.ts vertraut
|
||||
# genau darauf — bei einem ANDEREN Ingress-Controller/zusaetzlichen Proxy
|
||||
# davor unbedingt pruefen, dass er sich genauso verhaelt, siehe Kommentar in
|
||||
# lib/rate-limit.ts.
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: wabenhain
|
||||
namespace: wabenhain
|
||||
annotations:
|
||||
# Nur relevant, falls cert-manager installiert ist — sonst diese beiden
|
||||
# Zeilen und den "tls:"-Block unten entfernen und Host per HTTP betreiben
|
||||
# oder TLS auf andere Weise terminieren.
|
||||
cert-manager.io/cluster-issuer: letsencrypt-prod
|
||||
nginx.ingress.kubernetes.io/ssl-redirect: "true"
|
||||
spec:
|
||||
ingressClassName: nginx
|
||||
tls:
|
||||
- hosts:
|
||||
- shop.example.com
|
||||
secretName: wabenhain-tls
|
||||
rules:
|
||||
- host: shop.example.com
|
||||
http:
|
||||
paths:
|
||||
- path: /
|
||||
pathType: Prefix
|
||||
backend:
|
||||
service:
|
||||
name: wabenhain-app
|
||||
port:
|
||||
number: 80
|
||||
Reference in New Issue
Block a user