Commit Graph

4 Commits

Author SHA1 Message Date
josh b23ef64ee1 Use ephemeral SSH keys per rebuild instead of static config keys
build-and-push / test (push) Successful in 9m57s
build-and-push / build-and-push (push) Has been cancelled
Generate a fresh ed25519 key pair at rebuild time, inject the public key
into the Proxmox answer file, use the private key for cluster join over
SSH, then remove the key from both the remote host and the database.
This eliminates the need to manage static SSH keys in config/secrets.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-03 21:09:22 -04:00
josh aec31b9f8b Add README with deploy instructions
build-and-push / test (push) Successful in 9m57s
build-and-push / build-and-push (push) Has been cancelled
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-03 20:59:20 -04:00
josh c06ce6e8bb Add CI/CD pipeline and docker-compose for deployment
build-and-push / test (push) Successful in 10m25s
build-and-push / build-and-push (push) Failing after 33s
- Gitea Actions workflow: test → build → push to container registry
- docker-compose.yml for host deployment (host network for PXE)
- Update example config to use container paths (/data, /etc/provisioning)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-03 20:58:15 -04:00
josh bda568b25c Initial implementation: host lifecycle + PXE + admin dashboard
Go service for Proxmox homelab cluster provisioning. Handles PXE boot,
Proxmox autoinstall (answer file generation), cluster join via SSH,
and Infrastructure API registration.

- Host state machine (registered → pxe_ready → installing → ready)
- dnsmasq supervisor with MAC-based allowlist
- iPXE script and Proxmox answer file generation
- First-boot phone-home → cluster join → infra registration
- Operation locking with expiry (409 on conflict)
- SSE event hub for real-time dashboard updates
- Admin dashboard (host grid, detail, registration form)
- Config-driven server types with hot-reload
- Docker deployment (multi-stage fat image)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-03 20:55:14 -04:00