Files
server-infra/inventory/host_vars/ai-server-4080.yml
T
westfarn 9208e63491
Sync runner checkout / sync (push) Successful in 6s
Register url_shortening_service for django deploy (closes #22) (#23)
## 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

41 lines
1.8 KiB
YAML

---
# ai-server-4080 — control node + Gitea act runner. Update IP with:
# ip -4 addr show scope global
ansible_host: 10.0.0.128
ansible_control_node: true
# Deploy/ansible runs on this host; avoid self-SSH (breaks after long tasks / CI keys).
ansible_connection: local
act_runner_enabled: true
# Central Loki + Prometheus + Grafana (roles/observability).
observability_stack: true
# SearxNG JSON search API for chat_backend grounded retrieval (#10).
# Host port 8088 — 8080 is dta_webapp on this host. chat_backend secret:
# SEARXNG_BASE_URL=http://10.0.0.128:8088
searxng_stack: true
# This host's pre-existing ~/.ssh/id_ed25519 is a personal key WITH a passphrase,
# which hangs the (non-BatchMode) gitea access probe. Use a dedicated,
# passphrase-less deploy key here instead.
gitea_key_path: "/home/{{ admin_user }}/.ssh/gitea_deploy"
# company_site + dta_webapp + dta_service for side testing and active/active.
# Ports MUST match adama/roslin/starbuck/apollo so NPM can balance all upstreams.
host_apps:
- { name: company_site, env: prod, port: 8000 }
- { name: dta_webapp, env: prod, port: 8080 }
- { name: dta_webapp, env: beta, port: 8081 }
- { name: dta_service, env: prod, port: 8001 }
- { name: dta_service, env: beta, port: 8011 }
- { name: scha, env: prod, port: 8002 }
- { name: chat_web_app, env: prod, port: 8082 }
- { name: chat_web_app, env: beta, port: 8083 }
- { name: chat_backend, env: prod, port: 8003 }
- { name: chat_backend, env: beta, port: 8013 }
# monica_site worker NOT here — adama host_apps sets compose_profiles: [worker].
- { name: monica_site, env: prod, port: 8004 }
- { name: monica_site, env: beta, port: 8014 }
- { name: url_shortening_service, env: prod, port: 8005 }
- { name: url_shortening_service, env: beta, port: 8015 }