d87d8c6be75cf68040d43e525f4a34c414171ff5
ProxUI
Multi-Tenant-Konsole fuer Proxmox auf Basis von Go, Supabase Postgres/Auth, Redis/asynq und React.
Architektur
backend/: HTTP-API, Auth/JWT-Validierung, RBAC, DB-Zugriff und Proxmox-Orchestrierungworker/: asynchrone Jobs fuer Proxmox-Tasks, Reconciliation und Cleanupconsole-proxy/: Websocket-Proxy fuer noVNC/xterm.js ohne direkte Proxmox-Verbindung im Browserplatform/: gemeinsame Go-Bausteine fuer Konfiguration, Logging und spaetere Querschnittsfunktionenfrontend/: React/TypeScript/Vite-App fuer Kunden- und Admin-Workflowsmigrations/: versionierte SQL-Migrationendeploy/: lokale und spaetere Deployment-Artefakte
Lokales Setup
- Go >= 1.22 installieren.
- Node.js >= 20 und npm installieren.
- Docker Desktop oder kompatible Docker Engine installieren.
.env.examplenach.envkopieren und lokale Werte setzen.- Abhaengigkeiten installieren:
npm install --prefix frontend. - Go-Abhaengigkeiten installieren:
go work sync. - Lokale Infrastruktur starten:
make dev. - Migrationen ausfuehren:
make migrate. - Backend starten:
go run ./backend/cmd/api. - Console-Proxy starten:
go run ./console-proxy/cmd/console-proxy. - Frontend starten:
npm run dev --prefix frontend.
Supabase self-hosted liegt unter deploy/supabase/. Die lokale deploy/supabase/.env wird aus der offiziellen Vorlage erzeugt und nicht committed. Fuer App-.env die Werte POSTGRES_PASSWORD, ANON_KEY und SERVICE_ROLE_KEY aus deploy/supabase/.env uebernehmen.
Migrationen nutzen MIGRATE_DATABASE_URL, falls gesetzt. Andernfalls wird DATABASE_DIRECT_URL aus .env oder eine lokale Supavisor-URL aus deploy/supabase/.env verwendet.
Lokale Dienste:
- Supabase API Gateway:
http://localhost:8000 - Supabase Studio:
http://localhost:8000/project/default - Supavisor Session Pooler:
localhost:5432 - Supavisor Transaction Pooler:
localhost:6543
Aktuelle Targets:
make test: Go-Testsmake build: Go-Buildsmake frontend-build: Frontend-Production-Buildmake lint: Go Vet und Frontend-ESLintmake verify: Lint, Tests und Buildsmake dev-down: Supabase-Stack stoppenmake dev-logs: Supabase-Logs verfolgenmake migrate: Migrationen auf den aktuellen Stand bringenmake migrate-down: letzte Migration zurueckrollenmake migrate-version: aktuelle Migrationsversion anzeigen
CI
Forgejo Actions laufen unter .forgejo/workflows/ci.yml.
verify: installiert Go/Node-Abhaengigkeiten und fuehrtmake verifyaus.secret-scan: fuehrtzricethezav/gitleaks:v8.28.0mit.gitleaks.tomlaus. Die Konfiguration erlaubt nur dokumentierte Beispielwerte aus den offiziellen Supabase-Upstream-Dateien.
Sicherheitsregeln
- Nur Backend, Worker und Console-Proxy sprechen mit Proxmox.
- Proxmox-Tokens werden nie im Frontend sichtbar und nie unverschluesselt gespeichert.
- Tenant-bezogene Queries muessen immer tenant-gefiltert sein.
- Secrets gehoeren in
.envoder einen Secret-Manager, nie ins Repo.
Languages
Go
50.5%
Shell
33.5%
TypeScript
8.9%
PLpgSQL
3.5%
CSS
2.4%
Other
1.1%