Skip to content

Phase 3d: packaging, deploy & README#9

Merged
StrangeNoob merged 9 commits into
mainfrom
phase3d-packaging
Jun 8, 2026
Merged

Phase 3d: packaging, deploy & README#9
StrangeNoob merged 9 commits into
mainfrom
phase3d-packaging

Conversation

@StrangeNoob

Copy link
Copy Markdown
Owner

Summary

The final Phase 3 sub-project — packaging, deploy, and the portfolio README. Makes Relay runnable in one command and presentable as a front page. No Go source changes (engine untouched; git diff of internal/, cmd/, go.mod, go.sum is empty).

  • Dockerfile — multi-stage (golang:1.25 builder → gcr.io/distroless/static:nonroot), building server/worker/demo into one ~27 MB image. The server embeds the committed web/dist, so there's no Node step. Static CGO_ENABLED=0 binaries.
  • .dockerignore — keeps the build context lean (excludes .git, web/node_modules, .superpowers, docs).
  • deployments/docker-compose.yml — the end-to-end demo: redis + server + worker(s) + a one-shot demo load generator (10% fail-rate so the DLQ + requeue are demonstrable). One shared image; workers scale via --scale worker=N.
  • .github/workflows/ci.yml — a new docker build job so the Dockerfile can't rot.
  • README.md — portfolio front page: a mermaid architecture diagram, delivery semantics + invariants, the feature list, a Docker quickstart, local-dev commands, project layout, a deploy guide, and a pointer to the design docs.
  • CLAUDE.md — Phase 3 marked complete (3a/3b/3c/3d ✅).

Design & plan

  • Spec: docs/superpowers/specs/2026-06-09-relay-phase3d-packaging-deploy-readme-design.md
  • Plan: docs/superpowers/plans/2026-06-09-relay-phase3d-packaging-deploy-readme.md

Test plan

  • docker build succeeds (distroless image, all three binaries run)
  • docker compose -f deployments/docker-compose.yml config validates
  • End-to-end stack verified (docker compose up): GET / → 200 (dashboard), /healthz → ok, /api/queues["demo"], live /api/queues/demo/stats, /metrics populated; demo enqueues → workers process → DLQ from failures
  • go build ./..., go vet ./..., gofmt -l internal/ cmd/ clean; go test -race ./... — all 7 packages pass against a real Redis (no engine changes)
  • README commands/flags/paths verified against the actual code; mermaid well-formed

@StrangeNoob

Copy link
Copy Markdown
Owner Author

Code review

Found 1 issue:

  1. The compose command in this CLAUDE.md prose line omits -f deployments/docker-compose.yml, so docker compose up --build run from the repo root fails with "no configuration file provided". Every other occurrence (the README and CLAUDE.md's own run-commands block) includes the flag.

relay/CLAUDE.md

Lines 65 to 67 in b749702

- `deployments/docker-compose.yml` — redis + server + worker (1 by default, scale with
`--scale worker=N`) + one-shot demo; `docker compose up --build` brings up a fully working
end-to-end stack (dashboard at `/`, `/healthz`, `/metrics` all functional).

🤖 Generated with Claude Code

- If this code review was useful, please react with 👍. Otherwise, react with 👎.

@StrangeNoob StrangeNoob merged commit a6bf876 into main Jun 8, 2026
4 checks passed
@StrangeNoob StrangeNoob deleted the phase3d-packaging branch June 8, 2026 22:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant