florian.wildeandClaude Opus 5.5 76bc0e4269 feat(auftraege): worker, Phasen und Live-Fortschritt per SSE
Aufträge laufen als pg-boss-Jobs im worker. Der Phasen-Runner der Engine
kennt weder Proxmox noch Datenbank; eine Senke schreibt Phasen und Log
in die DB und meldet per NOTIFY, die app streamt per SSE an Web und CLI
(Last-Event-ID, Herzschlag, Polling-Fallback im Browser).

VMIDs vergibt eine Advisory-Sperre je Server zusammen mit einer
Reservierungstabelle; zehn parallele Reservierungen im Test bekommen
zehn verschiedene IDs. Der Proxmox-Client hat einen Trockenmodus für
den Dry-Run: Lesendes echt, Schreibendes nur aufgezeichnet.

Live-Ansicht im Aufbau der CLI-Ausgabe. Im echten Betrieb aufgefallen:
ssh2 und pg sind CommonJS und brauchen im worker Default-Importe.

Closes #006

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 10:54:41 +02:00

ProxDeploy

VMs und LXC-Container auf Proxmox VE ausrollen, per Web oder CLI.

ProxDeploy ist eine selbst gehostete Webanwendung mit einer CLI (proxdeploy). Damit wählt man einen von mehreren Proxmox-VE-Servern (8.x/9.x, Einzelhost oder Cluster) und rollt darauf vollständig unattended eine VM oder einen LXC-Container mit Debian oder Ubuntu aus, inklusive Profilen wie base, docker oder zabbix-agent. Weitere Distributionen und Profile sind YAML-Dateien im Katalog, kein Code.

ProxDeploy ist ein unabhängiges Werkzeug und stammt nicht von Proxmox Server Solutions GmbH. „Proxmox“ ist eine Marke der Proxmox Server Solutions GmbH.

Stand

In Entwicklung. Version und Fortschritt stehen im CHANGELOG, der Plan in docs/architektur.md, die Aufgaben in docs/issues/.

Etappe Inhalt Stand
1 · v0.1.0 Server-Verwaltung, Fingerprint-Pinning, Verbindungstest mit Fähigkeitserkennung ✓ fertig, auf PVE 9.2 geprüft
2 · v0.2.0 Katalog, Template-Bau, Debian-13-VM, Live-Fortschritt ◐ in Arbeit
3 · v0.3.0 LXC, Ubuntu, Profile, Vorlagen ○ geplant
4 · v0.4.0 CLI proxdeploy (Go) ○ geplant
5 · v0.5.0 Verlauf, Audit-Log, Rollen, OIDC ○ geplant
6 · v0.6.0 Branding, README mit Screenshots, Installer ○ geplant

Was ProxDeploy auf einem Server kann

Der Verbindungstest prüft jeden Server und zeigt, welcher Vorgang per API, per SSH oder gar nicht geht. Maßgeblich ist die Proxmox-API (geprüft gegen PVE 8.x und 9.2):

  • Template bauen: per API ab PVE 8.4 (download-url + import-from), davor per SSH
  • VM provisionieren: über den Guest-Agent, ohne SSH
  • LXC provisionieren: braucht SSH (Proxmox hat keine Exec-API für Container)
  • cloud-init-Snippets: nur per SSH (keine API)

Das API-Token braucht eine eigene Rolle; die Befehle stehen in docs/proxmox-rechte.md.

Entwicklung

Voraussetzungen: Node 24 (z. B. über nvm), pnpm 12 (corepack), Docker für PostgreSQL.

pnpm install
cp .env.example .env          # Schlüssel erzeugen: openssl rand -base64 32 / 48, ADMIN_PASSWORT setzen
pnpm db:up                    # PostgreSQL 17 auf 127.0.0.1:5437 (inkl. Testdatenbank)
pnpm db:migrate
pnpm build && PORT=3310 APP_URL=http://127.0.0.1:3310 pnpm start

Prüfen vor jedem Commit:

pnpm lint && pnpm typecheck && pnpm format:pruefen && pnpm test
pnpm test:e2e                 # Browser-Abläufe gegen den gebauten Stand (Desktop und 390 px)

Konventionen (deutsche Bezeichner, Schichtung, Versionen) stehen in CLAUDE.md.

Betrieb

Docker Compose (app, worker, postgres) und ein Installer für einen Debian-LXC auf Proxmox folgen mit Etappe 6. ProxDeploy ist für den Betrieb hinter einem Reverse-Proxy mit TLS gedacht (TRUST_PROXY=true, APP_URL auf die öffentliche Adresse).

Lizenz

Noch nicht festgelegt.

S
Description
No description provided
Readme
1.9 MiB
2026-10-23 14:13:09 +00:00
Languages
TypeScript 86.7%
Go 10.3%
Shell 2.1%
PLpgSQL 0.3%
CSS 0.2%
Other 0.4%