Add abc_voice beta container on port 8020 (#39)
Sync runner checkout / sync (push) Successful in 6s
Sync runner checkout / sync (push) Successful in 6s
## Summary - Register `abc_voice` as a second container from `GIS/abc_worker` (`docker-compose.voice.yml`), beta port **8020** on adama, roslin, starbuck, apollo, and ai-server-4080. - Document `https://beta.abc.voice.aimloperations.com` and `~/Documents/secrets/abc_voice/abc_voice_beta.env`. Ansible does not create the NPM host. - Closes #38. ## Test plan - [ ] Create the secret file (copy the worker beta env, set `VOICE_ENABLED=true`, Cartesia, and LiveKit) before the first deploy - [ ] `deploy.sh --app abc_voice --env beta` after the worker compose file is on `Development` - [ ] NPM: `beta.abc.voice.aimloperations.com` → `:8020` on all five hosts - [ ] `abc_be` `WORKER_AV_URL=https://beta.abc.voice.aimloperations.com` Merge this before the abc_worker workflow PR, or that deploy step fails looking up `abc_voice`. Reviewed-on: #39
This commit was merged in pull request #39.
This commit is contained in:
1 parent
d9621a984b
commit
f4219e2dca
7 files changed
+22
-2
No files matched your search
+9
-2
@@ -236,6 +236,7 @@ After Docker install, re-SSH so the `docker` group membership takes effect.
|
|||||||
| `print_forge` | django (docker) | all webservers | beta + prod | **stopped** (`enabled: false`, [#33](https://git.aimloperations.com/ai_ml_operations/server-infra/issues/33)). Ports reserved. Re-enable + `deploy.sh` to bring back. Worker was adama-only. |
|
| `print_forge` | django (docker) | all webservers | beta + prod | **stopped** (`enabled: false`, [#33](https://git.aimloperations.com/ai_ml_operations/server-infra/issues/33)). Ports reserved. Re-enable + `deploy.sh` to bring back. Worker was adama-only. |
|
||||||
| `abc_be` | django (docker) | all webservers | **beta only** | AI Benefits Coach API; no bundled Postgres; Ollama `http://10.0.0.128:11434`; shares DB `abc_be_beta` with `abc_worker` |
|
| `abc_be` | django (docker) | all webservers | **beta only** | AI Benefits Coach API; no bundled Postgres; Ollama `http://10.0.0.128:11434`; shares DB `abc_be_beta` with `abc_worker` |
|
||||||
| `abc_worker` | django-type compose (FastAPI) | all webservers | **beta only** | same Postgres as `abc_be`; `migrate_cmd: true`; WS on host port 8018 |
|
| `abc_worker` | django-type compose (FastAPI) | all webservers | **beta only** | same Postgres as `abc_be`; `migrate_cmd: true`; WS on host port 8018 |
|
||||||
|
| `abc_voice` | django-type compose (FastAPI) | all webservers | **beta only** | Same repo as `abc_worker`, compose `docker-compose.voice.yml`, join API on host port 8020. One uvicorn worker. |
|
||||||
| `abc_fe` | node-static (Vite) | all webservers | **beta only** | built to `/var/www/<env>.abc.aimloperations/html`; no prod `host_apps` row |
|
| `abc_fe` | node-static (Vite) | all webservers | **beta only** | built to `/var/www/<env>.abc.aimloperations/html`; no prod `host_apps` row |
|
||||||
| `livekit` | django-type compose (LiveKit SFU) | all webservers | **beta only** | Docker like `abc_worker`. Host network `:7880`. **Do not NPM-balance** until Redis — pick one upstream (adama). Router DNAT UDP 3478 + 50000–60000 and TCP 7881 to that host. Secrets `~/Documents/secrets/livekit/livekit_beta.env` |
|
| `livekit` | django-type compose (LiveKit SFU) | all webservers | **beta only** | Docker like `abc_worker`. Host network `:7880`. **Do not NPM-balance** until Redis — pick one upstream (adama). Router DNAT UDP 3478 + 50000–60000 and TCP 7881 to that host. Secrets `~/Documents/secrets/livekit/livekit_beta.env` |
|
||||||
|
|
||||||
@@ -273,6 +274,7 @@ future beta replica.
|
|||||||
| print_forge | **8019** (*stopped*) | **8007** (*stopped*) | all webservers (`enabled: false`) |
|
| print_forge | **8019** (*stopped*) | **8007** (*stopped*) | all webservers (`enabled: false`) |
|
||||||
| abc_be | **8017** | 8009 (*not deployed*) | all webservers |
|
| abc_be | **8017** | 8009 (*not deployed*) | all webservers |
|
||||||
| abc_worker | **8018** | 8008 (*not deployed*) | all webservers |
|
| abc_worker | **8018** | 8008 (*not deployed*) | all webservers |
|
||||||
|
| abc_voice | **8020** | — | all webservers |
|
||||||
| dta_webapp (nginx) | 8081 | 8080 | all webservers |
|
| dta_webapp (nginx) | 8081 | 8080 | all webservers |
|
||||||
| chat_web_app (nginx) | 8083 | 8082 | all webservers |
|
| chat_web_app (nginx) | 8083 | 8082 | all webservers |
|
||||||
| abc_fe (nginx) | **8085** | 8084 (*not deployed*) | all webservers |
|
| abc_fe (nginx) | **8085** | 8084 (*not deployed*) | all webservers |
|
||||||
@@ -360,6 +362,7 @@ point each domain at the backend(s):
|
|||||||
| abc_fe | `beta.abc.aimloperations.com` (beta only) | `adama:8085` + same on roslin / starbuck / apollo / ai-server-4080 |
|
| abc_fe | `beta.abc.aimloperations.com` (beta only) | `adama:8085` + same on roslin / starbuck / apollo / ai-server-4080 |
|
||||||
| abc_be | `beta.abc.be.aimloperations.com` (beta only) | `adama:8017` + same on roslin / starbuck / apollo / ai-server-4080 |
|
| abc_be | `beta.abc.be.aimloperations.com` (beta only) | `adama:8017` + same on roslin / starbuck / apollo / ai-server-4080 |
|
||||||
| abc_worker | `beta.abc.worker.aimloperations.com` (beta only; HTTP + WebSocket upgrade) | `adama:8018` + same on roslin / starbuck / apollo / ai-server-4080 |
|
| abc_worker | `beta.abc.worker.aimloperations.com` (beta only; HTTP + WebSocket upgrade) | `adama:8018` + same on roslin / starbuck / apollo / ai-server-4080 |
|
||||||
|
| abc_voice | `beta.abc.voice.aimloperations.com` (beta only). Balance this host. Do not balance LiveKit. | `adama:8020` + same on roslin / starbuck / apollo / ai-server-4080 |
|
||||||
| livekit | `LIVEKIT_DOMAIN` (e.g. `livekit.aimloperations.com`) — NPM Proxy Host, WebSocket, **single upstream** | `adama:7880` (do not balance until Redis) |
|
| livekit | `LIVEKIT_DOMAIN` (e.g. `livekit.aimloperations.com`) — NPM Proxy Host, WebSocket, **single upstream** | `adama:7880` (do not balance until Redis) |
|
||||||
|
|
||||||
### Required changes IN each app repo (owned separately)
|
### Required changes IN each app repo (owned separately)
|
||||||
@@ -406,6 +409,7 @@ do not).
|
|||||||
| print_forge | beta | `print_forge_beta` | `postgres://westfarn:<pw>@10.0.0.230:5432/print_forge_beta` |
|
| print_forge | beta | `print_forge_beta` | `postgres://westfarn:<pw>@10.0.0.230:5432/print_forge_beta` |
|
||||||
| abc_be | beta | `abc_be_beta` | `postgres://westfarn:<pw>@10.0.0.230:5432/abc_be_beta` |
|
| abc_be | beta | `abc_be_beta` | `postgres://westfarn:<pw>@10.0.0.230:5432/abc_be_beta` |
|
||||||
| abc_worker | beta | *(same `abc_be_beta`)* | worker uses `DB_*` pointing at `abc_be_beta` — do **not** create a second DB |
|
| abc_worker | beta | *(same `abc_be_beta`)* | worker uses `DB_*` pointing at `abc_be_beta` — do **not** create a second DB |
|
||||||
|
| abc_voice | beta | *(same `abc_be_beta`)* | voice container uses the worker DB settings — do **not** create a second DB |
|
||||||
|
|
||||||
Server prereqs on 10.0.0.230: create each DB + grant `westfarn`;
|
Server prereqs on 10.0.0.230: create each DB + grant `westfarn`;
|
||||||
`listen_addresses` covers LAN; `pg_hba.conf` allows `10.0.0.0/24`; firewall opens
|
`listen_addresses` covers LAN; `pg_hba.conf` allows `10.0.0.0/24`; firewall opens
|
||||||
@@ -461,13 +465,16 @@ Control-node secrets (never git, mode `600`):
|
|||||||
```text
|
```text
|
||||||
~/Documents/secrets/abc_be/abc_be_beta.env
|
~/Documents/secrets/abc_be/abc_be_beta.env
|
||||||
~/Documents/secrets/abc_worker/abc_worker_beta.env
|
~/Documents/secrets/abc_worker/abc_worker_beta.env
|
||||||
|
~/Documents/secrets/abc_voice/abc_voice_beta.env
|
||||||
```
|
```
|
||||||
|
|
||||||
Templates: `GIS/abc_be` `.env.beta.example`, `GIS/abc_worker` `.env.beta.example`.
|
Templates: `GIS/abc_be` `.env.beta.example`, `GIS/abc_worker` `.env.beta.example`, `GIS/abc_worker` `.env.voice.beta.example`.
|
||||||
|
`abc_voice` is the same checkout as `abc_worker` with `docker-compose.voice.yml`. Copy the worker beta env, set `VOICE_ENABLED=true`, `CARTESIA_API_KEY`, and the LiveKit keys. `abc_be` then uses `WORKER_AV_URL=https://beta.abc.voice.aimloperations.com`.
|
||||||
`abc_fe` has no secret file — public `VITE_*` URLs live in committed `.env.beta`.
|
`abc_fe` has no secret file — public `VITE_*` URLs live in committed `.env.beta`.
|
||||||
Create Postgres DB `abc_be_beta` and grant `westfarn` before first deploy.
|
Create Postgres DB `abc_be_beta` and grant `westfarn` before first deploy.
|
||||||
NPM: `beta.abc.aimloperations.com` → `:8085`, `beta.abc.be.aimloperations.com` → `:8017`,
|
NPM: `beta.abc.aimloperations.com` → `:8085`, `beta.abc.be.aimloperations.com` → `:8017`,
|
||||||
`beta.abc.worker.aimloperations.com` → `:8018` (enable WebSocket). No prod ABC
|
`beta.abc.worker.aimloperations.com` → `:8018` (enable WebSocket),
|
||||||
|
`beta.abc.voice.aimloperations.com` → `:8020` on all five webservers. No prod ABC
|
||||||
`host_apps` rows; ports **8009** / 8008 / 8084 reserved (`print_forge` took prod **8007**).
|
`host_apps` rows; ports **8009** / 8008 / 8084 reserved (`print_forge` took prod **8007**).
|
||||||
|
|
||||||
Companion workflows: [abc_be#22](https://git.aimloperations.com/GIS/abc_be/issues/22),
|
Companion workflows: [abc_be#22](https://git.aimloperations.com/GIS/abc_be/issues/22),
|
||||||
|
|||||||
@@ -172,6 +172,14 @@ app_catalog:
|
|||||||
web_service: web
|
web_service: web
|
||||||
# FastAPI — no Django migrations. `true` keeps the django deploy path happy.
|
# FastAPI — no Django migrations. `true` keeps the django deploy path happy.
|
||||||
migrate_cmd: "true"
|
migrate_cmd: "true"
|
||||||
|
# Same git repo as abc_worker, second container (voice join). Not the text worker.
|
||||||
|
abc_voice:
|
||||||
|
type: django
|
||||||
|
repo: "{{ git_base_url }}/GIS/abc_worker.git"
|
||||||
|
default_branch: Development
|
||||||
|
compose_file: docker-compose.voice.yml
|
||||||
|
web_service: web
|
||||||
|
migrate_cmd: "true"
|
||||||
abc_fe:
|
abc_fe:
|
||||||
type: node-static
|
type: node-static
|
||||||
repo: "{{ git_base_url }}/GIS/abc_fe.git"
|
repo: "{{ git_base_url }}/GIS/abc_fe.git"
|
||||||
|
|||||||
@@ -31,5 +31,6 @@ host_apps:
|
|||||||
- { name: print_forge, env: beta, port: 8019, compose_profiles: [worker], enabled: false }
|
- { name: print_forge, env: beta, port: 8019, compose_profiles: [worker], enabled: false }
|
||||||
- { name: abc_be, env: beta, port: 8017 }
|
- { name: abc_be, env: beta, port: 8017 }
|
||||||
- { name: abc_worker, env: beta, port: 8018 }
|
- { name: abc_worker, env: beta, port: 8018 }
|
||||||
|
- { name: abc_voice, env: beta, port: 8020 }
|
||||||
- { name: abc_fe, env: beta, port: 8085 }
|
- { name: abc_fe, env: beta, port: 8085 }
|
||||||
- { name: livekit, env: beta, port: 7880 }
|
- { name: livekit, env: beta, port: 7880 }
|
||||||
@@ -47,5 +47,6 @@ host_apps:
|
|||||||
- { name: print_forge, env: beta, port: 8019, enabled: false }
|
- { name: print_forge, env: beta, port: 8019, enabled: false }
|
||||||
- { name: abc_be, env: beta, port: 8017 }
|
- { name: abc_be, env: beta, port: 8017 }
|
||||||
- { name: abc_worker, env: beta, port: 8018 }
|
- { name: abc_worker, env: beta, port: 8018 }
|
||||||
|
- { name: abc_voice, env: beta, port: 8020 }
|
||||||
- { name: abc_fe, env: beta, port: 8085 }
|
- { name: abc_fe, env: beta, port: 8085 }
|
||||||
- { name: livekit, env: beta, port: 7880 }
|
- { name: livekit, env: beta, port: 7880 }
|
||||||
@@ -26,5 +26,6 @@ host_apps:
|
|||||||
- { name: print_forge, env: beta, port: 8019, enabled: false }
|
- { name: print_forge, env: beta, port: 8019, enabled: false }
|
||||||
- { name: abc_be, env: beta, port: 8017 }
|
- { name: abc_be, env: beta, port: 8017 }
|
||||||
- { name: abc_worker, env: beta, port: 8018 }
|
- { name: abc_worker, env: beta, port: 8018 }
|
||||||
|
- { name: abc_voice, env: beta, port: 8020 }
|
||||||
- { name: abc_fe, env: beta, port: 8085 }
|
- { name: abc_fe, env: beta, port: 8085 }
|
||||||
- { name: livekit, env: beta, port: 7880 }
|
- { name: livekit, env: beta, port: 7880 }
|
||||||
@@ -26,5 +26,6 @@ host_apps:
|
|||||||
- { name: print_forge, env: beta, port: 8019, enabled: false }
|
- { name: print_forge, env: beta, port: 8019, enabled: false }
|
||||||
- { name: abc_be, env: beta, port: 8017 }
|
- { name: abc_be, env: beta, port: 8017 }
|
||||||
- { name: abc_worker, env: beta, port: 8018 }
|
- { name: abc_worker, env: beta, port: 8018 }
|
||||||
|
- { name: abc_voice, env: beta, port: 8020 }
|
||||||
- { name: abc_fe, env: beta, port: 8085 }
|
- { name: abc_fe, env: beta, port: 8085 }
|
||||||
- { name: livekit, env: beta, port: 7880 }
|
- { name: livekit, env: beta, port: 7880 }
|
||||||
@@ -26,5 +26,6 @@ host_apps:
|
|||||||
- { name: print_forge, env: beta, port: 8019, enabled: false }
|
- { name: print_forge, env: beta, port: 8019, enabled: false }
|
||||||
- { name: abc_be, env: beta, port: 8017 }
|
- { name: abc_be, env: beta, port: 8017 }
|
||||||
- { name: abc_worker, env: beta, port: 8018 }
|
- { name: abc_worker, env: beta, port: 8018 }
|
||||||
|
- { name: abc_voice, env: beta, port: 8020 }
|
||||||
- { name: abc_fe, env: beta, port: 8085 }
|
- { name: abc_fe, env: beta, port: 8085 }
|
||||||
- { name: livekit, env: beta, port: 7880 }
|
- { name: livekit, env: beta, port: 7880 }
|
||||||
Reference in new issue
Block a user