infra: separate VPS provisioning from Vercel crons#414
Conversation
- vercel.json: remove container-lifecycle crons (process-provisioning-jobs, health-check, deployment-monitor) — these are now exclusively owned by milady-provisioning-worker on the VPS - deploy-backend.yml: add restart of milady-provisioning-worker after eliza-cloud restart so worker picks up new code on each deploy - INFRASTRUCTURE.md: document Vercel vs VPS ownership, docker nodes, Neon DB, Redis, and missing GitHub Actions secrets VPS .env.local updated separately (out of band): - MILADY_DOCKER_IMAGE bumped to v2.0.0-steward-8 - ELIZA_CLOUD_AGENT_BASE_DOMAIN changed from waifu.fun to milady.ai - Added: MILADY_SANDBOX_PROVIDER, MILADY_BRIDGE_INTERNAL_PORT, STEWARD_CONTAINER_URL, REDIS_URL, KV_URL, MILADY_SSH_KEY (base64)
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Code ReviewOverall this is a clean, well-motivated change. The separation of VPS lifecycle from Vercel crons is the right architectural call. A few issues worth addressing: Bug / Reliability
Suggested guard in Or use Dead code — confusing constant
No health check for the provisioning workerThe Health Check step only polls Security / Info disclosure
Minor
The core logic changes ( |
Summary
Clean separation of container lifecycle (VPS) from frontend/billing (Vercel).
Problem
Both Vercel and the Milady VPS were running provisioning crons, causing:
Changes
vercel.jsonRemoved 3 container-lifecycle crons (VPS now owns exclusively):
/api/v1/cron/process-provisioning-jobs/api/v1/cron/health-check/api/v1/cron/deployment-monitorAll billing, cleanup, and non-lifecycle crons retained on Vercel.
.github/workflows/deploy-backend.ymlAdded
sudo systemctl restart milady-provisioning-workeraftereliza-cloudrestart, so the worker always picks up new code on deploy.INFRASTRUCTURE.md(new)Documents the full architecture:
VPS env sync (out of band)
Updated
/opt/eliza-cloud/.env.localdirectly:MILADY_DOCKER_IMAGE→v2.0.0-steward-8(was steward-7)ELIZA_CLOUD_AGENT_BASE_DOMAIN→milady.ai(was waifu.fun)MILADY_SANDBOX_PROVIDER=dockerMILADY_BRIDGE_INTERNAL_PORT=2138STEWARD_CONTAINER_URL=http://172.18.0.1:3200REDIS_URL/KV_URL(Upstash)MILADY_SSH_KEY(base64 encoded, replaces path-based var)The deploy workflow requires secrets not yet configured on this repo:
MILADY_VPS_HOSTMILADY_VPS_SSH_KEYNEON_DATABASE_URLDISCORD_WEBHOOKThese need to be added in Settings → Secrets → Actions before the deploy workflow will succeed.