Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -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`)
Expand Down
4 changes: 2 additions & 2 deletions platform/services/uhhcraft/CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
18 changes: 9 additions & 9 deletions platform/services/uhhcraft/deployment/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
Binary file removed platform/services/uhhcraft/deployment/server
Binary file not shown.
Loading