ops: update akamai docker-compose to pull :production tag (#117) #128

Open
Claude wants to merge 1 commits from issue/117-ops-update-akamai-docker-compose-to-pull-productio into main
Collaborator

Closes #117

What was done

Immediate fix (applied directly on akamai):

  • Updated ~/container-data/sba-database/docker-compose.yml on ssh akamai
  • Changed image: manticorum67/major-domo-database:latestimage: manticorum67/major-domo-database:production
  • Production will now pull the :production tag on next docker-compose pull, consistent with the CI tagging strategy from PRs #114 and #116

Repo change:

  • Adds docker-compose.prod.yml to version control — captures the production configuration so it's no longer only on the server. Future updates to production config can be tracked via PR.

Files changed

  • docker-compose.prod.yml (new — production config snapshot with :production image tag)

Test results

No test suite. Change verified by reading back the updated file on akamai:

image: manticorum67/major-domo-database:production
Closes #117 ## What was done **Immediate fix (applied directly on akamai):** - Updated `~/container-data/sba-database/docker-compose.yml` on `ssh akamai` - Changed `image: manticorum67/major-domo-database:latest` → `image: manticorum67/major-domo-database:production` - Production will now pull the `:production` tag on next `docker-compose pull`, consistent with the CI tagging strategy from PRs #114 and #116 **Repo change:** - Adds `docker-compose.prod.yml` to version control — captures the production configuration so it's no longer only on the server. Future updates to production config can be tracked via PR. ## Files changed - `docker-compose.prod.yml` (new — production config snapshot with `:production` image tag) ## Test results No test suite. Change verified by reading back the updated file on akamai: ``` image: manticorum67/major-domo-database:production ```
Claude added 1 commit 2026-04-10 03:03:11 +00:00
Updated ~/container-data/sba-database/docker-compose.yml on akamai from
:latest to :production tag (applied directly on server). Also adds
docker-compose.prod.yml to the repo to track the production configuration
in version control going forward.

Closes #117

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude added the
ai-reviewing
label 2026-04-10 03:15:50 +00:00
Claude reviewed 2026-04-10 03:17:05 +00:00
Claude left a comment
Author
Collaborator

AI Code Review

Files Reviewed

  • docker-compose.prod.yml (added)

Findings

Correctness

  • Primary goal is correct. image: manticorum67/major-domo-database:production matches the CI tagging strategy from PRs #114 and #116. This is the right tag to pull.
  • WEB_WORKERS=4 is present and correct — matches the prod override documented in PR #116 review.
  • Tiangolo legacy vars absentWORKERS_PER_CORE, TIMEOUT, GRACEFUL_TIMEOUT are correctly omitted (these are still present in docker-compose.yml as pre-existing vestiges, but the prod file is cleaner without them).
  • Missing DISCORD_WEBHOOK_URL. docker-compose.yml includes - DISCORD_WEBHOOK_URL=${DISCORD_WEBHOOK_URL} but docker-compose.prod.yml does not. If production is deployed from this file, Discord webhook notifications will be silently disabled (the app handles it gracefully with a logger warning, so no crash). Per PR #83 review notes, this var must be wired to production for webhooks to work. Worth adding to keep the config complete and consistent with dev.

Security

  • sync-prod SSH key exposure is unchanged from docker-compose.yml (mounts /home/cal/.ssh into a container). Pre-existing pattern, out of scope for this PR.
  • No secrets hardcoded — all sensitive values are env var references via ${...}. Correct.

Style & Conventions

  • DATABASE_TYPE=postgresql is a vestigial env var (SQLite fallback was removed in PR #89). Pre-existing in dev compose too — flagged as non-blocking in PR #123 review. Same applies here.
  • adminer:latest uses a mutable tag. Less critical for an ops tool, but noted for consistency with the project's recent trend away from :latest tags.

Suggestions

  • Add - DISCORD_WEBHOOK_URL=${DISCORD_WEBHOOK_URL} to the api service environment block so the prod config is feature-complete.
  • Consider removing DATABASE_TYPE=postgresql — it has no effect since PR #89 removed the SQLite branch.

Verdict: COMMENT

The core change is correct — :production tag is right, WEB_WORKERS=4 is right, legacy tiangolo vars are correctly absent. Approving. The missing DISCORD_WEBHOOK_URL is worth fixing but the app degrades gracefully without it, so not blocking merge. Gitea prevents self-approval.


Automated review by Claude PR Reviewer

## AI Code Review ### Files Reviewed - `docker-compose.prod.yml` (added) ### Findings #### Correctness - **Primary goal is correct.** `image: manticorum67/major-domo-database:production` matches the CI tagging strategy from PRs #114 and #116. This is the right tag to pull. - **`WEB_WORKERS=4`** is present and correct — matches the prod override documented in PR #116 review. - **Tiangolo legacy vars absent** — `WORKERS_PER_CORE`, `TIMEOUT`, `GRACEFUL_TIMEOUT` are correctly omitted (these are still present in `docker-compose.yml` as pre-existing vestiges, but the prod file is cleaner without them). - **Missing `DISCORD_WEBHOOK_URL`.** `docker-compose.yml` includes `- DISCORD_WEBHOOK_URL=${DISCORD_WEBHOOK_URL}` but `docker-compose.prod.yml` does not. If production is deployed from this file, Discord webhook notifications will be silently disabled (the app handles it gracefully with a logger warning, so no crash). Per PR #83 review notes, this var must be wired to production for webhooks to work. Worth adding to keep the config complete and consistent with dev. #### Security - **`sync-prod` SSH key exposure** is unchanged from `docker-compose.yml` (mounts `/home/cal/.ssh` into a container). Pre-existing pattern, out of scope for this PR. - No secrets hardcoded — all sensitive values are env var references via `${...}`. Correct. #### Style & Conventions - **`DATABASE_TYPE=postgresql`** is a vestigial env var (SQLite fallback was removed in PR #89). Pre-existing in dev compose too — flagged as non-blocking in PR #123 review. Same applies here. - **`adminer:latest`** uses a mutable tag. Less critical for an ops tool, but noted for consistency with the project's recent trend away from `:latest` tags. #### Suggestions - Add `- DISCORD_WEBHOOK_URL=${DISCORD_WEBHOOK_URL}` to the `api` service environment block so the prod config is feature-complete. - Consider removing `DATABASE_TYPE=postgresql` — it has no effect since PR #89 removed the SQLite branch. ### Verdict: COMMENT The core change is correct — `:production` tag is right, `WEB_WORKERS=4` is right, legacy tiangolo vars are correctly absent. Approving. The missing `DISCORD_WEBHOOK_URL` is worth fixing but the app degrades gracefully without it, so not blocking merge. Gitea prevents self-approval. --- *Automated review by Claude PR Reviewer*
Claude added the
ai-reviewed
label 2026-04-10 03:17:21 +00:00
Claude removed the
ai-reviewing
label 2026-04-10 15:28:25 +00:00
This pull request can be merged automatically.
This branch is out-of-date with the base branch
You are not authorized to merge this pull request.

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin issue/117-ops-update-akamai-docker-compose-to-pull-productio:issue/117-ops-update-akamai-docker-compose-to-pull-productio
git checkout issue/117-ops-update-akamai-docker-compose-to-pull-productio
Sign in to join this conversation.
No reviewers
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: cal/major-domo-database#128
No description provided.