# centralcloud Elixir umbrella app for CentralCloud customer and staff portals. ## Apps | App | URL | Audience | |-----|-----|----------| | `centralcloud_my` | `my.centralcloud.com` | Customers — unified dashboard | | `centralcloud_ops` | `ops.centralcloud.com` | Staff — ops and on-call | | `centralcloud_core` | (library) | Shared: HostBill client, DR API client, OIDC | `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 # Install deps mix deps.get # Run my. portal (port 4001) cd apps/centralcloud_my mix phx.server # Run ops portal (port 4000) cd apps/centralcloud_ops mix phx.server ``` ## Required env vars ```bash MY_SECRET_KEY_BASE=... # mix phx.gen.secret OPS_SECRET_KEY_BASE=... HOSTBILL_API_ID=... # from HostBill admin API keys HOSTBILL_API_KEY=... DR_PORTAL_URL=https://dr.centralcloud.com DR_PORTAL_API_KEY=... OIDC_CLIENT_ID=... # Authentik application client ID OIDC_CLIENT_SECRET=... ``` ## Architecture See `../dr-repo/docs/adr/001-unified-portal-architecture.md`