Skip to content

Gatus

Purpose: Gatus Service Status Server.

Docker Configuration

docker-compose.yml
version: "3.9"
services:
  postgres:
    image: postgres
    volumes:
      - /srv/containers/gatus/database:/var/lib/postgresql/data
    ports:
      - "5432:5432"
    env_file:
      - stack.env
    networks:
      docker_network:
        ipv4_address: 192.168.5.9
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-postgres} -d ${POSTGRES_DB:-postgres}"]
      interval: 10s
      retries: 5
      start_period: 30s

  gatus:
    image: twinproduction/gatus:latest
    restart: always
    ports:
      - "8080:8080"
    env_file:
      - stack.env
    volumes:
      - /srv/containers/gatus/config:/config
    depends_on:
      postgres:
        condition: service_healthy
    dns:      
     - 192.168.3.25     
     - 192.168.3.26  
    networks:
      docker_network:
        ipv4_address: 192.168.5.8

networks:
  docker_network:
    external: true
.env
N/A

Traefik Reverse Proxy Configuration

If the container does not run on the same host as Traefik, you will need to manually add configuration to Traefik's dynamic config file, outlined below.

http:
  routers:
    status-bunny-lab:
      entryPoints:
        - websecure
      tls:
        certResolver: letsencrypt
      service: status-bunny-lab
      rule: Host(`status.bunny-lab.io`)
      middlewares:
        - "auth-bunny-lab-io"  # Referencing the Keycloak Server

  services:
    status-bunny-lab:
      loadBalancer:
        servers:
          - url: http://192.168.5.8:8080
        passHostHeader: true