feat(ops): docker compose stack for one-command boot #57

Open
ariejan wants to merge 1 commit from issue-5-docker-compose into master
Owner

Closes #5.

What

  • docker-compose.yml wiring app + Postgres 17 + dedicated Solid Queue worker
  • .env.example template for RAILS_MASTER_KEY and ENVOY_DATABASE_PASSWORD
  • .gitignore allows .env.example through the /.env* exclude
  • README section documenting one-command boot

Decisions

  • Jobs in their own container (not SOLID_QUEUE_IN_PUMA). Matches PLAN ops posture for supervised workers; web restarts don't stall the queue.
  • Host port 3000 → container 80. Thruster listens on 80 inside.
  • Postgres 17 — matches dev host.
  • No Redis. Solid Queue + Solid Cache + Solid Cable cover it.
  • Named volumes for pg_data, storage, log.

Test plan

  • docker compose config validates (done locally)
  • cp .env.example .env, fill in values, docker compose up --build -d boots cleanly
  • http://localhost:3000 responds
  • docker compose logs jobs shows Solid Queue supervisor running
  • docker compose down && docker compose up -d preserves data
Closes #5. ## What - `docker-compose.yml` wiring app + Postgres 17 + dedicated Solid Queue worker - `.env.example` template for `RAILS_MASTER_KEY` and `ENVOY_DATABASE_PASSWORD` - `.gitignore` allows `.env.example` through the `/.env*` exclude - README section documenting one-command boot ## Decisions - **Jobs in their own container** (not `SOLID_QUEUE_IN_PUMA`). Matches PLAN ops posture for supervised workers; web restarts don't stall the queue. - **Host port 3000 → container 80.** Thruster listens on 80 inside. - **Postgres 17** — matches dev host. - **No Redis.** Solid Queue + Solid Cache + Solid Cable cover it. - **Named volumes** for `pg_data`, `storage`, `log`. ## Test plan - [ ] `docker compose config` validates (done locally) - [ ] `cp .env.example .env`, fill in values, `docker compose up --build -d` boots cleanly - [ ] http://localhost:3000 responds - [ ] `docker compose logs jobs` shows Solid Queue supervisor running - [ ] `docker compose down && docker compose up -d` preserves data
feat(ops): docker compose stack for one-command boot
All checks were successful
CI / scan_js (pull_request) Successful in 25s
CI / lint (pull_request) Successful in 33s
CI / scan_ruby (pull_request) Successful in 35s
CI / test (pull_request) Successful in 1m7s
c054cd41c2
Closes #5.

Adds docker-compose.yml wiring the Rails-generated production Dockerfile
to a Postgres 17 service and a dedicated Solid Queue worker. App is
exposed on host :3000, Postgres data + storage + log persist in named
volumes. Secrets come from a gitignored .env (template in .env.example)
so the repo stays safe to clone.

Jobs run in their own container instead of SOLID_QUEUE_IN_PUMA so
restarting the web tier doesn't stall the queue — matches the PLAN ops
posture for supervised workers.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
All checks were successful
CI / scan_js (pull_request) Successful in 25s
CI / lint (pull_request) Successful in 33s
CI / scan_ruby (pull_request) Successful in 35s
CI / test (pull_request) Successful in 1m7s
This pull request can be merged automatically.
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin issue-5-docker-compose:issue-5-docker-compose
git switch issue-5-docker-compose

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch master
git merge --no-ff issue-5-docker-compose
git switch issue-5-docker-compose
git rebase master
git switch master
git merge --ff-only issue-5-docker-compose
git switch issue-5-docker-compose
git rebase master
git switch master
git merge --no-ff issue-5-docker-compose
git switch master
git merge --squash issue-5-docker-compose
git switch master
git merge --ff-only issue-5-docker-compose
git switch master
git merge issue-5-docker-compose
git push origin master
Sign in to join this conversation.
No description provided.