Docker Compose
Auf einem einzelnen Server mit Docker Compose deployen.
Einzelserver-Deployments nutzen die auditierte Produktions-Compose-Datei im Gateway-Repository — denselben Stack, der palveron.com betreibt. Sie baut die Images aus dem Quellcode und erwartet ein verwaltetes PostgreSQL (Supabase empfohlen); die Datenbank ist bewusst nicht Teil des Stacks.
Schnellstart
git clone https://github.com/palveron/gateway.git
git clone https://github.com/palveron/platform.git /opt/palveron/platform
cd gateway
cp .env.production.example .env.production
# Ausfüllen: DATABASE_URL, die drei Verschlüsselungs-Keys
# (TRACE_ENCRYPTION_ROOT_KEY / FLARE_ENCRYPTION_KEY / DLQ_ENCRYPTION_KEY —
# erzeugen mit `openssl rand -base64 32`), INTERNAL_PROXY_SECRET,
# Kinde-Zugangsdaten und Ihre öffentlichen URLs. Diese Datei nie committen.
docker compose -f docker/docker-compose.production.yml \
--env-file .env.production up -dDienste
| Dienst | Port | Beschreibung |
|---|---|---|
gateway | 8080 (intern) | Rust Policy Engine + Verify-Pipeline |
platform | 3000 (intern) | Next.js-Dashboard |
docs | 3001 (Loopback) | Dokumentations-Site |
redis | intern | Optionaler Cache — das Gateway läuft ohne kontrolliert weiter |
nginx | 80/443 | Reverse Proxy / TLS-Terminierung |
| PostgreSQL | — | Extern — verwaltete Datenbank via DATABASE_URL |
Das Datenbank-Schema initialisiert sich beim ersten Start — das Gateway appliziert seine mitgelieferten SQLx-Migrationen (Schema-Baseline + Seed) gegen die leere Datenbank. Kein manueller SQL-Schritt nötig.
Health-Checks
curl http://localhost:8080/health # Gateway-Liveness (Prozess lebt)
curl http://localhost:8080/ready # Gateway-Readiness (Postgres erreichbar)
curl http://localhost:3000/api/health # DashboardProduktions-Checkliste
RUST_ENV=productionsetzen (die Compose-Datei tut das) — es schärft die Verschlüsselungs-Boot-Gates; ohne die drei Keys startet das Gateway nicht.- Die Verschlüsselungs-Keys sofort im Passwort-Manager sichern.
DATABASE_URLauf verwaltetes PostgreSQL zeigen lassen und das Client-Limit Ihres Poolers beachten.- Für Flare-Anchoring
FLARE_PRIVATE_KEYund die per-Netzwerk-Contract- Adressen gemäß der Blockchain-Anleitung setzen.
Für Kubernetes-Deployments nutzen Sie das Helm-Chart — siehe die Helm-Anleitung.