westfarn
695dace1ec
Register print_forge for django deploy ( closes #27 )
...
Sync runner checkout / sync (pull_request) Successful in 7s
Catalog + host_apps (prod 8007 / beta 8019) with dj-queue worker singleton on adama. Unused abc_be prod reserve moves to 8009.
2026-09-06 08:32:11 -05:00
westfarn and Cursor
aac815314d
Register abc_fe / abc_be / abc_worker for beta-only deploy.
...
Sync runner checkout / sync (push) Successful in 6s
Closes #26 . GIS Benefits Coach gets beta host_apps (8017/8018/8085) and catalog entries; prod ports stay reserved.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-04 16:21:23 -05:00
westfarn
95fbae8db4
Register college_craft for django deploy ( closes #24 ) ( #25 )
...
Sync runner checkout / sync (push) Successful in 6s
## Summary
- Closes [#24 ](#24 ).
- Register `college_craft` in `app_catalog` (`type: django`, repo `ai_ml_operations/college_craft`, default branch `master`).
- Add `host_apps` prod `:8006` / beta `:8016` on **adama**, **roslin**, **starbuck**, **apollo**, and **ai-server-4080**.
- dj-queue **worker singleton on adama** only (`compose_profiles: [worker]`); other hosts web-only.
- Document ports, NPM hosts, Postgres DBs, secrets, Nominatim (`10.0.0.128:8089`), and the app-repo `--app client_site` leftover.
- Add `college_craft` to `scripts/deploy.sh` `--app` help.
## Out of scope (ops, after merge)
- Create Postgres DBs `college_craft` / `college_craft_beta` on `10.0.0.230` and grant `westfarn`.
- Write control-node secrets `~/Documents/secrets/college_craft/college_craft_{prod,beta}.env`.
- NPM: `collegecraft.com` (+ www) → `:8006`; `college-craft-preview.aimloperations.com` → `:8016`.
- Smoke deploy after secrets + DBs exist:
```bash
~/Documents/repos/server-infra/scripts/deploy.sh --app college_craft --env beta --ref master
~/Documents/repos/server-infra/scripts/deploy.sh --app college_craft --env prod --ref master
```
## Test plan
- [ ] Confirm `app_catalog.college_craft` matches other django apps (`compose_file`, `migrate_cmd`).
- [ ] Confirm ports 8006/8016 unused elsewhere and match across all five hosts.
- [ ] Confirm only adama has `compose_profiles: [worker]` for college_craft.
- [ ] After secrets + DBs: deploy beta then prod; `/healthz/` up on both; prod holding page, beta full site.
Reviewed-on: #25
2026-09-02 07:39:03 -07:00
westfarn
9208e63491
Register url_shortening_service for django deploy ( closes #22 ) ( #23 )
...
Sync runner checkout / sync (push) Successful in 6s
## Summary
- Closes [#22 ](#22 ).
- Register `url_shortening_service` in `app_catalog` (`type: django`, repo `ai_ml_operations/url_shortening_service`, default branch `master`) and `host_apps` on **adama**, **roslin**, **starbuck**, **apollo**, and **ai-server-4080** (prod **8005**, beta **8015**).
- Document NPM (short host vs API host, same container), Postgres DBs (`url_shortener` / `url_shortener_beta`), and extra env keys. No compose worker profile.
- List `url_shortening_service` in `scripts/deploy.sh` `--app` help.
## Out of scope (manual ops)
- Create Postgres DBs `url_shortener` / `url_shortener_beta` + grant `westfarn` on `10.0.0.230`
- Control-node secrets under `~/Documents/secrets/url_shortening_service/`
- NPM proxy hosts (Ryan): short host `/` + `/[a-z0-9]{4,8}` (404 `/api/`, `/admin/`, `/debug/`); API host `/api/` only (404 `/admin/`)
- Deploy smoke — [url_shortening_service](https://git.aimloperations.com/ai_ml_operations/url_shortening_service ) `master` is still a stub (`README.md` only)
## Test plan
- [x] Inventory YAML: `url_shortening_service` in `app_catalog`; every host `host_apps` has prod **8005** / beta **8015**
- [ ] After app compose + secrets + DBs exist: `./scripts/deploy.sh --app url_shortening_service --env beta --ref master`
- [ ] Same for prod
- [ ] `GET /healthz/` → `{"status":"ok"}` on both ports
- [ ] Short host `GET /` landing page; `POST /api/links/` without Bearer → 401; public `/admin/` → 404
Reviewed-on: #23
2026-08-30 04:51:31 -07:00
westfarn
ec294a1d45
Add starbuck and apollo as active/active app hosts ( #21 )
...
Sync runner checkout / sync (push) Successful in 6s
## Summary
- Closes [#20 ](#20 ).
- Register **starbuck** (`10.0.0.44`) and **apollo** (`10.0.0.7`) as Proxmox app hosts in `webservers`, with `host_apps` copied from **roslin** (same apps/ports; **no** `monica_site` worker — that stays a singleton on **adama**).
- Allow `starbuck` / `apollo` in `provision.sh` and `deploy.sh`; document inventory, NPM backends, and Alloy `host` labels.
## Test plan
- [ ] `ansible-inventory --list` shows both hosts under `webservers` at the expected IPs.
- [ ] Bootstrap SSH + passwordless sudo on each VM (keep a Proxmox console open for first UFW enable).
- [ ] `ansible starbuck,apollo -m ping`
- [ ] `./scripts/provision.sh starbuck --check` then `./scripts/provision.sh starbuck`
- [ ] `./scripts/provision.sh apollo --check` then `./scripts/provision.sh apollo`
- [ ] `./scripts/deploy.sh starbuck` and `./scripts/deploy.sh apollo` bring up the same app+env set as roslin.
- [ ] `monica_site` dj-queue worker still runs **only** on adama.
- [ ] Grafana/Loki show `host="starbuck"` and `host="apollo"`.
- [ ] NPM Advanced upstreams (manual): add `starbuck:PORT` and `apollo:PORT` beside adama/roslin.Reviewed-on: #21
2026-08-16 07:20:38 -07:00
westfarn
b07e8cb4c3
Auto-start monica_site dj-queue worker on adama ( #18 )
...
Sync runner checkout / sync (push) Successful in 7s
## Summary
- Closes [#17 ](#17 ).
- Django deploy passes optional `host_apps.compose_profiles` as `COMPOSE_PROFILES` so compose profiles survive `up -d --remove-orphans`.
- Adama `monica_site` beta+prod set `compose_profiles: [worker]` (dj-queue singleton). Roslin / ai-server-4080 stay web-only.
## Why
Real campaign sends enqueue dj-queue tasks; without the worker they stay **Queued**. Test email worked because it is synchronous SMTP.
## Test plan
- [ ] Merge + deploy `monica_site` beta (and/or prod) via `deploy.sh`
- [ ] On **adama**, confirm worker container up for `monica_site_beta` / `monica_site_prod`
- [ ] On roslin / ai-server-4080, confirm **no** worker
- [ ] Portal: send campaign → recipient leaves Queued → SentReviewed-on: #18
2026-08-08 12:01:18 -07:00
westfarn
cc503988c0
Register monica_site for django deploy ( closes #14 ) ( #15 )
...
Sync runner checkout / sync (push) Successful in 6s
## Summary
- Closes [#14 ](#14 ).
- Register `monica_site` in `app_catalog` (`type: django`, repo `ai_ml_operations/monica_site`, default branch `main`) and `host_apps` on **adama**, **roslin**, and **ai-server-4080** (prod **8004**, beta **8014**).
- Document NPM (`mkdrealtor.com` / `monica-preview.aimloperations.com`), Postgres DBs (`monica_site` / `monica_site_beta`), and **dj-queue worker singleton on adama** only (`compose --profile worker`).
- List `monica_site` in `scripts/deploy.sh` `--app` help.
## Out of scope (manual ops)
- Create Postgres DBs + grants on `10.0.0.230`
- Control-node secrets under `~/Documents/secrets/monica_site/`
- NPM proxy hosts (Ryan)
- First deploy smoke + worker start on adama
## Test plan
- [ ] Confirm inventory YAML parses (`ansible-inventory --list` or dry deploy)
- [ ] Create DBs `monica_site` / `monica_site_beta` + secrets before smoke deploy
- [ ] `./scripts/deploy.sh --app monica_site --env beta --ref main`
- [ ] `./scripts/deploy.sh --app monica_site --env prod --ref main`
- [ ] On **adama** only: `docker compose -f docker-compose.prod.yml --profile worker up -d`
- [ ] Hit `/healthz/` on beta + prod; prod under-construction holding pageReviewed-on: #15
2026-08-06 13:46:00 -07:00
westfarn
92afbc6e00
Enable beta deploys for chat_backend + chat_web_app ( #7 ) ( #8 )
...
Sync runner checkout / sync (push) Successful in 7s
## Summary
Implements [#7 ](#7 ): register **beta** workloads for `chat_backend` and `chat_web_app`, matching the existing `dta_service` / `dta_webapp` pattern.
- Enable `host_apps` beta entries on **adama**, **roslin**, and **ai-server-4080** (`chat_backend` **8013**, `chat_web_app` **8083**)
- Update `IMPLEMENTATION.md` apps / ports / NPM / roadmap tables for chat beta + prod
- Prod chat entries unchanged
## Ops follow-ups (outside this PR)
- Create Postgres DB `chat_backend_beta` + grant `westfarn`
- Add `~/Documents/secrets/chat_backend/chat_backend_beta.env` (mode 600)
- NPM: `beta.chat.aimloperations.com` → `*:8083`; `beta.chatbackend.aimloperations.com` → `*:8013`
- Smoke: `./scripts/deploy.sh --app chat_backend --env beta --ref <sha>` and same for `chat_web_app`
Companion app tickets: [chat_backend#26](ai_ml_operations/chat_backend#26 ), [chat_web_app#35](ai_ml_operations/chat_web_app#35 )
## Test plan
- [ ] Confirm beta rows present in all three `host_vars`
- [ ] After merge + ops setup: deploy beta for both apps succeeds
- [ ] Prod chat deploys still work on 8003 / 8082
- [ ] NPM beta domains route to 8013 / 8083Reviewed-on: #8
2026-07-27 08:32:36 -07:00
westfarn and Cursor
39b0a9f475
Register chat_backend for django deploy (chat_backend#6 Part B).
...
Sync runner checkout / sync (pull_request) Successful in 7s
Add app_catalog entry, host_apps on adama/roslin/ai-server-4080 (prod
:8003), and document ports/NPM/Postgres/Ollama for active/active.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-25 07:03:36 -05:00
westfarn
71d96839dc
Register chat_web_app for node-static deploy (chat_web_app#13 Part B). ( #4 )
...
Sync runner checkout / sync (push) Successful in 6s
Add app_catalog entry, host_apps on adama/roslin/ai-server-4080 (prod :8082),
and document ports/NPM backends for the CRA static frontend.Reviewed-on: #4
2026-07-25 04:28:26 -07:00
westfarn
04ccbecbd7
Register scha for deploy on all webservers (scha#19 Part B) ( #3 )
...
Sync runner checkout / sync (push) Successful in 6s
## Summary
- Register `scha` in `app_catalog` and `host_apps` on adama, roslin, and ai-server-4080 (prod port **8002**; beta **8012** reserved).
- Update `IMPLEMENTATION.md` ports, apps, Postgres, and NPM tables so every app lists beta + prod.
- Include `scha` in `deploy.sh` help.
Part A (dockerize / CI in the `scha` repo) is tracked separately in [scha#19](ai_ml_operations/scha#19 ).
## Test plan
- [ ] Confirm inventory YAML loads: `ansible-inventory --list` shows `scha` under each host
- [ ] After Part A merges + `~/Documents/secrets/scha/scha_prod.env` exists: dry-run `./scripts/deploy.sh --app scha --env prod --check`
- [ ] Create DB `scha` on shared Postgres (`10.0.0.230`) and point NPM at `adama:8002` + `roslin:8002` (+ optional `ai-server-4080:8002`)
Reviewed-on: #3
2026-07-14 03:06:46 -07:00
westfarn
974e848d91
updating to remove company_site beta
2026-07-10 12:31:32 -05:00
westfarn
589462e6d0
updates
2026-07-08 05:59:11 -05:00