Skip to content

refactor(docker): consolidate prod compose, drop Swarm-only prod.yml#3616

Merged
mabry1985 merged 1 commit into
mainfrom
refactor/consolidate-prod-compose-drop-swarm
May 22, 2026
Merged

refactor(docker): consolidate prod compose, drop Swarm-only prod.yml#3616
mabry1985 merged 1 commit into
mainfrom
refactor/consolidate-prod-compose-drop-swarm

Conversation

@mabry1985
Copy link
Copy Markdown
Contributor

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. 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

  • Delete the Swarm-based docker-compose.prod.yml entirely.
  • Rename docker-compose.staging.ymldocker-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.shscripts/setup-prod.sh. References to the now-removed docs/infra/staging-deployment.md redirected to docs/self-hosting/deployment.md (which exists). Default generated API key prefix automaker-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

File Before After
docker-compose.yml local dev (default) local dev (default) — unchanged
docker-compose.prod.yml Swarm + secrets + Prom/Grafana (302L) single-host, .env-based, high-mem (~210L)
docker-compose.staging.yml the file we actually used deleted (became prod.yml)
docker-compose.dev.yml dev variant unchanged

NOT in this PR

  • No new non-Docker prod path. npm start already runs start-automaker.mjs --production, and npm run dev:headless 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.
  • 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.

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.
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 22, 2026

Warning

Rate limit exceeded

@mabry1985 has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 2 minutes and 45 seconds before requesting another review.

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 @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

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 configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 7e4e3897-3bf5-4530-8b73-b3802c4ecb88

📥 Commits

Reviewing files that changed from the base of the PR and between 7097da9 and 5d3ae67.

📒 Files selected for processing (5)
  • .claude/commands/frank.md
  • docker-compose.prod.yml
  • docker-compose.staging.yml
  • docs/self-hosting/docker-compose.md
  • scripts/setup-prod.sh
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch refactor/consolidate-prod-compose-drop-swarm

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions
Copy link
Copy Markdown
Contributor

Code Review — ? finding(s)

Async review running parallel to CodeRabbit. Findings are advisory; not all are merge blockers.

protoLabs Code Review Report

  • Generated: 2026-05-22T05:21:01Z
  • Git head: d31235bb3360c6f94fedec325385314db2730a91
  • Features mapped: 3
  • Findings: 0

No findings recorded.

@github-actions
Copy link
Copy Markdown
Contributor

@mabry1985 mabry1985 merged commit 8555141 into main May 22, 2026
8 checks passed
@mabry1985 mabry1985 deleted the refactor/consolidate-prod-compose-drop-swarm branch May 22, 2026 06:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant