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. Checks from several locations, with certificates, domains and mail setup on one hosted timeline and no instance of your own to run or patch.
14 days of Pro to start, then free for 20 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 an internal device | Unknown | Yes |
| Gatus: ICMP endpoints ping from wherever Gatus runs; nothing documents an external-plus-internal link check.hostnag: external and internal | ||
| 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. | ||
| 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/ mo$0/ yrFor your own handful of hosts.
- Monitors
- 20
- Beacons
- 2
- Groups
- 3
- Status pages
- 1
- Seats
- 3
- Every
- 5min
- Locations
- 1
- History
- 30days
- Channels
- Email, Slack, Discord, Microsoft Teams, Telegram, Webhook
- More
- No packs
Pro
$19/ mo$190/ yrFor a team's sites, APIs and gateways.
- Monitors
- 100
- Beacons
- 10
- Groups
- 25
- Status pages
- 10
- Seats
- 10
- Every
- 1min
- Locations
- 3
- History
- 90days
- Channels
- Email, Slack, Discord, Microsoft Teams, Telegram, Webhook, PagerDuty, Opsgenie
- More
- Packs of 100 monitors at $15 a month, up to 4; packs of 10 beacons at $10 a month, up to 9
Business
$79/ mo$790/ yrFor many groups: clients, products or offices.
- Monitors
- 500
- Beacons
- 100
- Groups
- ∞
- Status pages
- ∞
- Seats
- ∞
- Every
- 1min
- Locations
- 5
- History
- 365days
- Channels
- Email, Slack, Discord, Microsoft Teams, Telegram, Webhook, PagerDuty, Opsgenie, SMS
- More
- Packs of 100 monitors at $15 a month, as many as you need; packs of 10 beacons at $10 a month, as many as you need
Sources
Read on 2026-09-17.Bring your Gatus monitors. Hear about the next outage first.
Start free