|
|
|
@@ -191,8 +191,9 @@ After Docker install, re-SSH so the `docker` group membership takes effect.
|
|
|
|
|
|-----|------|-------|------|-------|
|
|
|
|
|
| `company_site` | django (docker) | adama + roslin (+ ai-server-4080) | prod | active/active behind NPM; beta port reserved |
|
|
|
|
|
| `dta_service` | django (docker) | adama + roslin + ai-server-4080 | beta + prod | active/active behind NPM |
|
|
|
|
|
| `dta_webapp` | node/vite static | adama + roslin (+ ai-server-4080) | beta + prod | active/active; built to `/var/www/<env>_dta_webapp`, served by web-static nginx |
|
|
|
|
|
| `dta_webapp` | node/vite static | adama + roslin (+ ai-server-4080) | beta + prod | active/active; built to `/var/www/<env>.app.ditchtheagent/html`, served by web-static nginx |
|
|
|
|
|
| `scha` | django (docker) | adama + roslin + ai-server-4080 | prod | active/active behind NPM; beta port reserved |
|
|
|
|
|
| `chat_web_app` | node-static (CRA) | adama + roslin + ai-server-4080 | prod | active/active; built to `/var/www/<env>.chat.aimloperations/html`, served by web-static nginx; beta port reserved |
|
|
|
|
|
|
|
|
|
|
Django apps use a **shared external Postgres** (via `DATABASE_URL` in each host's
|
|
|
|
|
env file) so active/active replicas share one database. Beta and prod never share
|
|
|
|
@@ -217,6 +218,7 @@ future beta replica.
|
|
|
|
|
| dta_service | 8011 | 8001 | adama, roslin, ai-server-4080 |
|
|
|
|
|
| scha | 8012 (*not deployed*) | 8002 | adama, roslin, ai-server-4080 |
|
|
|
|
|
| dta_webapp (nginx) | 8081 | 8080 | adama, roslin, ai-server-4080 |
|
|
|
|
|
| chat_web_app (nginx) | 8083 (*not deployed*) | 8082 | adama, roslin, ai-server-4080 |
|
|
|
|
|
|
|
|
|
|
### Flow
|
|
|
|
|
|
|
|
|
@@ -235,9 +237,10 @@ future beta replica.
|
|
|
|
|
to host `{{ apps_env_dir }}` → git checkout at ref → copy `.env` into checkout →
|
|
|
|
|
`docker compose build` → `up -d` → migrate (run once, shared DB).
|
|
|
|
|
- **node-static**: git checkout at ref → `npm ci` → `npm run build:<env>`
|
|
|
|
|
(writes to `/var/www/<env>_dta_webapp`).
|
|
|
|
|
- **web-static** role: one nginx container per app host (adama + roslin) serving
|
|
|
|
|
the static roots on their ports; NPM balances across both.
|
|
|
|
|
(writes to the app's `webroot_pattern`, e.g. `/var/www/{env}.app.ditchtheagent/html`
|
|
|
|
|
or `/var/www/{env}.chat.aimloperations/html`).
|
|
|
|
|
- **web-static** role: one nginx container per app host serving the static roots
|
|
|
|
|
on their ports (from `host_apps`); NPM balances across hosts.
|
|
|
|
|
|
|
|
|
|
### Reverse proxy / load balancing (NPM at 10.0.0.230)
|
|
|
|
|
|
|
|
|
@@ -255,6 +258,7 @@ point each domain at the backend(s):
|
|
|
|
|
| dta_service | (see DTA NPM hosts) | `adama:8001` / `8011` + same on roslin / ai-server-4080 |
|
|
|
|
|
| dta_webapp | (see DTA NPM hosts) | `adama:8080` / `8081` + same on roslin |
|
|
|
|
|
| scha | `schawheaton.aimloperations.com`, `schawheaton.com` (+ www) | `adama:8002` + `roslin:8002` (+ `ai-server-4080:8002`) |
|
|
|
|
|
| chat_web_app | `chat.aimloperations.com` (+ www) | `adama:8082` + `roslin:8082` (+ `ai-server-4080:8082`) |
|
|
|
|
|
|
|
|
|
|
### Required changes IN each app repo (owned separately)
|
|
|
|
|
|
|
|
|
@@ -265,7 +269,9 @@ point each domain at the backend(s):
|
|
|
|
|
with a call to `server-infra/scripts/deploy.sh --app <name> --env <env> --ref <sha>`
|
|
|
|
|
(keep the test/docker jobs).
|
|
|
|
|
- [ ] `dta_webapp`: `npm run build:beta` / `build:prod` output to
|
|
|
|
|
`/var/www/beta_dta_webapp` / `/var/www/prod_dta_webapp`.
|
|
|
|
|
`/var/www/beta.app.ditchtheagent/html` / `/var/www/prod.app.ditchtheagent/html`.
|
|
|
|
|
- [ ] `chat_web_app`: `npm run build:beta` / `build:prod` output to
|
|
|
|
|
`/var/www/beta.chat.aimloperations/html` / `/var/www/prod.chat.aimloperations/html`.
|
|
|
|
|
|
|
|
|
|
### Shared Postgres (10.0.0.230, same box as NPM)
|
|
|
|
|
|
|
|
|
@@ -356,6 +362,7 @@ Store vault password for CI in a file readable only by the Act runner (e.g. `~/.
|
|
|
|
|
| 9 | Stub `deploy-apps.yml` + update `company_site` workflow | Future |
|
|
|
|
|
| 10 | Dockerize `company_site` | Future (separate ticket) |
|
|
|
|
|
| 10a | Register + deploy `scha` (all webservers, port 8002) | In progress ([scha#19](https://git.aimloperations.com/ai_ml_operations/scha/issues/19)) |
|
|
|
|
|
| 10b | Register + deploy `chat_web_app` (node-static, port 8082) | In progress ([chat_web_app#13](https://git.aimloperations.com/ai_ml_operations/chat_web_app/issues/13)) |
|
|
|
|
|
| 11 | Gitea container registry (optional) | Future |
|
|
|
|
|
|
|
|
|
|
## Open Decisions
|
|
|
|
|