warden / service
Vigil
A public site. If it is down, visitors get nothing.
What it checks600 looks kept
- failingthe site answers0% of 120
GET https://vigil.80.225.209.190.sslip.io/ · every 120s · opens a problem after 2 failures in a row
expected 200, got 502
- failingthe process is up0% of 120
pm2 · vigil · every 120s · opens a problem after 1 failure in a row
pm2 says "stopped"
- passingthe certificate is not about to expire100% of 120
pm2 · · every 21600s · opens a problem after 1 failure in a row
63 days left, until 2026-12-13 (Let's Encrypt)
What it may do here
This is the whole list — there is nothing else Warden is able to do.
“Restart it if it is just stopped. Ask me before anything that does not undo itself. Three minutes between acts, not ten: this is the service the console lets visitors break on purpose, and it is put back more often than anything else here.” At most 3 actions on one problem, and no acting twice within 3 minutes.
| what | what it does | your rule |
|---|---|---|
| load the page | Asks a URL and reports the status and how long it took. Reads nothing else. | may |
| check the certificate | Reads the TLS certificate a URL is served with and reports how many days are left on it. | asks first |
| look up the name | Asks DNS what a URL's host name points at, so a name that stopped resolving is caught by name. | asks first |
| ask what answers | Fetches a URL without following it off-site and reports what answered: the status, the server, whether it is a proxy's error page. | asks first |
| list the processes | Lists the processes on the machine with their status, uptime and restart count. | may |
| read the log | Reads the last lines of a process's output and error logs. | may |
| read recent commits | Reads the recent commits in the checkout — what landed, when, and by whom. | may |
| read one commit | Reads one commit's diff, to see what a change actually did. | may |
| read a file | Reads one file from inside the service's checkout. It cannot read outside it. | may |
| search the code | Searches the checkout for a string, to find where something is configured. | may |
| check disk space | Reads how much disk is left, because a full disk looks like everything else. | may |
| restart the process | Restarts the process. Undoes itself: the same code comes back up. | may |
| start the process | Starts the process when it is stopped. Undoes itself. | may |
| run the tests | Runs the test suite in the checkout and reads the result. Changes nothing. | may |
| call the deploy hook | POSTs the deploy or restart hook the owner gave this service, which redeploys or restarts it. Undoes itself: the same code comes back. | asks first |
| roll back to the last deploy | Checks out the previous commit and restarts. This changes which code is running. | asks first |
| run a migration | Would run database migrations. Refused by name — a migration is not undone by a restart. | never, whatever your rules say |
| delete data | Would delete data. Refused by name. There is no incident this is the answer to. | never, whatever your rules say |
| rotate a secret | Would rotate a credential. Refused by name — it breaks everything still holding the old one. | never, whatever your rules say |
| destroy infrastructure | Would destroy infrastructure. Refused by name, and listed here so you can see it is. | never, whatever your rules say |
What you have told it
- Warden wants to start on Vigil. Approve? — you answered "approve": vigil is back up; close this out.2026-09-14
- Warden wants to start on Vigil. Approve? — you answered "approve": vigil is back up; close this out.2026-09-14
- Warden wants to start vigil on Vigil. Approve? — you answered "approve": restoring the fleet after a shoot.2026-09-14
- Warden wants to run the test suite on Vigil. Approve? — you answered "no": vigil is already back up.2026-09-14
What has gone wrong32 problems · 30 fixed without a human
- handed backthe site answers is failingexpected 200, got 502—
- newthe process is up is failingpm2 says "stopped"—
- fixedthe site answers is failingexpected 200, got 50285s
- fixedthe process is up is failingpm2 says "stopped"2m
- fixedthe site answers is failingexpected 200, got 50287s
- fixedthe process is up is failingpm2 says "stopped"88s
- fixedthe site answers is failingexpected 200, got 50241s
- fixedthe process is up is failingpm2 says "stopped"84s
- fixedthe site answers is failingexpected 200, got 50267s
- fixedthe process is up is failingpm2 says "stopped"2m
- fixedthe site answers is failingexpected 200, got 50250s
- fixedthe process is up is failingpm2 says "stopped"2m
- fixedthe site answers is failingexpected 200, got 50260s
- fixedthe process is up is failingpm2 says "stopped"81s
- fixedthe site answers is failingexpected 200, got 5022m
- fixedthe process is up is failingpm2 says "stopped"3m
- fixedthe site answers is failingexpected 200, got 5023m
- fixedthe process is up is failingpm2 says "stopped"3m
- fixedthe site answers is failingexpected 200, got 50210m
- fixedthe process is up is failingpm2 says "stopped"10m
- fixedthe site answers is failingexpected 200, got 50261s
- fixedthe process is up is failingpm2 says "stopped"2m
- fixedthe site answers is failingexpected 200, got 50235s
- fixedthe process is up is failingpm2 says "stopped"41s
- fixedthe site answers is failingexpected 200, got 50217m
- fixedthe process is up is failingpm2 says "stopped"14m
- fixedthe site answers is failingexpected 200, got 5025m
- fixedthe process is up is failingpm2 says "stopped"5m
- fixedthe site answers is failingexpected 200, got 50217s
- fixedthe process is up is failingpm2 says "stopped"23s
- fixedthe site answers is failingexpected 200, got 50239s
- fixedthe process is up is failingpm2 says "stopped"26m