Deployt RAPPORT-STACK (Supabase + Rapport-Frontend + Marketing-Website + RAPPORT-HOST + Admin-Cockpit) in einen LXC. Klont alle 4 Repos nach /opt/rapport (private HOST/STACK via GITEA_TOKEN), generiert Secrets + ANON/SERVICE-Keys, setzt LAN-URLs, baut + startet den Stack. Workflow wie openbureau: /opt/rapport/update.sh = git pull (alle Repos) + sync-migrations + docker compose up -d --build → Änderungen live. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
RAPPORT-SERVER-PROXMOX-LXC
⚠️ Status: Alpha. Baut auf SERVER-CONTAINER auf, das selbst noch nicht end-to-end läuft (siehe dortige „Bekannte offene Punkte"). Erst zum Testen gedacht, nicht für Produktion.
Ein-Befehl-Installer, der den Rapport-Self-Hosting-Stack in einen Proxmox-LXC-Container deployt. Für Leute, die einen Proxmox-Host haben und Rapport nicht auf dem Mac (SERVER-APP), sondern auf dem Server laufen lassen wollen.
Zwei Scripts
| Script | Was es deployt |
|---|---|
rapport-lxc.sh |
Nur der Rapport-Self-Hosting-Stack (SERVER-CONTAINER: Supabase + Rapport-Frontend) |
rapport-stack-lxc.sh |
Die ganze Hosting-Plattform (RAPPORT-STACK: Supabase + Rapport-Frontend + Marketing-Website + RAPPORT-HOST Hosting-/Abo-Plattform + Admin-Cockpit) |
Hosting-Plattform deployen (RAPPORT-STACK)
Auf der Proxmox-Host-Shell (RAPPORT-HOST/RAPPORT-STACK sind privat → Gitea-Token nötig):
GITEA_TOKEN=dein_token bash -c "$(curl -fsSL http://git.kgva.ch/karim/RAPPORT-SERVER-PROXMOX-LXC/raw/branch/main/rapport-stack-lxc.sh)"
Token erstellen: Gitea → Einstellungen → Anwendungen → Token generieren (Scope read:repository).
Danach erreichbar:
- Hosting-Plattform
http://<ip>:8787(Marketing/Login/Konto) - Admin-Cockpit
http://<ip>:8787/admin/(Passwort wird generiert, am Ende ausgegeben) - Rapport-App
http://<ip>:8080· APIhttp://<ip>:8000
Arbeits-Workflow wie bei openbureau — Änderungen live holen:
pct exec <CTID> -- bash -c 'cd /opt/rapport && ./update.sh'
update.sh macht git pull in allen vier Repos, synct Migrations und docker compose up -d --build → deine Änderungen sind live.
Der vierte Deployment-Pfad der Rapport-Familie:
| Repo | Zielgruppe |
|---|---|
APP |
Endnutzer (Desktop-Client) |
SERVER-APP |
Mac-Mini-Selfhost per Doppelklick (Tauri) |
SERVER-CONTAINER |
Docker-Compose von Hand (Tech-affin) |
SERVER-PROXMOX-LXC |
Proxmox-Homelab — ein Befehl, fertiger Container |
Was das Script macht
Läuft auf der Proxmox-VE-Host-Shell und:
- Lädt das Debian-12-Template (falls nicht vorhanden)
- Erstellt einen unprivilegierten LXC mit
nesting=1,keyctl=1(nötig für Docker) - Installiert Docker + Node im Container
- Klont SERVER-CONTAINER nach
/opt/rapport - Generiert zufällige
POSTGRES_PASSWORD+JWT_SECRETund daraus passendeANON_KEY/SERVICE_ROLE_KEY - Setzt
SITE_URL/API_EXTERNAL_URLauf die LAN-IP des Containers - Holt die DB-Migrations (
sync-migrations.sh) - Holt das Frontend-Image aus der Gitea-Registry (
rapport-app:main); falls die Registry nicht erreichbar ist, baut es als Fallback ausDockerfile.app - Startet den Stack mit
docker compose up -d
Benutzung
A) Local-Deploy vom Mac (zum Testen, ohne Gitea) ← empfohlen für jetzt
Schiebt die lokalen Working-Copies von SERVER-CONTAINER + den APP-Migrations
per scp/pct push in den Container — nichts muss vorher auf Gitea gepusht sein.
Auf deinem Mac, im Repo-Verzeichnis:
PVE_HOST=root@<proxmox-ip> bash deploy-local.sh
Mit Parametern:
PVE_HOST=root@192.168.1.10 RAM_MB=8192 NET_IP=192.168.1.50/24 NET_GW=192.168.1.1 \
bash deploy-local.sh
Voraussetzung: SSH-Zugang als root auf den Proxmox-Host. deploy-local.sh erwartet
die Schwester-Repos unter ~/RAPPORT/SERVER-CONTAINER und ~/RAPPORT/APP
(überschreibbar via STACK_DIR / APP_DIR).
B) Ein-Befehl vom Gitea (wenn dieses Repo gepusht ist)
Auf der Proxmox-Host-Shell (als root):
bash -c "$(curl -fsSL http://git.kgva.ch/karim/RAPPORT-SERVER-PROXMOX-LXC/raw/branch/main/rapport-lxc.sh)"
Es erscheint ein whiptail-Menü (Standard / Erweitert) zum Setzen von ID,
CPU, RAM, Disk und Netzwerk — wie bei den Proxmox-Community-Scripts. Danach
erreichbar unter http://<container-ip>:8080.
Das Menü erscheint nur auf einem echten Terminal. Über SSH/Pipe (Variante A) läuft alles non-interaktiv über die Env-Vars. Mit
NONINTERACTIVE=1lässt sich das Menü auch interaktiv abschalten.
Parameter (per Env-Var)
Alle Defaults lassen sich überschreiben:
RAM_MB=8192 DISK_GB=30 CT_HOSTNAME=rapport \
NET_IP=192.168.1.50/24 NET_GW=192.168.1.1 \
bash -c "$(curl -fsSL http://git.kgva.ch/karim/RAPPORT-SERVER-PROXMOX-LXC/raw/branch/main/rapport-lxc.sh)"
| Var | Default | Bedeutung |
|---|---|---|
CTID |
nächste freie ID | Container-ID |
CT_HOSTNAME |
rapport-server |
Hostname |
CORES |
2 |
CPU-Kerne |
RAM_MB |
6144 |
RAM (min. 4096 empfohlen) |
SWAP_MB |
2048 |
Swap |
DISK_GB |
20 |
Disk (Supabase-Images sind gross) |
BRIDGE |
vmbr0 |
Netzwerk-Bridge |
STORAGE |
local-lvm |
Storage für rootfs |
TMPL_STORAGE |
local |
Storage für Template-Cache |
NET_IP |
dhcp |
dhcp oder z.B. 192.168.1.50/24 |
NET_GW |
— | Gateway (Pflicht bei statischer IP) |
PASSWORD |
— | root-Passwort im Container (leer = kein Login) |
REPO_URL |
…/rapport-server.git |
Quelle des Compose-Stacks |
REPO_REF |
main |
Branch/Tag |
Voraussetzungen
- Proxmox VE 8.x
- ~20 GB freier Storage, ≥4 GB RAM für den Container
- Internet-Zugang im Container (Docker-Images + Repos pullen)
Verwaltung
pct exec <CTID> -- bash -c 'cd /opt/rapport && docker compose ps' # Status
pct exec <CTID> -- bash -c 'cd /opt/rapport && docker compose logs -f' # Logs
pct enter <CTID> # Shell
Backup (Postgres):
pct exec <CTID> -- bash -c 'cd /opt/rapport && docker compose exec -T db pg_dumpall -U postgres' > backup.sql
Oder einfach den ganzen LXC per Proxmox-Backup (vzdump) sichern.
Lizenz
GNU AGPL-3.0-or-later — identisch zur Rapport-Familie.