Is the database up?
Opens a real connection to the host and port your app will use. Not a ping — a connection.
Opens a real connection to the host and port your app will use. Not a ping — a connection.
Requests the health endpoint and requires a 2xx. A 503 is a failure, not a warning.
Names every missing key. Presence only — Muster never reads or stores what a secret contains.
Runs the status command, never the migrate command. A check that mutates your database is not a check.
Any command you name has to exit 0. The escape hatch for the thing only you know.
Asks the OpenTofu state, not the cloud console — state is what the apply actually wrote.
Compares the device behind your data path against the root disk. Invisible until the instance is replaced.
The timer being enabled is not the bar. Muster runs the restore and requires it to verify.
Blocked at env-complete. Traffic was not cut over.
The gate said which key was missing. The workspace opens on the file that declares it — editor, terminal and your own coding agent, against the machine the check just ran on.
Re-run6 of 6 gates satisfiedcutover · clear
Almost nothing breaks because the code was wrong. It breaks because a key was missing, the database was not up, migrations had not run, or the disk holding your data dies with the instance.
Muster reads your app, works out the infrastructure it needs, and verifies every one of those preconditions on the machine itself before traffic is cut over. What it could not verify comes back as not verified — named, with the reason. It is never counted as a pass.
No card required. Read-only — it observes your server, it never changes it.
Each answer decides whether the next question is even asked. The database has to be reachable before migrations are worth checking; migrations have to be at head before health means anything.
Not by convention, and not with a warning someone can merge past. The cutover is downstream of the gate, so a failed check physically cannot reach it.
The order is the point. Each answer decides whether the next question is even asked.
Point Muster at the code. It works out the services, databases, queues, environment keys and migrations — and tells you every single thing it had to guess, so nothing is decided behind your back.
On the machine itself — through the agent you install, or over SSH. Is the database reachable? Are migrations applied? Is the data on a disk that survives the instance? Has the backup ever been restored?
Each answer gates the next. Nothing reaches your customers until every precondition holds — not by convention, but because the check physically cannot get there.
Muster runs against your account, not ours. It never stores a cloud key, an SSH key, or the value of any secret — it verifies that your environment variables are present, never what they contain. The infrastructure code it writes is yours: plain OpenTofu you can read, keep, and take with you if you stop paying us.
The agent runs on your server, not on ours. It asks us for work rather than waiting to be asked, so there is no inbound port to open and no key of yours for us to hold. Every check runs on the machine your app runs on.
Run every check your app needs. How many there are is never the price — the number of preconditions is a fact about your architecture, not about what you owe us. What you pay for is how much Muster watches, and how long it keeps the record.
One app on one server. Every gate, run as often as you like.
1 app · 7 days of history
For a team running a handful of services in one environment.
5 apps · 30 days of history
For more than one environment, and for keeping the record of what happened.
unlimited apps · history kept for good
For the change-management evidence an auditor asks for. Being built — talk to us first.
unlimited apps · history kept for good
Every price is on this page. The free tier takes no card, does not expire, and holds back none of the gates. Anything marked soon is work we have not finished — it is on the card so you can see where a tier is going, and it is not part of what you would be paying for today.