make: add root install/up/down for the local stack #160

Merged
emi merged 1 commit from feat/local-make-targets into dev 2026-08-01 20:19:58 +00:00
Owner

A fresh checkout had no working path to the stack locally. Neither compose file carries a build: for backend or frontend -- each ships as its own registry image -- so with no image present make dev-up fell through to pulling the :local tag, which nothing publishes, and failed with 403 Forbidden against a registry a laptop has no login for.

install builds both images from backend/Dockerfile and frontend/Dockerfile under exactly the tag the compose files default to; up verifies they exist and says what to run instead of retrying the pull. Image names are read back from docker compose config --images rather than restated in the Makefile, so an org rename cannot leave it building a tag nothing runs.

infra's dev-up/dev-down now set COMPOSE_PROJECT_NAME=thermograph-dev, matching deploy/deploy-dev.sh and what root CLAUDE.md already described; a local run previously landed in the prod-shaped thermograph project. Drops dev-up's --build (a no-op since the Dockerfiles moved out of infra) and corrects the comment claiming a 0.0.0.0 default -- the overlay has published on loopback since dev moved to a public VPS.

Verified locally: make install builds both images; make up brings all five containers up healthy; /healthz returns ok, /api/version responds, the frontend serves through backend's proxy fallback (HTTP 200), daemon runs cron-only with 0 restarts; make down tears down cleanly; make -C infra dev-up lands in the same project.

No CI path filter covers these files, so this triggers no deploy.

A fresh checkout had no working path to the stack locally. Neither compose file carries a `build:` for backend or frontend -- each ships as its own registry image -- so with no image present `make dev-up` fell through to pulling the `:local` tag, which nothing publishes, and failed with `403 Forbidden` against a registry a laptop has no login for. `install` builds both images from `backend/Dockerfile` and `frontend/Dockerfile` under exactly the tag the compose files default to; `up` verifies they exist and says what to run instead of retrying the pull. Image names are read back from `docker compose config --images` rather than restated in the Makefile, so an org rename cannot leave it building a tag nothing runs. infra's `dev-up`/`dev-down` now set `COMPOSE_PROJECT_NAME=thermograph-dev`, matching `deploy/deploy-dev.sh` and what root CLAUDE.md already described; a local run previously landed in the prod-shaped `thermograph` project. Drops `dev-up`'s `--build` (a no-op since the Dockerfiles moved out of infra) and corrects the comment claiming a 0.0.0.0 default -- the overlay has published on loopback since dev moved to a public VPS. Verified locally: `make install` builds both images; `make up` brings all five containers up healthy; `/healthz` returns ok, `/api/version` responds, the frontend serves through backend's proxy fallback (HTTP 200), daemon runs cron-only with 0 restarts; `make down` tears down cleanly; `make -C infra dev-up` lands in the same project. No CI path filter covers these files, so this triggers no deploy.
emi added 1 commit 2026-08-01 20:18:47 +00:00
make: add root install/up/down for the local stack
All checks were successful
secrets-guard / encrypted (pull_request) Successful in 5s
shell-lint / shellcheck (pull_request) Successful in 7s
PR build (required check) / changes (pull_request) Successful in 19s
PR build (required check) / build-backend (pull_request) Has been skipped
PR build (required check) / build-frontend (pull_request) Has been skipped
PR build (required check) / validate-observability (pull_request) Has been skipped
PR build (required check) / gate (pull_request) Successful in 1s
Sync infra to hosts / sync-beta (push) Has been skipped
Sync infra to hosts / sync-prod (push) Has been skipped
Sync infra to hosts / sync-centralis (push) Has been skipped
secrets-guard / encrypted (push) Successful in 6s
Sync infra to hosts / sync-dev (push) Successful in 12s
shell-lint / shellcheck (push) Successful in 8s
4dcd6775c4
A fresh checkout had no working path to the stack locally. Neither compose
file carries a `build:` for backend or frontend -- each ships as its own
registry image -- so with no image present `make dev-up` fell through to
pulling the `:local` tag, which nothing publishes, and failed with 403
against a registry a laptop has no login for.

`install` builds both images from backend/Dockerfile and frontend/Dockerfile
under exactly the tag the compose files default to; `up` verifies they exist
and says what to run instead of retrying the pull. Image names are read back
from `docker compose config --images` rather than restated here, so an org
rename cannot leave this file building a tag nothing runs.

infra's dev-up/dev-down now set COMPOSE_PROJECT_NAME=thermograph-dev, which
matches deploy/deploy-dev.sh and what the root CLAUDE.md already described;
a local run previously landed in the prod-shaped `thermograph` project. Drop
dev-up's `--build`, a no-op since the Dockerfiles moved out of infra, and
correct the comment claiming a 0.0.0.0 default -- the overlay has published
on loopback since dev moved to a public VPS.
emi scheduled this pull request to auto merge when all checks succeed 2026-08-01 20:19:34 +00:00
emi merged commit 4dcd6775c4 into dev 2026-08-01 20:19:58 +00:00
emi deleted branch feat/local-make-targets 2026-08-01 20:19:59 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: Jinemi/thermograph#160
No description provided.