Ein Zwischenstand bis zum vollständigen README mit Banner und Screenshots in Etappe 6 (#018). Refs #018 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
70 lines
2.9 KiB
Markdown
70 lines
2.9 KiB
Markdown
# 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](CHANGELOG.md), der Plan in
|
|
[docs/architektur.md](docs/architektur.md), die Aufgaben in [docs/issues/](docs/issues/README.md).
|
|
|
|
| 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](docs/proxmox-rechte.md).
|
|
|
|
## Entwicklung
|
|
|
|
Voraussetzungen: Node 24 (z. B. über nvm), pnpm 12 (corepack), Docker für PostgreSQL.
|
|
|
|
```bash
|
|
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:
|
|
|
|
```bash
|
|
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](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.
|