refactor(docker): consolidate prod compose, drop Swarm-only prod.yml#3616
Conversation
The previous `docker-compose.prod.yml` was Swarm-mode (`docker stack deploy` + Docker secrets) — a deployment topology we never adopted. The previous `docker-compose.staging.yml` was the single-machine compose we actually ran, and the staging machine is now being repurposed as the prod host (#3573 killed the staging branch and promotion pipeline; staging is no longer a distinct deploy target). ## Changes - Delete the Swarm-based `docker-compose.prod.yml` entirely. - Rename `docker-compose.staging.yml` -> `docker-compose.prod.yml`. Drop Watchtower (auto-pull-and-restart is a footgun in production; let deploys be explicit). Header comment + `name:` field updated. - Rename `scripts/setup-staging.sh` -> `scripts/setup-prod.sh`. Header rewritten to describe the prod single-machine setup; references to the now-removed `docs/infra/staging-deployment.md` redirected to `docs/self-hosting/deployment.md` (which actually exists). Default generated API key prefix `automaker-staging-` -> `automaker-prod-`. - `docs/self-hosting/docker-compose.md`: update the prod.yml row in the compose-file table to describe its real shape (single-host, .env-based, no Swarm). - `.claude/commands/frank.md`: description and trigger phrases shift from "staging infrastructure" to "production infrastructure". MCP tool names that target a separate Automaker instance (`mcp__protolabs_staging__*`) are left as-is — those are scoped tool identifiers, separate concern. ## What's NOT in this PR - No new non-Docker prod path. `npm start` already runs `start-automaker.mjs --production`, and `npm run dev:headless` already runs a production-mode server build on the host. Those give us the "host CLIs reachable from agents" property today. Wiring a daemonized systemd unit around them is a separate change. - No update to `automaker.service` (the systemd unit). Currently invokes `docker compose up -d` against the default `docker-compose.yml`, not the new prod file. Separate decision: leave on Docker or migrate to a host-process unit.
|
Warning Rate limit exceeded
You’ve run out of usage credits. Purchase more in the billing tab. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (5)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
Code Review — ? finding(s)
protoLabs Code Review Report
No findings recorded. |
The previous
docker-compose.prod.ymlwas Swarm-mode (docker stack deploy+ Docker secrets) — a deployment topology we never adopted. The previousdocker-compose.staging.ymlwas the single-machine compose we actually ran. The staging machine is now being repurposed as the prod host (#3573 killed the staging branch + promotion pipeline; staging is no longer a distinct deploy target).Changes
docker-compose.prod.ymlentirely.docker-compose.staging.yml→docker-compose.prod.yml. Drop Watchtower (auto-pull-and-restart is a footgun in production; let deploys be explicit). Header comment +name:field updated.scripts/setup-staging.sh→scripts/setup-prod.sh. References to the now-removeddocs/infra/staging-deployment.mdredirected todocs/self-hosting/deployment.md(which exists). Default generated API key prefixautomaker-staging-→automaker-prod-.docs/self-hosting/docker-compose.md: prod.yml row updated to describe its real shape (single-host, .env-based, no Swarm)..claude/commands/frank.md: description + trigger phrases shift from "staging infrastructure" to "production infrastructure". MCP tool names targeting a separate Automaker instance (mcp__protolabs_staging__*) left as-is — those are scoped tool identifiers, separate concern.Net effect
docker-compose.ymldocker-compose.prod.ymldocker-compose.staging.ymlprod.yml)docker-compose.dev.ymlNOT in this PR
npm startalready runsstart-automaker.mjs --production, andnpm run dev:headlessruns a production-mode server build on the host. Those give us the "host CLIs reachable from agents" property today. Wiring a daemonized systemd unit around them is a separate change.automaker.service(the systemd unit) currently invokesdocker compose up -dagainst the defaultdocker-compose.yml, not the new prod file. Separate decision: leave on Docker or migrate to a host-process unit.