diff --git a/.gitignore b/.gitignore index 7f37c89..af1ac2d 100644 --- a/.gitignore +++ b/.gitignore @@ -44,6 +44,9 @@ platform/services/*/deployment/internal/db/sqlcdb/ platform/services/*/deployment/bin/ platform/services/*/deployment/dist/ platform/services/*/deployment/tmp/ +# `go build ./cmd/server` drops a bare `server` binary in the deployment dir — +# ignore it (anchored, so it never matches the internal/server/ source dir). +platform/services/*/deployment/server platform/services/*/deployment/vendor/ # Tailwind CSS build output (regenerated by `make css`) diff --git a/platform/services/uhhcraft/CLAUDE.md b/platform/services/uhhcraft/CLAUDE.md index 9969531..97eb65a 100644 --- a/platform/services/uhhcraft/CLAUDE.md +++ b/platform/services/uhhcraft/CLAUDE.md @@ -29,13 +29,13 @@ Migration numbers are zero-padded three digits, sequential, never renumbered. ### River queue -River (`riverqueue/river`) runs in-process. Its tables are managed by `river migrate-up`, invoked from `deployment/post-deploy.sh`. The Go app exposes (or **should** expose; see the deployment README outstanding-items list) `./uhhcraft river migrate-up` as a subcommand. +River (`riverqueue/river`) runs in-process. Its tables are managed by `river migrate-up`, invoked from `deployment/post-deploy.sh`. The Go app exposes `./uhhcraft river migrate-up` as a subcommand (`cmd/server/main.go`). Do not call River's migration tool directly from `make` recipes — it diverges from prod. ### Healthcheck subcommand -`deployment/compose.yml` references `/app/uhhcraft healthcheck`. The Go binary must implement this subcommand: a single HTTP GET to its own `/healthz` returning exit code 0 on 200, 1 otherwise. Add if missing. +`deployment/compose.yml` references `/app/uhhcraft healthcheck`. The Go binary implements this subcommand (`cmd/server/main.go`): a single HTTP GET to its own `/healthz` returning exit code 0 on 200, 1 otherwise. ### Secrets diff --git a/platform/services/uhhcraft/deployment/README.md b/platform/services/uhhcraft/deployment/README.md index d3743be..54a8c9f 100644 --- a/platform/services/uhhcraft/deployment/README.md +++ b/platform/services/uhhcraft/deployment/README.md @@ -121,15 +121,15 @@ No DB migration, no Go change. ## Outstanding integration items -These are tracked in [`../../../../plan/development/WEBSMITH-INTEGRATION-PLAN.md`](../../../../plan/development/WEBSMITH-INTEGRATION-PLAN.md): - -- **Phase 3:** OpenBao policy + AppRole for UhhCraft. -- **Phase 4:** `deploy-uhhcraft.yml` Ansible playbook + composable tasks. -- **Phase 5:** Caddy `sites/*.caddy` import pattern + reload task. -- **Phase 6:** Proxmox VM provisioning. -- **Phase 7:** Semaphore templates. -- **Phase 8:** CI extensions (Go / templ / sqlc / gosec). -- **Two app subcommands** the Dockerfile and `compose.yml` assume but the source may not have yet: `./uhhcraft healthcheck` (used by container `HEALTHCHECK`) and `./uhhcraft river migrate-up` (used by `post-deploy.sh`). Add to `cmd/server/main.go` early in implementation. +Tracked in [`../../../../plan/development/WEBSMITH-INTEGRATION-PLAN.md`](../../../../plan/development/WEBSMITH-INTEGRATION-PLAN.md). **Phases 1–9 and 11 are merged** (OpenBao policy/AppRole, composable `deploy-uhhcraft.yml`, Caddy fragment pattern, Proxmox VM specs, Semaphore templates, Go/templ/sqlc/gosec CI, architecture docs, second-site recipe), and the `./uhhcraft healthcheck` + `./uhhcraft river migrate-up` subcommands are implemented (`cmd/server/main.go`). + +The remaining item is **Phase 10 — validation** (hardware-gated): + +- Branch-deploy to the real `uhhcraft` / `inference-comfyui` / `inference-hunyuan3d` / `caddy` VMs and walk the happy path (catalog → generate → 3D → cart → Stripe test → order → webhook → fulfillment). +- `validate-all.yml` green on all four hosts; `uhhcraft.uhstray.io` served behind central Caddy with a valid cert. +- Exercise the rollback procedure (above) at least once. + +Open decisions feeding Phase 10: Stripe test-vs-live mode, CSP for the Three.js/WASM 3D canvas, container registry (GHCR vs Harbor), and the GPU-passthrough §1 host decision (`../../../../plan/development/UHHCRAFT-GPU-PASSTHROUGH.md`). ## Related diff --git a/platform/services/uhhcraft/deployment/server b/platform/services/uhhcraft/deployment/server deleted file mode 100755 index 8dabba0..0000000 Binary files a/platform/services/uhhcraft/deployment/server and /dev/null differ