zeabur-update-service
Zeabur Update Service Without Redeploy
Always use
npx zeabur@latestto invoke Zeabur CLI. Never usezeaburdirectly or any other installation method. Ifnpxis not available, install Node.js first.
Workflow
# 1. Get service ID (use the `zeabur-service-list` skill)
npx zeabur@latest service list --project-id <project-id> -i=false
# 2. Check current variables
npx zeabur@latest variable list --id <service-id> -i=false
# 3a. Add new variables (errors if key already exists)
npx zeabur@latest variable create --id <service-id> \
--key "KEY1=value1" \
--key "KEY2=value2" \
-i=false -y
# 3b. Update existing variables (only updates specified keys)
npx zeabur@latest variable update --id <service-id> \
--key "KEY1=new_value1" \
-i=false -y
# 4. Restart service (use the `zeabur-restart` skill for details)
npx zeabur@latest service restart --id <service-id> -y -i=false
Caveats
| Issue | Solution |
|---|---|
${VAR} references |
Set in Dashboard, not CLI (shell expands to empty) |
Update Image Tag (Upgrade / Downgrade Service Version)
For prebuilt/marketplace services, update the image tag to switch versions.
This is the ONLY correct path for version upgrades or downgrades. Do NOT use
zeabur-deploy(or any redeploy / delete-and-recreate flow) as a substitute — those flows can orphan or wipe the service's mounted disk. A tag update triggers a clean redeploy with the new image while the volume stays attached.
Workflow
# 1. Get service ID (use the `zeabur-service-list` skill)
npx zeabur@latest service list --project-id <project-id> -i=false
# 2. Update tag (triggers redeploy automatically)
npx zeabur@latest service update tag --id <service-id> -t <new-tag> -y -i=false
Flags
| Flag | Description |
|---|---|
--id |
Service ID (required, do not use --name) |
-t, --tag |
New image tag to deploy |
--env-id |
Environment ID (optional, resolved automatically) |
-y, --yes |
Skip confirmation |
Note: Updating the tag triggers a new deployment. The service will restart with the updated image.
When to Use
- Fix environment variable typos
- Add missing config
- Change ports, URLs, credentials
- Upgrade a prebuilt service to a newer version
- No need to redeploy entire template
More from zeabur/zeabur-claude-plugin
zeabur-deployment-logs
Use when viewing service runtime or build logs. Use when user says "show logs", "why did deploy fail", "check build output", or "debug runtime error".
54zeabur-template
Use when creating, editing, validating, or troubleshooting a Zeabur template YAML. Use when converting docker-compose to Zeabur template. Do NOT use for deploying templates (use zeabur-template-deploy instead).
53zeabur-restart
Use when restarting a Zeabur service. Use when user says "restart", "reboot service", or "service is stuck/frozen".
53zeabur-domain-url
Use when services need public URL for redirects or CORS. Use when WEB_URL or similar has trailing slash issues. Use when user reports "redirect goes to wrong URL", "CORS error", or "trailing slash problem". Also use when user says "add domain", "set up domain", "bind domain", "create domain", or "manage domains" for a Zeabur service.
52zeabur-variables
Use for ALL Zeabur environment variable operations — create, list, update, delete, or troubleshoot. Use when user says "set env var", "add variable", "create variable", "update variable", "delete variable", "change env var", or "why is my variable empty". Also use when variables are empty or SERVICE_NOT_FOUND errors.
51zeabur-startup-order
Use when service fails with Connection refused to database or redis. Use when API crashes because DB not ready.
47