Gatus

Automated developer-oriented status page with alerting and incident support.

Accessing Gatus

  • Open your browser and visit: https://<SERVER_IP>
  • A browser SSL warning is expected (self-signed certificate)
  • Authentication is required (Basic Auth popup)
  • Authentication method: HTTP Basic Auth
  • Credentials are stored securely in: /root/.cloudzy-creds

Important Files and Directories

  • Install directory: /opt/gatus
  • Docker Compose: /opt/gatus/docker-compose.yml
  • Environment file: /opt/gatus/.env
  • Config directory: /opt/gatus/config/
  • Main config file: /opt/gatus/config/config.yaml
  • Database directory: /opt/gatus/data/db
  • Nginx config: /etc/nginx/sites-available/gatus.conf
  • Enabled Nginx site: /etc/nginx/sites-enabled/gatus.conf
  • SSL certificates: /etc/nginx/ssl/
  • HTTP Basic Auth file: /etc/nginx/auth/.gatus-htpasswd
  • Credentials file: /root/.gatus-credentials

Configuration Behavior

  • Configuration files are located in /opt/gatus/config/
  • YAML can be split into multiple files
  • Changes are auto-reloaded
  • No restart is required after edits

Manage the Stack

Go to the installation directory:

cd /opt/gatus

Common Docker Compose commands:

# Check status
docker compose ps

# View logs (follow live)
docker compose logs -f

# Restart all services
docker compose restart

# Stop services
docker compose down

# Start again
docker compose up -d

Disable HTTP Basic Auth in Nginx (Optional)

Edit the Nginx site file: /etc/nginx/sites-available/gatus.conf

Remove or comment out these lines:

auth_basic "Restricted";
auth_basic_user_file /etc/nginx/auth/.gatus-htpasswd;

Reload Nginx:

systemctl restart nginx

Enabling SSL with a Domain

1. Point your domain to the server IP.

2. Edit Nginx config and replace both server_name <IP>; with your domain (<your-domain>) for both HTTP (port 80) and HTTPS (port 443) blocks:

vim /etc/nginx/sites-available/gatus.conf

3. Install Certbot:

apt install -y certbot python3-certbot-nginx

4. Run the following command to generate a valid Let’s Encrypt certificate:

certbot certonly --nginx --non-interactive --agree-tos --email [email protected] -d yourdomain.com

5. Replace SSL paths in Nginx config:

vim /etc/nginx/sites-available/gatus.conf
# Before:
    # ssl_certificate       /etc/nginx/ssl/fullchain.pem;
    # ssl_certificate_key   /etc/nginx/ssl/privkey.pem;
# After:
    # ssl_certificate       /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
    # ssl_certificate_key   /etc/letsencrypt/live/yourdomain.com/privkey.pem;

6. Restart Nginx to apply the changes:

systemctl restart nginx

7. Open your browser and visit: https://yourdomain.com

Application Details