206dc48403301ea88c67700ab36e016c788ade7e
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 Browserfrontend/: 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: wird mit der offiziellen Supabase-Self-Hosted-Konfiguration ergaenzt.
- Backend starten:
go run ./backend/cmd/api. - Console-Proxy starten:
go run ./console-proxy/cmd/console-proxy. - Frontend starten:
npm run dev --prefix frontend.
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 migrate: Platzhalter bis E2-T01golang-migrateeinbindet
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%