Files
RAPPORT-SERVER-PROXMOX-LXC/README.md
T
karim 7187748643 whiptail-Menü (Standard/Erweitert) wie community-scripts
Interaktives Setup auf echtem Terminal: ID, CPU, RAM, Disk, Storage, Bridge,
DHCP/statische IP, Root-PW + Bestätigung. Fällt über SSH/Pipe automatisch auf
Env-Vars zurück (deploy-local.sh bleibt non-interaktiv). NONINTERACTIVE=1
schaltet das Menü explizit ab.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-30 12:33:48 +02:00

4.4 KiB

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.

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:

  1. Lädt das Debian-12-Template (falls nicht vorhanden)
  2. Erstellt einen unprivilegierten LXC mit nesting=1,keyctl=1 (nötig für Docker)
  3. Installiert Docker + Node im Container
  4. Klont SERVER-CONTAINER nach /opt/rapport
  5. Generiert zufällige POSTGRES_PASSWORD + JWT_SECRET und daraus passende ANON_KEY / SERVICE_ROLE_KEY
  6. Setzt SITE_URL / API_EXTERNAL_URL auf die LAN-IP des Containers
  7. Holt die DB-Migrations (sync-migrations.sh)
  8. 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=1 lä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 https://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.