Salta ai contenuti

Homepage and Homarr

Questi contenuti non sono ancora disponibili nella tua lingua.

Show the state of DumbMonit on your dashboard: how many monitors are up or down, how many alerts are firing. GET /api/summary returns flat counters meant for that.

{
"status": "ok",
"sentence": "Clear skies.",
"devices": { "total": 24, "up": 23, "down": 1, "waiting": 0, "disabled": 0 },
"alerts": { "firing": 2, "critical": 1, "warning": 1, "info": 0, "building_up": 0, "suppressed": 0 }
}

status is critical when an alert is critical or a monitor is unreachable, warning for any other firing alert, ok otherwise. The figures are the ones the interface and the assistant show.

Settings → API tokens → New token, scope read. The token can read and nothing else (it cannot acknowledge an alert, change a monitor or create another token). Copy it: it is shown once. You can also limit it to your dashboard’s network address and give it an expiry date.

Homepage reads JSON with its customapi widget. In services.yaml:

- Monitoring:
- DumbMonit:
icon: mdi-radar
href: https://monit.example.org
description: Homelab status
widget:
type: customapi
url: https://monit.example.org/api/summary
refreshInterval: 30000
headers:
Authorization: Bearer dmt_xxxxxxxxxxxxxxxx
mappings:
- field: devices.up
label: Up
format: number
- field: devices.down
label: Down
format: number
- field: alerts.firing
label: Alerts
format: number

field is a dotted path into the JSON. To show the verdict as text, map status (ok, warning, critical) and, if you like, colour it with remap:

- field: status
label: State
remap:
- value: ok
to: All good
- value: warning
to: Attention
- value: critical
to: Down

Put the token in a Homepage secret rather than in the file ({{HOMEPAGE_VAR_DUMBMONIT_TOKEN}} with the environment variable HOMEPAGE_VAR_DUMBMONIT_TOKEN), since services.yaml is often versioned.

Homarr has no generic “read this JSON” widget as of this writing, so there are two sound ways:

  • Status page in an iframe. Publish a status page and add Homarr’s iFrame widget pointing to https://monit.example.org/s/<slug>/embed: nothing to authenticate, the page is made for embedding.
  • App tile. Add DumbMonit as an App with its address; Homarr’s ping shows whether the instance answers.

/api/summary stays available for anything that can send an Authorization: Bearer header (a Homarr custom integration, n8n, a script, a status bar…).

Terminal window
curl -s -H "Authorization: Bearer $TOKEN" https://monit.example.org/api/summary
SymptomCause
401Token missing, mistyped, revoked or expired; or the request does not come from the network the token is limited to.
403The token is not the right kind (an agent token does not work here): create an API token.
Numbers do not match the pageThe counters are computed on the server when you ask; refreshInterval sets how often your dashboard asks.