Upstate

For apps deployed with Kamal

Kamal deploys. Upstate verifies.

Know whether your deploy reached every instance and passed its health checks. Upstate watches production independently, records the result, and keeps watching after you close your laptop.

Early access · No card required · Keep deploying with Kamal

Example Deployment Receipt

Example app / production

Deployment needs attention

a84fd21

2 of 3 instances updated. The job worker on prod-01 is still running the previous version.

Kamal completed
2 minutes ago
Instances updated
2 / 3
External HTTP
Healthy · 184 ms
Application probe
Healthy

job · prod-01

Expected a84fd21 · Observed 7cf310a

Example receipt: a deploy finished, but one worker did not update.

Verify every deploy

See the version running on each web process and worker. A receipt tells you whether the rollout completed and your configured health checks passed.

Keep watching production

Get alerted when an app becomes unavailable, a worker stops, or a server runs low on resources. Upstate keeps checking between deployments.

Give your coding agent context

Use the CLI or read-only MCP tools to ask what happened during a deploy. Your coding agent gets recorded versions, health checks and alerts to work from.

Getting connected

Connect your app. Deploy as usual.

Run the Upstate CLI from your existing Kamal project. It connects your app, sets up deployment reporting, and helps install the observer on your servers.

  1. 01 / Connect your app

    Run upstate connect

    Review the setup before applying it. Existing hooks are preserved. Dynamic Kamal configuration may need a few explicit values or a generated snippet.

  2. 02 / Deploy with Kamal

    Use your normal deploy command

    Kamal reports the version you are deploying. The observer checks which versions are actually running on your servers.

  3. 03 / Read your receipt

    See whether production matches

    Open the receipt in Upstate or run upstate receipt. See which instances updated, whether health checks passed, and anything that needs attention.

Web processes, workers and the services they rely on.

Upstate works with Docker apps deployed by Kamal, including Rails, Go and Phoenix. Shared PostgreSQL, Redis and proxy containers are available when you need to investigate a problem.

Look inside your Rails app

An optional Rails endpoint checks database connectivity and Solid Queue activity. See jobs waiting and active workers alongside the deployment receipt.

The endpoint reports health and counts, without job arguments or customer data.

Server access

Read-only by design.

Upstate does not deploy, restart containers, or accept remote shell commands. The agent opens no inbound network listener. Credentials are dedicated and revocable.

The observer needs access to the Docker socket. That access is privileged, even with a read-only mount; install it only on servers you administer.

What leaves your server

CPU, memory and disk usage; container status; image versions; health checks; and selected Docker labels.

What the agent does not upload

Environment variables, secrets, application logs, or database contents.

Receipt history is available for seven days on Free and ninety days on Solo.

Predictable pricing

Start on Free. Your first verified deployment starts a seven-day Solo preview—no card required. After the preview, keep one app on Free or upgrade for more apps and history.

Solo checkout is coming soon. You can use Free and the preview now.

Free

$0 / month

One app · One user · Seven days of receipt history

Deployment Receipts, public HTTP checks, basic alerts, and read-only MCP.

Solo

$19 / month

Up to ten apps · Ninety days of receipt history

Everything in Free, with more room for your apps and their history.

Know what reached production.

Keep your deployment workflow. Add a receipt you can come back to tomorrow.

Get started with Upstate
Upstate · For apps deployed with KamalYour apps stay on your servers.