All templates

Gatus

v1.0.0

A status dashboard with scheduled endpoint health checks.

monitoring by getarcaneapp
x-arcane:
  icon: https://cdn.jsdelivr.net/gh/selfhst/icons@main/svg/gatus.svg
  urls:
    - https://github.com/TwiN/gatus#docker

services:
  gatus:
    image: twinproduction/gatus:latest
    restart: unless-stopped
    ports:
      - "${BIND_ADDRESS:-127.0.0.1}:${PORT:-8084}:8080"
    labels:
      com.getarcaneapp.arcane.icon: https://cdn.jsdelivr.net/gh/selfhst/icons@main/svg/gatus.svg
    configs:
      - source: gatus
        target: /config/config.yaml
    volumes:
      - data:/data

configs:
  gatus:
    content: |
      storage:
        type: sqlite
        path: /data/data.db
      endpoints:
        - name: monitored-service
          url: "${MONITOR_URL:-https://example.com}"
          interval: ${CHECK_INTERVAL:-5m}
          conditions:
            - "[STATUS] == 200"
            - "[RESPONSE_TIME] < 3000"

volumes:
  data:

README

A status dashboard with scheduled endpoint health checks.

Copy .env.example to .env, adjust the settings, then deploy with docker compose up -d or import this template in Arcane. Open http://localhost:8084 on the Docker host. Ports bind to localhost by default; set BIND_ADDRESS to a trusted interface for LAN access, or use a reverse proxy with HTTPS.

Set MONITOR_URL and CHECK_INTERVAL for your endpoint. The inline configuration is fully contained in Compose and persists history to SQLite. The dashboard is public by design; retain the localhost binding or put it behind an authenticated proxy for private status data. Compose 2.23.1 or newer is required for inline configs.

Named volumes retain internal application state across container upgrades. Keep a backup before updating images; docker compose down -v deletes named volume data.

Upstream: installation and configuration.