ServerShelf 1.5.0 for macOS is out. It is about the uptime checks, which so far only spoke HTTP and TCP. While writing the comparison with Dejal Simon, the list of things Simon watches and we did not got long enough to do something about it. Here is what changed.
Seven new check kinds
Next to HTTP and TCP, a check can now be a ping, a DNS lookup with an expected address, or a mail server greeting over SMTP, IMAP or POP3, with TLS from the first byte on 465, 993 and 995. Two kinds run on one of your servers over SSH: a script, where exit code 0 means up and the output becomes the error text, and a log pattern, a regular expression searched in the journal since the last run or in a file. New matching lines mark the check down until an interval passes without one.
Rules on the response
Every kind that returns text runs through the same rules. The required and forbidden substrings were already there. New is a number rule: a regular expression picks a value out of the response, and the check is down when the value leaves the min/max range or is missing. Queue length in a JSON health endpoint, a temperature on a status page, the free space a script prints. And change detection: ServerShelf keeps a hash of the content, or of a part you select with a regular expression, and sends a "changed" notification when it differs. That is not an outage, so it does not open an incident; it gets its own message and, if you want, its own channels.
Test before you save
The editor has a "Test now" button. It runs the draft once without saving it and shows status, latency, the response headers and the first part of the body. Writing a keyword or number rule against a page you can see beats guessing.
Pause windows
A check can be paused until a date and time, or every week on selected days, or every day between two times. A window that crosses midnight belongs to the day it starts on, so "Friday, 22:00 to 06:00" means Friday night. Deploy hours and backup runs stop producing alerts.
History, availability, reports
Every run is now stored for 90 days. The list shows availability over 24 hours, 7 days and 30 days, and a history strip per check with the last runs. Three reports can be saved: a CSV summary, all runs as CSV, and a self-contained HTML page with the same tables, for a wiki or a folder next to the status page.
Email, sound and speech
Notifications can go out through your own SMTP server, with STARTTLS, TLS from the start, or plain for an internal relay. On this machine, a short system sound and the spoken alert title are two more channels. Recovery and change notifications can use a different set of channels than the down alert, so a recovery can stay quiet while an outage still rings the phone.
Compatibility
1.5.1, a few hours later, fixes three things seen in the first build: the editor's tab bar shrank under the header in a short window, a checked channel chip looked unchecked, and the report menu sat above the dialog. The ntfy channel now says so when the topic is empty instead of answering "400 Bad Request".
The database gains a few columns and a history table; the migration runs on first start and keeps every existing check. Settings saved by older versions load unchanged, with the new channels off. The companion app does not change in this release; its 0.3.6 build stays current. Windows and Linux builds follow through the usual pipeline.