Use this runbook when Milady should rely on the existing Eliza Cloud deployment at https://elizacloud.ai, with no separate Milady-hosted cloud control plane.
This integration has two codebases:
-
miladyThe local app, onboarding flow, homepage, and remote-backend attach flow. -
The existing Eliza Cloud control plane repository This remains the only managed server/control-plane deploy in the Milady hosted flow.
The code-side work is already in place:
- Local / Cloud / Remote onboarding is wired in the Milady app.
- Eliza Cloud URLs and managed-launch defaults are wired through the app.
- Managed launches now hand off from
elizacloud.aitoapp.milady.aiwith one-time launch sessions. - Browser-facing managed-launch exchange already happens directly against Eliza Cloud.
- A Cloudflare Worker proxy template exists in
deploy/cloudflare/eliza-cloud-proxy/if a Milady-owned browser origin is ever required.
- A reachable Eliza Cloud deployment at
https://elizacloud.aiorhttps://www.elizacloud.ai - A deployed Milady web frontend at
https://app.milady.ai - The Milady homepage and app pointing to Eliza Cloud login/dashboard URLs
For remote self-hosted backends, you also need:
- A Milady backend reachable over HTTPS or Tailscale
MILADY_API_TOKENon that backendMILADY_ALLOWED_ORIGINSincluding the Milady web origins you plan to use
Recommended remote backend environment:
MILADY_API_BIND=0.0.0.0
MILADY_API_TOKEN=$(openssl rand -hex 32)
MILADY_ALLOWED_ORIGINS=https://app.milady.ai,https://milady.ai,https://elizacloud.ai,https://www.elizacloud.ai- User signs in at
https://elizacloud.ai/login?returnTo=%2Fdashboard%2Fmilady - User opens or creates an instance at
https://elizacloud.ai/dashboard/milady - Eliza Cloud redirects to
https://app.milady.aiwithcloudLaunchSessionandcloudLaunchBase app.milady.aiexchanges that one-time session directly withGET /api/v1/milady/launch-sessions/:sessionId- The Milady web client binds to the selected managed backend and skips onboarding
- The local Milady backend keeps
/api/cloud/*passthrough routes. - Those routes still forward to Eliza Cloud, but they exist only so the local runtime can persist the user's Eliza Cloud API key into local config and runtime state.
- This is local app plumbing, not a separate hosted Milady service.
Use this only if you want a Milady-owned browser-facing proxy such as https://cloud-api.milady.ai.
- Worker:
deploy/cloudflare/eliza-cloud-proxy/worker.ts - Wrangler template:
deploy/cloudflare/eliza-cloud-proxy/wrangler.toml.example
- Forward only browser-facing paths to Eliza Cloud:
/api/auth/cli-session/api/auth/cli-session/:sessionId/api/compat/*/api/v1/milady/launch-sessions/*
- Preserve
AuthorizationandX-Service-Keyheaders. - Reflect CORS only for allowed Milady origins.
- Keep Eliza Cloud as the only upstream control plane.
- Create a Cloudflare Worker from
deploy/cloudflare/eliza-cloud-proxy/worker.ts - Set
ELIZA_CLOUD_ORIGIN=https://www.elizacloud.ai - Set
ALLOWED_ORIGINS=https://app.milady.ai,https://milady.ai,http://localhost:5173,http://127.0.0.1:5173 - Bind a route such as
cloud-api.milady.ai/* - If you use the proxy, update the Milady frontend/cloud config to use that origin for browser-managed calls only
Run these checks against the live Eliza Cloud deployment:
- Open
https://elizacloud.ai/login?returnTo=%2Fdashboard%2Fmilady - Open
https://www.elizacloud.ai/auth/cli-login?session=test-session - Verify the homepage
Get the appandEliza CloudCTA onmilady - In the Milady app onboarding:
Localstarts a local backendCloud -> Eliza Cloudreaches Eliza CloudCloud -> Remote Miladyaccepts backend URL + access key
- Test a real remote self-hosted backend using
MILADY_API_TOKEN - Create one Eliza Cloud instance, launch it from
/dashboard/milady, and confirmapp.milady.aiopens already attached with onboarding skipped - If you enabled the optional Cloudflare proxy, repeat the browser-managed calls through the proxied origin
These actions are intentionally external to the repo:
- Keep the upstream Eliza Cloud deployment healthy
- Keep
app.milady.aideployed - Configure DNS for any optional proxy origin you choose
- Configure
MILADY_ALLOWED_ORIGINSon any remote self-hosted Milady backend you expose