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.
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.
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.
Over SSH, against the machine you actually run on. 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.
Adding a teammate costs nothing. You pay for what Muster watches.
One app, checked as often as you like.
For a small team running a handful of services.
For an agency running many client apps at once.