diff --git a/README.md b/README.md index 2280b25..ead3712 100644 --- a/README.md +++ b/README.md @@ -1,34 +1,34 @@ -# centralcloud +# centralcloud/portal -Elixir umbrella app for CentralCloud customer and staff portals. +Elixir/Phoenix umbrella — two web surfaces from one codebase. ## Apps | App | URL | Audience | |-----|-----|----------| -| `centralcloud_my` | `my.centralcloud.com` | Customers — unified dashboard | -| `centralcloud_ops` | `ops.centralcloud.com` | Staff — ops and on-call | +| `centralcloud_staff` | `ops.centralcloud.com` | Staff — ops cockpit, AI chat, on-call | +| `centralcloud_my` | `my.centralcloud.com` | Customers — dashboard, DR, billing, support | | `centralcloud_core` | (library) | Shared: HostBill client, DR API client, OIDC | +> **Note:** `centralcloud_staff` is the thin UI layer. All business logic (incidents, pager, +> oncall engine, AI triage) lives in `../infra/apps/centralcloud_ops` (the backend engine). + `my.centralcloud.com` will also serve `www.centralcloud.com` (marketing pages) when DNS is repointed. ## Quick start ```bash -# Install Elixir 1.17+ and Phoenix -mix local.hex --force -mix archive.install hex phx_new --force +# Enter dev shell (Elixir 1.20-rc.4 + OTP 28 via Nix) +nix develop -# Install deps +# Install deps (from umbrella root) mix deps.get -# Run my. portal (port 4001) -cd apps/centralcloud_my -mix phx.server +# Run customer portal (port 4001) +cd apps/centralcloud_my && mix phx.server -# Run ops portal (port 4000) -cd apps/centralcloud_ops -mix phx.server +# Run staff portal (port 4000) +cd apps/centralcloud_staff && mix phx.server ``` ## Required env vars @@ -42,8 +42,10 @@ DR_PORTAL_URL=https://dr.centralcloud.com DR_PORTAL_API_KEY=... OIDC_CLIENT_ID=... # Authentik application client ID OIDC_CLIENT_SECRET=... +ROUTER_AGENT_URL=http://router-agent.router-agent.svc:8642 +ROUTER_AGENT_API_KEY=... # from OpenBao / k8s secret ``` ## Architecture -See `../dr-repo/docs/adr/001-unified-portal-architecture.md` +See `../AGENTS.md` for the full codebase map and how portal, engine, and agents relate.