Compose stack and env template #54

Member

Maestro task: 3bab56a4-f182-4693-85cb-18ccc566a4b2 (Feature 07 - Deployment, Identity and Backups).

Done-condition

deploy/compose.yaml defines project "mealquest" with the mealquest service (build from repo Dockerfile, non-root user, env_file deploy/.env, Docker secrets from deploy/secrets/, named volume mealquest-data mounted at /data, port ${MEALQUEST_BIND_ADDRESS}:8090:8080, healthcheck on /health, restart unless-stopped) on a private network. deploy/.env.example documents every MEALQUEST_ variable with safe placeholder values; .gitignore excludes deploy/.env and deploy/secrets/. docker compose -f deploy/compose.yaml config validates, and docker compose up -d --build yields a healthy container answering /health on the bound port.

Evidence

  • docker compose config exits 0 with example env/secrets; exits 1 without MEALQUEST_BIND_ADDRESS (fail-fast).
  • docker compose up -d --build: container Up (healthy) 127.0.0.1:8090->8080/tcp; GET /health -> 200 {"status":"ok","version":"dev"}.
  • Container uid 10001; /data/mealquest.db owned by 10001.
  • gofmt/vet/build/test pass.

Scope limited to this task: Litestream, SearXNG, firewall, Traefik and runbooks come in later Feature 07 tasks.

Maestro task: 3bab56a4-f182-4693-85cb-18ccc566a4b2 (Feature 07 - Deployment, Identity and Backups). ## Done-condition deploy/compose.yaml defines project "mealquest" with the mealquest service (build from repo Dockerfile, non-root user, env_file deploy/.env, Docker secrets from deploy/secrets/*, named volume mealquest-data mounted at /data, port ${MEALQUEST_BIND_ADDRESS}:8090:8080, healthcheck on /health, restart unless-stopped) on a private network. deploy/.env.example documents every MEALQUEST_* variable with safe placeholder values; .gitignore excludes deploy/.env and deploy/secrets/. `docker compose -f deploy/compose.yaml config` validates, and `docker compose up -d --build` yields a healthy container answering /health on the bound port. ## Evidence - docker compose config exits 0 with example env/secrets; exits 1 without MEALQUEST_BIND_ADDRESS (fail-fast). - docker compose up -d --build: container `Up (healthy) 127.0.0.1:8090->8080/tcp`; GET /health -> 200 {"status":"ok","version":"dev"}. - Container uid 10001; /data/mealquest.db owned by 10001. - gofmt/vet/build/test pass. Scope limited to this task: Litestream, SearXNG, firewall, Traefik and runbooks come in later Feature 07 tasks.
dev_agent added 1 commit 2026-10-05 07:55:21 -04:00
Add production compose stack and env template
CI / ci (push) Successful in 1m32s
CI / ci (pull_request) Successful in 1m30s
e1ca23f595
deploy/compose.yaml defines project "mealquest": the mealquest service built
from the root Dockerfile, running as 10001:10001, configured from deploy/.env
and Docker secrets in deploy/secrets/, with the mealquest-data volume at
/data, published on ${MEALQUEST_BIND_ADDRESS}:8090, a /health healthcheck and
restart unless-stopped, on the private mealquest network.

deploy/.env.example documents every MEALQUEST_* variable: the ones operators
set, the ones fixed by compose.yaml, and the planned ones not yet read.
.gitignore keeps deploy/.env and deploy/secrets/ out while tracking the
example.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
overseer added 1 commit 2026-10-05 07:55:22 -04:00
Add production compose stack and env template
CI / ci (push) Successful in 1m32s
CI / ci (pull_request) Successful in 1m30s
e1ca23f595
deploy/compose.yaml defines project "mealquest": the mealquest service built
from the root Dockerfile, running as 10001:10001, configured from deploy/.env
and Docker secrets in deploy/secrets/, with the mealquest-data volume at
/data, published on ${MEALQUEST_BIND_ADDRESS}:8090, a /health healthcheck and
restart unless-stopped, on the private mealquest network.

deploy/.env.example documents every MEALQUEST_* variable: the ones operators
set, the ones fixed by compose.yaml, and the planned ones not yet read.
.gitignore keeps deploy/.env and deploy/secrets/ out while tracking the
example.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
review_agent left a comment
Member

Independent Codex gpt-6-sol review: APPROVED for this exact commit.

Independent Codex gpt-6-sol review: APPROVED for this exact commit.
approver_agent merged commit 3b524ec118 into feature/ec45cc08-b16d-4b8f-b617-7e79308a4f49-deployment 2026-10-05 08:08:16 -04:00
Sign in to join this conversation.
No Reviewers
No labels
3 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Maniacs_Mansion/MealQuest#54