Skip to content

Gatus

Gatus

License: Apache License 2.0

This guide is tested with Gatus 5.36.0 on Uberspace 8.0.76. We can't guarantee it to work with newer versions.

Gatus is a config-driven, automated status page with alerting and incident support. It offers monitoring URLs based on a variety of conditions, such as status, response time or certificate expiration, as well as push monitors for services not accessible by Gatus.


Note

For this guide you should be familiar with the basic concepts of:

Installation

Info

Since Gatus does not provide precompiled binaries, you may either build the binary on your own machine and then copy it to your asteroid or you may grab an unofficial binary for the latest version from digicommons/gatus-uberspace.

[isabell@moondust ~]$ mkdir ~/gatus && cd ~/gatus
[isabell@moondust gatus]$ wget https://github.com/digicommons/gatus-uberspace/releases/download/v5.36.0/gatus_v5.36.0_linux_amd64.tar.gz
[isabell@moondust gatus]$ tar -xzf gatus_v5.36.0_linux_amd64.tar.gz
[isabell@moondust gatus]$ rm gatus_v5.36.0_linux_amd64.tar.gz

If you did not compile the binary yourself, you may verify the checksum of the downloaded tarball before unpacking:

[isabell@moondust gatus]$ wget https://github.com/digicommons/gatus-uberspace/releases/download/v5.36.0/gatus_v5.36.0_linux_amd64.tar.gz.sha256
[isabell@moondust gatus]$ sha256sum -c gatus_v5.36.0_linux_amd64.tar.gz.sha256
gatus_v5.36.0_linux_amd64.tar.gz: OK

Configuration

Configure application

Create a configuration file (the application will fail to start without it):

[isabell@moondust ~]$ nano ~/config/config.yaml

Add at least one endpoint to the configuration file:

endpoints:
  - name: website
    url: "https://isabell.uber.space"
    interval: 5m
    conditions:
      - "[STATUS] == 200"

Register as service

Create a service:

[isabell@moondust ~]$ uberspace service add gatus "$HOME/gatus/gatus"

Set up web backend

Note

The default port for Gatus is 8080.

To make the application accessible from the outside, configure a web backend:

[isabell@moondust ~]$ uberspace web backend add / port 8080 --force

Tuning

Persist data

By default, Gatus stores uptime data and events in memory. To persist this data between system restarts, configure a storage backend, such as SQLite or PostgreSQL.

Secure status page with authentication

Your Gatus status page may contain information about sensitive endpoints. If you do not wish to expose the dashboard publicly, consider securing it with either Basic Auth or OpenID Connect (OIDC).

Updates

Note

Check the release feed regularly.

Stop the service, then simply replace the binary by repeating the installation instructions. Finally restart the service:

[isabell@moondust ~]$ systemctl --user stop gatus
[isabell@moondust ~]$ cd ~/gatus
[isabell@moondust gatus]$ wget https://github.com/digicommons/gatus-uberspace/releases/download/v5.36.0/gatus_v5.36.0_linux_amd64.tar.gz
[isabell@moondust gatus]$ tar -xzf gatus_v5.36.0_linux_amd64.tar.gz
[isabell@moondust gatus]$ rm gatus_v5.36.0_linux_amd64.tar.gz
[isabell@moondust gatus]$ systemctl --user start gatus