Deploy the dev server from registry images (compose pull) instead of building on the host #65
Labels
No labels
area/ai
area/backend
area/frontend
area/infra
area/scheduler
area/wled
good-first-issue
priority/high
priority/low
priority/medium
type/bug
type/chore
type/ci-cd
type/docs
type/feature
type/qa
v1.0.0
v1.1.0
v1.2.0
v2.0.0
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
rbrooks/Iris-WLED#65
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Today the dev server (claude@10.1.1.14) deploys with
git pull && docker compose build --no-cache && docker compose down && docker compose up -d. Host builds are slow, have caused real incidents (the disk filled to 100% with build caches during M2, and a mistagged manual build once left a stale container running), and duplicate work CI already does.Switch to pulling the CI-built image:
docker-compose.override.ymlor a dedicated file) replacingbuild:withimage: git.rhoving.com/rbrooks/iris-wled:maindocker login git.rhoving.comon the host with a minimal-scope token (package read)git pull(compose/config only) &&docker compose pull&&docker compose up -d, thendocker image prune -ffor superseded images:mainpublishes, making deploys automaticDepends on: the
:mainimage publishing issue.Depends on #64.
Done — mechanism proven end to end on the dev host
Shipped in
18acc22.docker-compose.registry.ymlrunsgit.rhoving.com/rbrooks/iris-wled:${IRIS_TAG:-main}docs/setup.md§6 documents login, deploy,COMPOSE_FILE, and rollbackDeployed and verified:
docker compose configresolved toimage:with nobuild:key, confirmingbuild: !reset nullworks — Compose structurally cannot rebuild from stale local source. The host runs Compose v5.5.0, so the v2.24 requirement was never a risk.Data survived the migration: 97 events, 169 schemes. A byte-identical backup (
md5verified) was taken before anything ran:data/iris.db.pre-redeploy-20260831-053637.The issue's premise was out of date
This was written as switching a live build-on-host deploy over to pulls. In fact Iris had not been running on the dev host since late May — the checkout was 45 commits behind and still carried
.github/. So this was a cold restart onto a new mechanism, not a cutover.Two findings:
docker loginwas already done.git.rhoving.comwas already in~/.docker/config.json; marginalia and allotrope already pull from it. That checkbox needed verification, not action.SESSION_SECRET— #42's guard doing exactly its job. A secret was generated on the host (openssl rand -hex 32), appended to.envafter backing it up, and never echoed.Migrations were smaller than expected
Only
0006 → 0007 → 0008ran. The May database was already at0006, so two migrations applied rather than the eight-from-scratch I had braced for. No errors.What remains is configuration, not deployment
The instance is up but inert:
segments,settingsandaudit_logare all 0 rows — this instance was never configured past event/scheme generation. No scheduler jobs are registered and no controller is configured, so nothing touches any lights.That is configuration a human supplies, not deployment work, so it is recorded on #7 (end-to-end operational dry run) where the setup belongs rather than held open here.
claude-bot referenced this issue2026-08-31 05:45:41 +00:00