Files
RAPPORT-SERVER-APP/README.md
T
karim e2d2fd9fa2 Initial source: RAPPORT Server-App v0.1.0
- Tauri-2-Admin-UI fuer den Rapport-Compose-Stack
- React-Frontend (JSX, kein TS) mit Material-Symbols-Icons
- Service-Cards mit Live-Stats (CPU/RAM), Logs, Restart/Stop
- Backup-/Restore-System mit pg_dumpall + Retention
- Container-Auto-Updates mit Pre-Backup
- App-Auto-Updater (Tauri signiert) gegen latest.json im Repo-Root
- HTTPS-WebUI (axum/rustls) mit Basic-Auth, CSRF, Rate-Limit, Security-Headers
- Setup-Wizard: lädt Docker+Colima+Lima direct von GitHub/docker.com nach ~/.rapport/bin/
- Tray-Modus + macOS-Notifications + Auto-Recovery
- Login-Item via tauri-plugin-autostart
2026-05-24 17:03:50 +02:00

3.8 KiB

RAPPORT Server-App

Tauri-Admin-UI für den Rapport-Stack. Eine native Mac/Linux/Windows-App, die den kompletten Rapport-Server (Postgres, GoTrue, PostgREST, Realtime, Storage, Kong, Frontend) als Docker-Compose-Stack startet, überwacht und administriert — lokal mit Native-UI und im LAN über HTTPS-WebUI.

Status

Pre-Alpha, aber funktional. Service-Lifecycle, Live-Logs, TLS-WebUI und Tray-Modus laufen. Backup/Restore ist Placeholder. Auto-Updater ist verdrahtet, aber nicht aktiv (kein Signing-Key).

Was die App ist

  • Admin-UI auf dem Server-Mac: Status-Dashboard für alle 7 Services, Live-Log-Tail, Start/Stop pro Service oder bulk, Settings-Editor für config.env.
  • HTTPS-WebUI im LAN: dieselbe UI vom Browser eines anderen Geräts aus. Self-signed Cert, Basic-Auth mit Brute-Force-Lockout. Wichtig für headless Mac-Mini-Deployments ohne Bildschirm.
  • Tray-Wrapper: Fenster schliessen reduziert in den System-Tray; Services laufen weiter. Quit nur über Tray-Menü.
  • Compose-Wrapper, kein eigener Container-Runtime: die App ruft docker compose gegen den SERVER-CONTAINER-Stack auf. Die Compose-Datei und das .env sind die Source-of-Truth — Änderungen dort werden automatisch übernommen.

Was die App nicht ist

  • "Doppelklick statt Docker" — diese ursprüngliche Idee ist verworfen. Native Service-Binaries gibt's für die meisten Supabase-Komponenten nicht (Realtime/Erlang, Storage/Node, etc.). Pragmatik schlägt Vision: wir setzen einen lokalen Docker-Daemon (OrbStack, Colima oder Docker Desktop) voraus und liefern dafür die polierte UI obendrauf.

Voraussetzungen

Komponente Hinweis
Docker-CLI + Daemon OrbStack oder Colima (beide Mac-nativ, Colima ist Apache 2.0 / open source). brew install docker colima && colima start reicht.
SERVER-CONTAINER-Repo geklont Default-Suchpfad: ~/RAPPORT/SERVER-CONTAINER/. Override via COMPOSE_DIR=... in config.env.
Node ≥ 20, Rust ≥ 1.77 nur fürs Bauen aus Source, nicht für den Endnutzer.

Lokal starten

npm install
npm run tauri:dev

Beim ersten Klick auf "Alle starten" pullt Compose die Images (~700 MB). Danach geht's instant.

Bundle

npm run tauri:build

Output unter src-tauri/target/release/bundle/. Code-Signing ist noch nicht konfiguriert.

WebUI-Zugriff (für headless)

  • URL lokal: https://127.0.0.1:9090
  • URL im LAN: https://<hostname>.local:9090
  • User: admin, Passwort steht in config.env (ADMIN_UI_PASSWORD, auto-generiert beim Erst-Start)
  • Browser warnt vor dem self-signed Cert → einmal akzeptieren

LAN-Freigabe ist standardmässig aus — in der App unter Settings → Admin-WebUI explizit aktivieren.

Konfiguration

Alles in <DATA>/config.env (auf macOS: ~/Library/Application Support/com.rapport.server-app/config.env, chmod 600). Wichtige Keys:

Key Bedeutung
POSTGRES_PASSWORD, JWT_SECRET Stack-Secrets (auto-generiert)
ADMIN_UI_BIND 127.0.0.1 (default) oder 0.0.0.0 für LAN
ADMIN_UI_PORT Default 9090
ADMIN_UI_TLS true (default) oder false
ADMIN_UI_PASSWORD Random; via Settings-UI anzeigbar/änderbar
COMPOSE_DIR Pfad zum SERVER-CONTAINER-Verzeichnis (nur nötig wenn nicht in ~/RAPPORT/SERVER-CONTAINER/)

Bezug zu anderen Rapport-Repos

Repo Rolle
RAPPORT Desktop-Client für Endnutzer (Tauri, JSX)
RAPPORT-SERVER-CONTAINER Der Compose-Stack — Source-of-Truth für DB-Schema und Service-Config
RAPPORT Server-App (dieses Repo) Polished UI über dem Compose-Stack — lokal + LAN-WebUI
RAPPORT-WEBSITE Marketing- & Doku-Site

Lizenz

GNU AGPL-3.0-or-later — identisch zur restlichen Rapport-Familie.