Gatus — an automated, developer-oriented health/uptime dashboard: define endpoints and conditions in YAML and get a status page plus alerting. Deployed as a stateless host-networked Nomad service with its config rendered from variables.
Save as values.hcl, edit, then run:
# The name of the Nomad job.
job_name = "gatus"
# The Nomad namespace to deploy into.
namespace = "default"
# The datacenters to deploy to.
datacenters = ["*"]
# The Gatus container image. Pin a tag in production.
image = "twinproduction/gatus:latest"
# Host port for the Gatus status page (its config web.port is set to this).
port = 8101
# The `endpoints:` section of the Gatus config (YAML). Replace the default sample with the services you want to monitor. See https://gatus.io for the full syntax (groups, conditions, alerts).
endpoints = <<-EOT
- name: example
url: "https://example.org"
interval: 60s
conditions:
- "[STATUS] == 200"
EOT
# Placement constraints. Gatus probes from the node it runs on. On a nomploy cluster: attribute = "$${meta.nomploy_control_plane}", operator = "=", value = "true".
constraints = []
# The task resources.
resources = {
cpu = 200
memory = 128
}
| Name | Type | Default | Description |
|---|---|---|---|
| job_name | string | "gatus" | The name of the Nomad job. |
| namespace | string | "default" | The Nomad namespace to deploy into. |
| datacenters | list | ["*"] | The datacenters to deploy to. |
| image | string | "twinproduction/gatus:latest" | The Gatus container image. Pin a tag in production. |
| port | number | 8101 | Host port for the Gatus status page (its config web.port is set to this). |
| endpoints | string | <<-EOT
- name: example
url: "https://example.org"
interval: 60s
conditions:
- "[STATUS] == 200"
EOT | The `endpoints:` section of the Gatus config (YAML). Replace the default sample with the services you want to monitor. See https://gatus.io for the full syntax (groups, conditions, alerts). |
| constraints | list | [] | Placement constraints. Gatus probes from the node it runs on. On a nomploy cluster: attribute = "$${meta.nomploy_control_plane}", operator = "=", value = "true". |
| resources | object | {
cpu = 200
memory = 128
} | The task resources. |
No variables match.
Gatus — an automated, developer-oriented health/uptime dashboard:
declare endpoints and pass/fail conditions in YAML and get a clean status page plus
alerting. A config-as-code alternative to the uptime-kuma pack. Stateless host-networked
Nomad service; its config is rendered from variables.
nomad-pack registry add nomploy github.com/Nomploy/nomad-packs
nomad-pack run gatus --registry nomploy
In nomploy: create a Compose service, type Nomad Pack, pack gatus, custom registry
github.com/Nomploy/nomad-packs, then Deploy. Open http://<node-ip>:8101.
Set the endpoints variable to the endpoints: section of a Gatus config, e.g.:
- name: my-api
url: "https://api.example.com/health"
interval: 30s
conditions:
- "[STATUS] == 200"
- "[RESPONSE_TIME] < 300"
See gatus.io for groups, TCP/DNS/ICMP checks, and alerting: (which you
can add by extending the rendered config).
| Variable | Default | Notes |
|---|---|---|
image |
twinproduction/gatus:latest |
Pin a tag in production. |
port |
8101 |
Status page (also set as the config's web.port). |
endpoints |
sample | The endpoints: YAML — replace with your services. |
constraints |
[] |
Gatus probes from its node — pin accordingly. |
resources |
cpu 200 / mem 128 |
Lightweight. |
uptime-kuma: Gatus is config-as-code (YAML in git), Uptime Kuma is UI-driven. Pick
whichever fits your workflow.