Websites and APIs
Three answers in a row are wrong, or slower than the limit its file sets.
How it is watched
An address is asked on the schedule its file sets, from the machine it runs on.
Dokkit watches your servers, jobs, logs and errors from a server you host yourself, and keeps the list short. In the sample below, 3 of 60 checks need you.
Put the server on at .
Then on each machine you want watched:
The real first screen, on a made-up company. Open a row, snooze it, mark it seen.
When each thing needs you. Open a card to see how it is watched.
Three answers in a row are wrong, or slower than the limit its file sets.
An address is asked on the schedule its file sets, from the machine it runs on.
It does not start on time, fails, or runs longer than you allow.
The job reports a start and an end, or is wrapped with dokkit run.
One stops, or fewer are running than the count you set.
Windows services, systemd units, ports and named processes.
A disk is on course to fill, or a certificate expires within 30 days.
Read on every machine with the dokkit program.
Never by itself. Logs are for looking things up, one click from each item.
Files it is pointed at, apps that log to Seq, and the libraries. Kept a year, then archived.
Never by itself. What is new since the last deploy is one click away.
From the library, or from Sentry's own SDKs, grouped by type and place.
Never by itself. What broke since the last deploy is one question.
The version each app reports. When it changes, that is a deploy.
A machine that goes down is one page, not one for every service on it. An issue closes itself when the thing recovers.
An app describes itself in a dokkit.toml in its own repo. Hand an agent one link and it can do the wiring: write the file, add the library in your language, and prove it with dokkit check, before any server exists.
You decide who hears about what, per service: a page for the job that must run, a push for the slow portal, the morning digest for the rest. On a phone, a read-only app shows it all through a relay the server dials out to.
The program on each machine opens no port. Updates reach it over a connection it makes itself, and only the ones you approve. Releases are signed, and you can check one yourself. It runs on Postgres on your own hardware.