Register abc_fe / abc_be / abc_worker for beta-only deploy #26

Closed
opened 2026-09-04 14:00:31 -07:00 by westfarn · 1 comment
Owner

Summary

Register AI Benefits Coach (abc_fe / abc_be / abc_worker) for beta-only deploys through scripts/deploy.sh, same pattern as company_site / chat_*.

No prod host_apps entries in this ticket. Prod ports are reserved in docs only.

Companion app tickets (GIS org):

  • abc_bedocker-compose.prod.yml + .gitea/workflows/deploy-beta.yml + env template
  • abc_worker — same (FastAPI treated as django-type compose; no migrate)
  • abc_febuild:beta + deploy-beta workflow + .env.beta public URLs

Current state

app_catalog has no abc_* keys. GIS ABC is not on any host_apps list. No Gitea workflows in the GIS repos.

Work

1. app_catalog (inventory/group_vars/all.yml)

App Type Repo Notes
abc_be django GIS/abc_be.git compose_file: docker-compose.prod.yml, web_service: web, migrate uv run python manage.py migrate --noinput
abc_worker django GIS/abc_worker.git compose with service name web; migrate_cmd: true (FastAPI, no Django migrations)
abc_fe node-static GIS/abc_fe.git webroot_pattern: /var/www/{env}.abc.aimloperations/html

Default branch: master for all three.

2. host_apps beta on every webserver (ports must match)

App beta prod (reserved, not deployed)
abc_be 8017 8007
abc_worker 8018 8008
abc_fe 8085 8084

Enable beta rows on adama, roslin, starbuck, apollo, ai-server-4080.

3. Shared Postgres

  • Create DB abc_be_beta (do not share a future prod DB).
  • Worker uses the same DB (pgvector + app tables). No abc_worker_beta database.
  • Grant westfarn.

4. Control-node secrets (never git)

~/Documents/secrets/abc_be/abc_be_beta.env
~/Documents/secrets/abc_worker/abc_worker_beta.env

Mode 600. Templates live in the app repos as .env.beta.example. Operator copies and fills.

5. NPM

  • beta.abc.aimloperations.com*:8085
  • beta.abc.be.aimloperations.com*:8017
  • beta.abc.worker.aimloperations.com*:8018 (HTTP + WebSocket upgrade)

6. Docs

Update IMPLEMENTATION.md apps / ports / Postgres / NPM / secrets tables. Extend scripts/deploy.sh usage app list.

7. Smoke (after secrets exist)

./scripts/deploy.sh --app abc_be --env beta --ref master
./scripts/deploy.sh --app abc_worker --env beta --ref master
./scripts/deploy.sh --app abc_fe --env beta --ref master

Acceptance criteria

  • Catalog + beta host_apps on all five app hosts
  • Docs list reserved prod ports but prod is not in host_apps
  • deploy.sh --app abc_be|abc_worker|abc_fe --env beta is a valid invocation
  • Secret paths documented; missing secret still fails loud on deploy
  • No prod ABC deploy workflow or host_apps prod rows

Out of scope

NPM host creation (operator). Filling real secret values (operator). Azure SWA. DecideGuide cron timer install (separate abc_be ticket).

## Summary Register **AI Benefits Coach** (`abc_fe` / `abc_be` / `abc_worker`) for **beta-only** deploys through `scripts/deploy.sh`, same pattern as `company_site` / `chat_*`. No prod `host_apps` entries in this ticket. Prod ports are reserved in docs only. Companion app tickets (GIS org): - `abc_be` — `docker-compose.prod.yml` + `.gitea/workflows/deploy-beta.yml` + env template - `abc_worker` — same (FastAPI treated as django-type compose; no migrate) - `abc_fe` — `build:beta` + deploy-beta workflow + `.env.beta` public URLs ## Current state `app_catalog` has no `abc_*` keys. GIS ABC is not on any `host_apps` list. No Gitea workflows in the GIS repos. ## Work ### 1. `app_catalog` (`inventory/group_vars/all.yml`) | App | Type | Repo | Notes | |-----|------|------|-------| | `abc_be` | django | `GIS/abc_be.git` | `compose_file: docker-compose.prod.yml`, `web_service: web`, migrate `uv run python manage.py migrate --noinput` | | `abc_worker` | django | `GIS/abc_worker.git` | compose with service name `web`; `migrate_cmd: true` (FastAPI, no Django migrations) | | `abc_fe` | node-static | `GIS/abc_fe.git` | `webroot_pattern: /var/www/{env}.abc.aimloperations/html` | Default branch: `master` for all three. ### 2. `host_apps` beta on every webserver (ports must match) | App | beta | prod (reserved, not deployed) | |-----|------|-------------------------------| | `abc_be` | **8017** | 8007 | | `abc_worker` | **8018** | 8008 | | `abc_fe` | **8085** | 8084 | Enable beta rows on adama, roslin, starbuck, apollo, ai-server-4080. ### 3. Shared Postgres - Create DB `abc_be_beta` (do **not** share a future prod DB). - Worker uses the **same** DB (pgvector + app tables). No `abc_worker_beta` database. - Grant `westfarn`. ### 4. Control-node secrets (never git) ```text ~/Documents/secrets/abc_be/abc_be_beta.env ~/Documents/secrets/abc_worker/abc_worker_beta.env ``` Mode `600`. Templates live in the app repos as `.env.beta.example`. Operator copies and fills. ### 5. NPM - `beta.abc.aimloperations.com` → `*:8085` - `beta.abc.be.aimloperations.com` → `*:8017` - `beta.abc.worker.aimloperations.com` → `*:8018` (HTTP + WebSocket upgrade) ### 6. Docs Update `IMPLEMENTATION.md` apps / ports / Postgres / NPM / secrets tables. Extend `scripts/deploy.sh` usage app list. ### 7. Smoke (after secrets exist) ```bash ./scripts/deploy.sh --app abc_be --env beta --ref master ./scripts/deploy.sh --app abc_worker --env beta --ref master ./scripts/deploy.sh --app abc_fe --env beta --ref master ``` ## Acceptance criteria - [ ] Catalog + beta `host_apps` on all five app hosts - [ ] Docs list reserved prod ports but prod is not in `host_apps` - [ ] `deploy.sh --app abc_be|abc_worker|abc_fe --env beta` is a valid invocation - [ ] Secret paths documented; missing secret still fails loud on deploy - [ ] No prod ABC deploy workflow or `host_apps` prod rows ## Out of scope NPM host creation (operator). Filling real secret values (operator). Azure SWA. DecideGuide cron timer install (separate abc_be ticket).
Author
Owner

Landed on master (aac8153). Remaining operator setup before the first deploy will succeed:

  1. Create Postgres DB abc_be_beta + grant westfarn
  2. Copy secrets (see comment on GIS/abc_be#22 for the file shape)
  3. NPM hosts for the three beta domains
  4. Push to GIS abc_* master will then call deploy.sh --env beta

Companions: GIS/abc_be#22 GIS/abc_worker#27 GIS/abc_fe#27

Landed on `master` (`aac8153`). Remaining operator setup before the first deploy will succeed: 1. Create Postgres DB `abc_be_beta` + grant `westfarn` 2. Copy secrets (see comment on GIS/abc_be#22 for the file shape) 3. NPM hosts for the three beta domains 4. Push to GIS `abc_*` master will then call `deploy.sh --env beta` Companions: https://git.aimloperations.com/GIS/abc_be/issues/22 https://git.aimloperations.com/GIS/abc_worker/issues/27 https://git.aimloperations.com/GIS/abc_fe/issues/27
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: ai_ml_operations/server-infra#26