Video coming soon…

✅ Setup Gatus — Automated Health Dashboard

Deploy a developer-oriented health dashboard that monitors endpoints and alerts when services degrade, with YAML-driven configuration.

⚠️ This script is provided for demo and testing purposes only. Not intended for production use.

📦 Resources & Setup Scripts

Grab the automated bash script from GitHub to follow along with the video.

Automated install — Gatus health monitoring running in one command.
View on GitHub

Quick Install:

wget https://raw.githubusercontent.com/mhmdali94/Docker/main/monitoring/gatus/gatus-ubuntu.sh
chmod +x gatus-ubuntu.sh
sudo bash gatus-ubuntu.sh

Tutorial Steps

1 Download & Run the Installer

The script installs Docker, pulls the Gatus image, and starts the container with a default configuration file. Gatus will be available on port 8080 and will begin checking the preconfigured example endpoints immediately.

wget https://raw.githubusercontent.com/mhmdali94/Docker/main/monitoring/gatus/gatus-ubuntu.sh
chmod +x gatus-ubuntu.sh
sudo bash gatus-ubuntu.sh

2 Access the Dashboard

Open your browser and navigate to the Gatus dashboard. You will see the health status of all configured endpoints displayed with current status, response time history, and uptime percentage.

http://<your-server-ip>:8080

3 Configure Endpoints

Edit the config.yaml file to add your own endpoints. Gatus supports HTTP, TCP, DNS, and ICMP checks with flexible condition expressions. After editing, restart the container to apply changes.

endpoints:
  - name: My API
    url: https://api.example.com/health
    interval: 30s
    conditions:
      - "[STATUS] == 200"
      - "[RESPONSE_TIME] < 500"
  - name: Internal DB
    url: tcp://db.internal:5432
    interval: 1m
    conditions:
      - "[CONNECTED] == true"

4 Set Up Alerting

Configure alert providers in config.yaml to receive notifications when endpoints fail. Gatus supports Slack, Telegram, PagerDuty, Discord, and email. Set failure-threshold and success-threshold on each endpoint to control when alerts fire and resolve.

alerting:
  slack:
    webhook-url: "https://hooks.slack.com/services/YOUR/WEBHOOK/URL"
    default-alert:
      failure-threshold: 3
      success-threshold: 2

Ports Used

PortPurpose
8080Gatus Web UI & Dashboard

Overview

Gatus is a developer-centric automated health monitoring tool that performs HTTP, DNS, TCP, and ICMP checks on configurable endpoints. It displays results on a built-in status dashboard and sends alerts via Slack, PagerDuty, email, and more when checks fail — all configured via a single YAML file.

Why Use It

Gatus combines uptime monitoring with a public status page in a single lightweight container. Unlike Uptime Kuma (UI-driven), Gatus is entirely config-as-code, making it ideal for GitOps workflows and teams who prefer version-controlled monitoring configurations.

When You Need It

    Who Should Use It

      Real Use Cases

        Main Features

          How to Use After Installation

            Security Best Practices

              Ports and Firewall Notes

              Gatus runs on port 8080. Place it behind a reverse proxy with a custom domain for the public status page. If monitoring internal services, ensure the Gatus container has network access to those services within your Docker network or VPN.

              Backup and Maintenance

                Common Mistakes

                  Troubleshooting

                    Alternatives

                    Alternatives include Uptime Kuma (UI-driven, no code), Cachet (status page only, no monitoring), Freshping (cloud), and Prometheus with Blackbox Exporter (powerful but complex). Choose Gatus for code-based monitoring configuration with a built-in status page.

                    When Not to Use It

                    Avoid Gatus if your team prefers a web UI for adding monitors — Uptime Kuma is much more accessible. Also avoid if you need advanced monitoring with metrics, graphs, and dashboards — the Prometheus stack is more powerful for that use case.

                    PrismaTechWork Professional Help

                    PrismaTechWork provides end-to-end infrastructure services — from initial deployment and security hardening to ongoing monitoring, automated backups, and dedicated support. Whether you need a single-server setup or a multi-site network, our team ensures your infrastructure is built right, secured properly, and maintained reliably.

                      Contact Us

                      Frequently Asked Questions

                      How do I add a new service to monitor?

                      Edit the config.yaml file and add a new entry under the endpoints section. Specify the name, URL, interval, and conditions to check. Restart the Gatus container to apply the new configuration. The service will appear on the dashboard and begin health checks immediately.

                      What types of health checks does Gatus support?

                      Gatus supports HTTP and HTTPS checks (with response code, body, and header conditions), TCP checks (verify a port is open), DNS checks (verify a domain resolves correctly), and ICMP ping checks (verify host reachability). Each check type is configured in the endpoint URL scheme.

                      Can Gatus validate the HTTP response body?

                      Yes. In the conditions field of an endpoint, you can check that the response body contains a specific string using the body condition. You can also check the status code, response time, certificate expiry, and response headers.

                      How do I set up Slack alerts?

                      Create an incoming webhook in your Slack workspace settings. In the Gatus config.yaml, add a slack alert provider under the alerting section with the webhook URL. Then add alert conditions to each endpoint specifying the failure threshold before an alert fires.

                      Does Gatus store historical uptime data?

                      Yes. Gatus stores check results in an SQLite database by default, enabling the status dashboard to show historical uptime percentages and response time trends. You can also configure PostgreSQL as the storage backend for higher-volume deployments.

                      Can I generate uptime badges for my GitHub README?

                      Yes. Gatus generates badge-format status images at a well-known URL per endpoint. Embed the badge URL in your README markdown and it will show a live green or red indicator of your service health, automatically updated by Gatus.

                      Is Gatus configuration stored in a database?

                      No — Gatus is entirely config-as-code. All monitoring configuration lives in a single config.yaml file. This makes it easy to version control in git, share with teammates, and deploy with configuration management tools. Check result history is stored in SQLite or PostgreSQL separately.

                      Can I password-protect the Gatus dashboard?

                      Yes. Gatus supports basic HTTP authentication on the dashboard. Add a security section to config.yaml with a username and password. You can also rely on your reverse proxy to enforce authentication, which is often more flexible and supports SSO.