main
COPY server ./server überschrieb das zuvor erzeugte node_modules → express fehlte, host crashte. Jetzt: Code kopieren, dann installieren. Container verifiziert: Migrationen laufen beim Start, alle Seiten + Assets (css/js/font) + API liefern 200, E2E (register→checkout→admin-stats) ok. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
RAPPORT-STACK
Alles-in-einem: der komplette RAPPORT-Hosting-Betrieb als ein Compose-Stack. Ein
docker compose upstartet Backend, Rapport-Frontend, Marketing-Website, Login/Konto und die Betreiber-Plattform.
Was drin ist
| Schicht | Herkunft | Container |
|---|---|---|
| Rapport-Backend (Supabase) | ../SERVER-CONTAINER (via include) |
db, auth, rest, realtime, storage, kong |
| Rapport-Frontend | ../SERVER-CONTAINER |
app |
| HOST-Datenbank | dieses Repo | host-db |
| Marketing + Login + Konto + Admin + API | ../RAPPORT-WEBSITE (gebaut) + ../RAPPORT-HOST (Node) |
host |
Der host-Container bündelt die gebaute Hugo-Website und das Node-Backend
in einem Image (siehe Dockerfile.host). Er provisioniert Kunden-Instanzen über
Kong in den Supabase-Stack.
Voraussetzung: Die drei Schwester-Repos liegen neben diesem (
~/RAPPORT/SERVER-CONTAINER,~/RAPPORT/RAPPORT-WEBSITE,~/RAPPORT/RAPPORT-HOST) — der Build referenziert sie als Build-Kontexte.
Start (lokal)
cp .env.example .env
# Secrets setzen: openssl rand -hex 32 für POSTGRES_PASSWORD/JWT_SECRET/HOST_JWT_SECRET
# ANON_KEY + SERVICE_ROLE_KEY: cd ../SERVER-CONTAINER && node scripts/generate-keys.mjs <JWT_SECRET>
# Rapport-Migrations einmal holen: cd ../SERVER-CONTAINER && ./scripts/sync-migrations.sh
docker compose up -d
docker compose ps # alle healthy?
Erreichbar:
- Hosting-Plattform (Marketing/Login/Konto/Admin): http://localhost:8787
- Rapport-App (Kunden-Instanzen): http://localhost:8080
- Rapport-API (Kong): http://localhost:8000
Admin-Bereich: http://localhost:8787/admin/ (Passwort = ADMIN_PASSWORD).
Produktion (Hetzner)
Gleicher Stack, andere .env:
- Domains in
SITE_URL,API_EXTERNAL_URL,PUBLIC_BASE_URL,RAPPORT_INSTANCE_URL_TEMPLATE - echte
STRIPE_*-Keys - davor ein Reverse-Proxy (Caddy/Nginx Proxy Manager) für TLS auf
host.…(→ 8787) undapp.…(→ 8080)
Aufbau
RAPPORT-STACK/
├── docker-compose.yml include SERVER-CONTAINER + host-db + host
├── Dockerfile.host Hugo-Website-Build + Node-Backend (multi-stage)
├── .env.example eine Config für lokal + Hetzner
└── README.md
Hinweise
- host baut bei
docker compose builddie Website frisch aus../RAPPORT-WEBSITE. Nach Website-Änderungen:docker compose build host. - Bei Schema-/Migrations-Änderungen im App-Repo:
cd ../SERVER-CONTAINER && ./scripts/sync-migrations.sh && docker compose up -d - Lizenz: dieses Repo bündelt AGPL-Komponenten (Rapport) UND das proprietäre RAPPORT-HOST. Das Compose-Setup selbst ist Infrastruktur-Glue.
Description
All-in-One Docker-Compose: Supabase-Backend + Rapport-Website + RAPPORT-HOST Hosting-Plattform