hostnag vs Gatus
Gatus is a free, open-source, config-file-driven health dashboard in Go: HTTP, ICMP, TCP, DNS, STARTTLS, SSH and WebSocket checks judged by conditions on status, body, response time, certificate and domain expiry, at no subscription cost for anyone who runs it. One hosted timeline of what will break (certificates, domains, mail setup) and what is broken, checked from several locations, with nothing to run, patch or keep up yourself.
Free for five hosts. No card, nothing to install.
Side by side
Gatus read from its public documentation on 2026-09-17. Tell us if it changed.| What breaks | Gatus | hostnag |
|---|---|---|
| A host goes downwebsite, API, VPN, mail, gateway | Yes | Yes |
| Gatus: HTTP, ICMP, TCP, DNS, STARTTLS, SSH and WebSocket endpoints, each judged by its conditions. | ||
| A certificate expiresdays-before thresholds, daily inside the last window | Yes | Yes |
| Gatus: A [CERTIFICATE_EXPIRATION] condition on any endpoint that speaks TLS. | ||
| A domain lapsesregistration expiry from RDAP | Yes | Yes |
| Gatus: A [DOMAIN_EXPIRATION] condition, read over RDAP with an IANA WHOIS fallback. | ||
| A certificate is swappedfingerprint changed, wrong host, chain not trusted | Unknown | Yes |
| Gatus: The README documents certificate expiry; nothing says whether a fingerprint, hostname or chain change is detected. | ||
| A DNS record driftsexpected answer missing or changed | Yes | Yes |
| Gatus: A DNS endpoint asks a chosen server for a record and a condition compares the answer ([BODY]) with what you expect. | ||
| An ISP link dropsthe public address from several locations, by ping or a TCP port, confirmed by a ping from inside the site | Unknown | Yes |
| Gatus: ICMP endpoints ping from wherever Gatus runs; nothing documents an outside-plus-inside link check.hostnag: outside and inside | ||
| Mail stops being deliveredMX, SPF, DKIM, DMARC and blocklists, at the expiry cadence of your plan | Unknown | Yes |
| Gatus: STARTTLS endpoints reach a mail server; nothing documents SPF, DKIM, DMARC or blocklist checks. | ||
| Someone issues a certificate for your domainnew certificates in the transparency logs, daily | Unknown | Yes |
| Gatus: No certificate transparency log watch is in the README. | ||
| A scheduled job stops runningcron, backups, workers: a heartbeat that goes quiet | Yes | Yes |
| Gatus: External endpoints are pushed to Gatus, with a heartbeat interval that alerts when the updates stop. | ||
| Your nameservers or registrar changenameservers, registrar, DNSSEC, certificate issuer, DNS answers, redirect targets | Partly | Yes |
| Gatus: A DNS endpoint can assert an NS answer; nothing documents watching the registrar, DNSSEC or redirect targets. | ||
| A vendor you depend on has an incidenttheir status page read for an outage or degraded state, the incident named | Unknown | Yes |
| Gatus: Nothing in the README reads a vendor's status page.hostnag: read from their own status page | ||
UNKNOWN means their documentation did not say either way on the day we read it. PARTLY is covered with a limit noted in the cell.
What Gatus has that we don't
- Self-hosting under the Apache-2.0 license: one Go binary or container, configured from a YAML file, no subscription.
- Conditions on the response body with JSONPath, on the resolved IP and on the response time, usable as acceptance tests.
- SSH and WebSocket endpoints, Prometheus metrics and dozens of alerting providers.
Switching
- 01Your endpoints are already a list: the endpoints section of the Gatus config file, one row each.
- 02Put them in a CSV with at least the columns type and target (name, interval, port, keyword, expected_status and record_type are optional; the import dialog links a template) and upload it in the import dialog.
- 03HTTP endpoints become http monitors (a [STATUS] condition maps to expected_status, a [BODY] pattern to keyword), TCP endpoints tcp, DNS endpoints dns with their record_type, STARTTLS endpoints tls_cert.
- 04Ping (ICMP) monitors carry over as Ping monitors, run from hostnag's own probes.
- 05External endpoints become heartbeats with a new hostnag ping URL to point the job at; a [DOMAIN_EXPIRATION] condition becomes a domain_registration row of its own.
- 06SSH and WebSocket endpoints have no counterpart in hostnag; watch the port instead.
- 07Check intervals snap up to the nearest hostnag preset (1, 5, 15, 60, 360 or 1440 minutes).
- 08Monitors are created up to your plan's limit; the rest stay listed in the preview so nothing is lost silently.
Pricing
Free and open source under the Apache-2.0 license; there is no subscription, only the machine you run it on.Free
$0/ moFor your own handful of hosts.
- Monitors
- 5
- Groups
- 1
- Status pages
- 1
- Seats
- 1
- Every
- 5min
- Locations
- 1
- History
- 30days
- Channels
Pro
$19/ moFor a team's sites, APIs and gateways.
- Monitors
- 50
- Groups
- 10
- Status pages
- 10
- Seats
- 5
- Every
- 1min
- Locations
- 3
- History
- 90days
- Channels
- Email, Slack, Discord, Microsoft Teams, Telegram, Webhook
Business
$79/ moFor many groups: clients, products or offices.
- Monitors
- 500
- Groups
- ∞
- Status pages
- ∞
- Seats
- 25
- Every
- 1min
- Locations
- 5
- History
- 365days
- Channels
- Email, Slack, Discord, Microsoft Teams, Telegram, Webhook, SMS, PagerDuty, Opsgenie
Sources
Read on 2026-09-17.Bring your Gatus monitors. Hear about the next outage first.
Start free