Managing Apps
Everything you can do to an app after it’s deployed. In the dashboard each app row has Logs / Restart / Stop / Delete; the same actions are API calls below.
List your apps
curl -s $API/apps -H "authorization: Bearer $TOKEN"
Returns { apps: [{ id, name, image, domain, port, status, container_id, created_at }] }.
App details (+ recent deployments)
curl -s $API/apps/<appId> -H "authorization: Bearer $TOKEN"
Includes the app, its webhook (for repo apps), and the last 20 deployments with status and errors. Encrypted secrets/tokens are never included.
Logs
Snapshot (last N lines, default 200, max 2000):
curl -s "$API/apps/<appId>/logs?tail=500" -H "authorization: Bearer $TOKEN"
Live stream (WebSocket) — the dashboard “Logs” button uses this:
wss://api.cynchro.cloud/apps/<appId>/logs/stream?token=<accessToken>
Restart / Stop / Delete
curl -s -X POST $API/apps/<appId>/restart -H "authorization: Bearer $TOKEN"
curl -s -X POST $API/apps/<appId>/stop -H "authorization: Bearer $TOKEN"
curl -s -X DELETE $API/apps/<appId> -H "authorization: Bearer $TOKEN"
- Restart — recreate the container(s) in place.
- Stop — stop the container(s); the app stays defined (status
stopped). - Delete — remove container(s), the private network (multi-service), staged secret files, and the app’s images from the registry. The app row is soft-deleted (
removed).
For multi-service apps these act on all services at once.
Statuses you’ll see
| Status | Meaning |
|---|---|
queued / pending | accepted, waiting for the worker |
deploying | building/pulling and starting |
running | live |
stopped | stopped on purpose |
failed | terminal failure — see last_error / deployment error |
removed | deleted |
Self-healing
A reconciler checks every ~30s. If a running app’s container died or vanished, it’s automatically restarted/redeployed — you don’t need to do anything.
Limits & quotas
- Per-container limits:
cpu(cores, default 1, max 8) andmemory(MB, default 512, min 64, max 16384). Set them per app or per service. - App quota: each org has a
max_appscap (default 10). Creating a new app over the limit returns403 quota_exceeded. Redeploys of existing apps are exempt.
→ Errors explained: Troubleshooting