Monitor your infrastructure.
Config-as-code status page — monitor HTTP, TCP, DNS and ICMP endpoints from a single YAML file, with 40+ alert integrations. Under 256 MB RAM, no database.
Gatus (~11.7 k GitHub stars, Apache 2.0, Go) is a self-hosted health dashboard and public status page driven entirely by a YAML configuration file. You list your endpoints — HTTP URLs, TCP addresses, DNS resolvers, ICMP hosts — alongside the conditions that define "healthy" (status code, response time, body content, certificate expiry), and Gatus polls them on a configurable interval and publishes the results as a clean, shareable status page.
Self-hosting Gatus on a ServOrbit VPS gives you a private status page and monitoring hub with no third-party account and no monthly fee. A single Go binary runs in one Docker container using under 256 MB of RAM, persisting check history in a SQLite database — no PostgreSQL, no Redis, no complex infrastructure. The YAML config file lives on your VPS at `/opt/stacks/gatus/config/config.yaml`: edit it and restart the container to add or update monitored endpoints.
Gatus includes 40+ alerting integrations — Slack, PagerDuty, OpsGenie, Discord, Teams, ntfy, Pushover, email and more — that notify you the moment an endpoint goes down or recovers. The status page is clean enough to share publicly with customers or colleagues, and developer-friendly enough to be version-controlled alongside your infrastructure as code.
Add your API, website, CDN and payment provider URLs as Gatus endpoints with HTTP conditions. Gatus polls them every minute and renders a public status page — customers check service health without emailing support, and you get instant Slack or ntfy alerts the moment any endpoint degrades. Version-control the YAML file alongside your infrastructure and update it with every new service you ship.
Monitor internal services unreachable from external probes: staging APIs, private dashboards, PostgreSQL reachability, SSL certificate expiry on internal domains. Gatus runs on the same VPS network as your stack — it can reach http://localhost:3000 or tcp://db:5432 and alert on degradation before users notice. Team members bookmark the internal Gatus URL instead of SSHing in to check service logs.
Add any HTTPS endpoint and a [CERTIFICATE_EXPIRATION] > 14d condition. Gatus checks the TLS certificate on every poll and triggers a Slack, Discord, or ntfy alert when fewer than 14 days remain. Never lose a domain to an expired certificate again — the alert arrives days before renewal is urgent, with enough time to act without scrambling.
Guide optimized for ServOrbit Cloud VPS.
Any plan with 512 MB RAM is sufficient — Gatus idles under 256 MB RAM and has no GPU or database dependency. For the most accurate uptime checks, place Gatus on a separate VPS from the services it monitors: if the application VPS goes down, the monitoring VPS can still alert you.
Open your ServOrbit dashboard → Marketplace → Monitoring → Gatus → Deploy. An init container writes a sample config file and Gatus starts within seconds. It listens on the VPS loopback only: if you attached a domain, the status page is served at https://your-domain over HTTPS, with no port number; otherwise open an SSH tunnel — ssh -L 8080:127.0.0.1:8080 root@your-vps-ip, using the port shown on your app's page in the ServOrbit dashboard — and browse to http://localhost:8080.
SSH into your VPS and edit /opt/stacks/gatus/config/config.yaml. Replace the sample endpoint with your services: URLs, TCP ports, DNS checks or ICMP hosts. Restart Gatus with cd /opt/stacks/gatus && docker compose restart gatus — the new endpoints appear on the status page within seconds.
Add an alerting: block to your config with your preferred channel — Slack webhook, Discord webhook, ntfy server URL or email. Each endpoint specifies alerts: [{type: slack, failure-threshold: 2}] so Gatus only alerts after two consecutive failures, filtering out transient blips before paging your team.
The status page is ready to share, but without a domain it is reachable only through your own SSH tunnel. Attach a subdomain — status.your-domain.com — to the app from your ServOrbit dashboard: ServOrbit puts an nginx vhost with a TLS certificate in front of Gatus and proxies it to the app port, so your customers open https://status.your-domain.com directly, with no port number.
Maintaining a project that uses Gatus? This button lets your readers deploy it on a VPS in one click, without reading Docker documentation.
[](https://servorbit.com/vps-cloud?template=gatus&utm_source=deploy-badge&utm_medium=referral&utm_campaign=gatus)<a href="https://servorbit.com/vps-cloud?template=gatus&utm_source=deploy-badge&utm_medium=referral&utm_campaign=gatus"><img src="https://servorbit.com/brand/deploy/button.svg" alt="Deploy Gatus on ServOrbit" height="40"></a>The button points to a VPS order with the template preselected. The image is served from servorbit.com — nothing to host on your side.
Visualize the metrics of your infrastructure and applications. Customizable dashboards, multi-channel alerts, multiple sources.
Monitoring & ObservabilityReal-time metric collection and querying. The de facto standard for monitoring Kubernetes, Docker and microservices.
Monitoring & ObservabilitySimple, visual availability monitoring. Watch your HTTP, TCP and DNS endpoints and receive instant alerts.
Browse our help center and FAQ, or reach our team — callback, WhatsApp or email. Support in French, English and Arabic.