boban pushed to feat/portal-design at boban/CluPilotCloud
-
80348d6a3f fix: unique customer↔user link + reject inactive datacenters on host create
-
b44e224bee fix: backfill datacenters on migrate; resolve billing customer by user link
-
4e86e135a6 fix(admin): harden impersonation + datacenter code per Codex review
-
879697c6ea feat(admin): impersonate customer portal — session login + return banner
-
515f26234e feat(portal): billing page — current plan, upgrades, extra storage, add-ons
- Compare 9 commits »
boban pushed to feat/portal-design at boban/CluPilotCloud
-
d7c2edb1df fix(engine-b): idempotent local DNS record (firstOrCreate on record_id)
-
96aceeeaa1 fix(engine-b): stop customer dashboard polling once provisioning failed
-
66e8a4bbf6 fix(engine-b): clean re-clone on lost task ref; idempotent firewall rules
-
9162446b1f fix(engine-b): acceptance gate verifies real health, not just breadcrumbs
-
491800e09c fix(engine-b): grant VM.Backup to the Proxmox automation role
- Compare 31 commits »
boban pushed to feat/portal-design at boban/CluPilotCloud
-
5e6d6b11b6 docs: engine customer-pipeline spec (the missing Section 3, aligned to the built core)
boban pushed to feat/portal-design at boban/CluPilotCloud
-
c7fb1ce56d fix(engine): dispatch run continuation after releasing the lock
-
294c9aef2f fix(engine): store wg_pubkey right after addPeer so failed peers are cleanable
-
9e664654a2 fix(engine): record wg peer only after verified handshake; async host purge
-
a6a41719bb fix(engine): long SSH command timeout; wg peer removal on privileged worker
-
5979470dda fix(engine): install wireguard-tools + bring up wg0; lock-coordinate host removal
- Compare 26 commits »
boban pushed to feat/portal-design at boban/CluPilotCloud
-
bf5813057b docs: provisioning engine v1.0 build handoff (standalone fleet + cluster-per-DC target)
boban pushed to feat/portal-design at boban/CluPilotCloud
-
49b5b7a523 docs: state/continuation handoff (2026-07-25)
boban pushed to feat/portal-design at boban/CluPilotCloud
-
b032d8808b feat(landing): public marketing homepage at / (+ legal placeholders)
boban pushed to feat/portal-design at boban/CluPilotCloud
-
1aa7535fc4 feat(admin): dark Tactical-Terminal operator console
boban pushed to feat/portal-design at boban/CluPilotCloud
-
c4cff8f67c feat(portal): full sidebar — Cloud, Users, Backups, Invoices, Support
boban pushed to feat/portal-design at boban/CluPilotCloud
-
499adaff00 feat(dashboard): rich overview with Chart.js (customer-portal template)
boban pushed to feat/portal-design at boban/CluPilotCloud
-
2b08b072fe fix(docker): stop injecting .env as real env vars (test isolation)
boban pushed to feat/portal-design at boban/CluPilotCloud
-
254a7d46a0 feat(portal): Fortify auth + Login/2FA/Dashboard + component kit
boban pushed to feat/portal-design at boban/CluPilotCloud
-
53c2a12d6d feat(portal): design foundation — Tailwind v3, tokens, self-hosted fonts
boban pushed to feat/bootstrap at boban/CluPilotCloud
-
2ae7595aff chore: bootstrap CluPilot control-plane (Laravel 13, Docker stack)
boban created repository boban/CluPilotCloud
boban pushed to feat/phase-1-bootstrap at boban/homeos
-
42ae76227b fix(ring): seed bridge config so it actually starts (auto, reproducible)
boban pushed to feat/phase-1-bootstrap at boban/homeos
-
ab8713bcb3 feat(ring): bridge runs automatically (no manual command)
boban pushed to feat/phase-1-bootstrap at boban/homeos
-
97dc49e577 fix: adversarial-review fixes + themed checkboxes