A small uptime checker
It asks a short list of public websites whether they are still there, every five minutes, from a server in Finland.
I started it because I kept hitting the same question: is the site down, or is it me? Plenty of services answer that already. I wanted the checks to run somewhere that isn't my own network, and I wanted to keep the raw numbers instead of somebody's dashboard.
What it does
- One HTTP GET per target, every five minutes, ten-second timeout.
- Records the status code and the total response time.
- Counts how many checks have run and how many came back wrong.
That is the whole thing. No alerting, no accounts, no history graphs. If a target is down the page says so; nothing emails anyone.
What it doesn't do
- No history beyond the running counters. Restarting the checker resets them. I keep meaning to fix that and keep not doing it.
- No IPv6 checks. The server has an address, I just haven't wired it up.
- Response time is measured from Finland only, so it tells you about the target and about the route from here, and it can't tell you which of the two moved.
How it runs
One VPS, nginx, a shell script and a systemd timer. The script rewrites a JSON file, the page reads it. There is no database and no application server — the whole site is static files.
curl -sS -o /dev/null --max-time 10 \
-w '%{http_code} %{time_total}' "$url"
The public list is short on purpose — it is meant to be polite to the targets. Most of what this box actually watches is my own infrastructure, and those checks are not published here.
Who runs it
One person, in spare time. There is no company behind this, no support, and no guarantees about anything. If it stops working I will probably notice eventually.