Initial: Docker-Compose-Stack für Rapport Self-Hosting

Komplettes Bundle für eigene Rapport-Instanz:
- Postgres mit Supabase-Extensions + Init-Script für Standard-Rollen
- GoTrue (Auth) mit konfigurierbarem SMTP für Passwort-Reset-Mails
- PostgREST (REST-API)
- Realtime (Postgres-Changes für Live-Sync)
- Storage-API (Bilder/Quittungen)
- Kong als API-Gateway
- Rapport-Frontend als Multi-Stage-Build (zieht Sources aus dem App-Repo)

Plus:
- scripts/sync-migrations.sh: holt SQL aus dem App-Repo
- .env.example mit allen Pflicht-Secrets + optionalen SMTP-Werten
- nginx.conf mit SPA-Routing
- README mit Setup-Anleitung (Linux + macOS-Colima)
- LICENSE (AGPL-3.0)

Sync mit App-Repo: scripts/sync-migrations.sh holt die Migrations-SQL via
git clone und legt sie nach volumes/db/init/migrations/. Bei jedem
Rapport-Update erneut ausführen.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-05-23 20:10:54 +02:00
commit 945e46fb03
10 changed files with 589 additions and 0 deletions
+35
View File
@@ -0,0 +1,35 @@
# Kopiere nach .env und ersetze die markierten Werte.
# Niemals committen — .env steht in .gitignore.
# ═══ Pflicht: Secrets ═══
# Zufallswerte generieren mit: openssl rand -hex 32
POSTGRES_PASSWORD=CHANGE-ME-mindestens-32-zufällige-zeichen
JWT_SECRET=CHANGE-ME-mindestens-32-zufällige-zeichen
ANON_KEY=CHANGE-ME-aus-jwt-secret-abgeleitet
SERVICE_ROLE_KEY=CHANGE-ME-aus-jwt-secret-abgeleitet
# ═══ Pflicht: URLs ═══
# Wenn nur LAN: SITE_URL=http://192.168.1.50:8080 (oder rapport.local:8080)
# Wenn extern via Reverse-Proxy: SITE_URL=https://app.rapport.studio.ch
SITE_URL=http://localhost:8080
API_EXTERNAL_URL=http://localhost:8000
# ═══ Optional: Ports ═══
APP_PORT=8080
KONG_HTTP_PORT=8000
KONG_HTTPS_PORT=8443
DB_PORT=5432
# ═══ Optional: Rapport-Frontend-Version ═══
# Wenn Custom-Build: setze RAPPORT_APP_TAG auf die gewünschte Version
RAPPORT_APP_TAG=0.8.2
# ═══ Optional: Email für Passwort-Reset etc. ═══
# Wenn leer: Mails landen lokal in Inbucket (Test-Mailserver, Port 9000)
# Für Production: echten SMTP-Server angeben
SMTP_HOST=
SMTP_PORT=587
SMTP_USER=
SMTP_PASS=
SMTP_SENDER_NAME=Rapport
SMTP_ADMIN_EMAIL=admin@rapport.studio.ch