Gatus — Setup
Uptime monitoring with GitOps-managed config. Runs as a Docker container on LXC 119 (infra-apps). All endpoint configuration is file-driven (
services/gatus/config.yaml) — config changes are applied by pushing tomain.
Links
- GitHub: https://github.com/TwiN/gatus
Infrastructure
| Host | Internal | URL |
|---|---|---|
| Docker (LXC 119) | 192.168.1.119:8080 | https://uptime.eva-00.network |
Observability
Logs
Gatus logs are collected via Grafana Alloy Docker discovery and shipped to Loki.
| Query | Purpose |
|---|---|
{container="gatus"} |
All container output |
{container="gatus"} \|= "error" |
Errors only |
{container="gatus"} \|= "endpoint" |
Endpoint check logs |
Access: Grafana → Explore → Loki → Enter query
Metrics
Gatus does not export Prometheus metrics at the default scrape endpoint. Use Loki logs to monitor endpoint health.
IaC
| Artifact | Path |
|---|---|
| Playbook | ansible/playbooks/infra-apps.yml |
| Workflow | .forgejo/workflows/infra-apps.yml |
| Config | services/gatus/config.yaml |
Alerting chain
Gatus detects outage (3 consecutive failures)
└── POST webhook to n8n
└── n8n (Service Alerts → Matrix) → Matrix room → Element X on phone
└── Resolved after 2 consecutive successes → UP alert
Migration note
Uptime Kuma was replaced by Gatus in March 2026. Reason: Uptime Kuma requires manual configuration through its web UI and cannot be managed as code. Gatus is config-file driven, making it fully GitOps-compatible.
Domains previously in NPM — not yet migrated to Caddy
These were configured in Nginx Proxy Manager before it was replaced. Add them to services/caddy/Caddyfile when the backing services are deployed.
| Domain | Notes |
|---|---|
romm.eva-00.network |
— |
qb.eva-00.network |
— |
ex.eva-00.network |
— |
stacks.eva-00.network |
— |
cwa.eva-00.network |
— |
snake.eva-00.network |
also used port 51820 (WireGuard?) |
ta.eva-00.network |
— |
jelly.eva-00.network |
— |
test.eva-00.network |
— |
archive.eva-00.network |
— |