Skip to content

Releases

v0.17.1

Choose a tag to compare

@github-actions github-actions released this 04 Nov 17:57

Changed

  • DumbMonit moves to the selfhostr organization. The repository is now
    github.com/selfhostr/dumbmonit, the images are ghcr.io/selfhostr/dumbmonit and
    ghcr.io/selfhostr/dumbmonit-agent, and the website and documentation live at
    dumbmonit.selfhostr.io. The old ghcr.io/laupernoe images receive no more updates:
    change the image name in your docker-compose.yml (an upgrade note in Settings shows the line).

  • Docs: refreshed screenshots, no more public demo links.

Fixed

  • Synology package behind a changed port or a reverse proxy. The certificate pin shown for the
    package is now the one the address you opened actually serves (a trusted certificate needs no pin).
  • The Synology agent updates itself. The package runs a writable copy of the agent, so a new server
    version brings the agent up to date without reinstalling the package. Modules that make no sense on
    DSM are no longer offered.
  • Add monitor: no more relay checkbox or "several machines" option in the package flow, and the
    Active Directory deployment is its own choice in the picker.

v0.17.0

Choose a tag to compare

@github-actions github-actions released this 04 Nov 04:05

Added

  • Remove an agent from the UI. Deleting the monitor of a machine whose agent is
    online and accepts commands offers to remove the agent automatically: it stops
    and removes its service, binary and configuration (as --uninstall does), then
    the monitor is deleted. Administrator session only, recorded in the audit log
    (POST /api/targets/{id}/agent/uninstall). An agent in a container, or not
    installed by the install scripts, refuses; the manual commands stay available.
  • Synology package, deeper. The DSM 7 package is attached to every release
    (x86_64 and aarch64) and the agent reads RAID and volume health, disks (model,
    temperature, wear, unreadable sectors), installed packages, SMB/NFS/SSH and the
    UPS, with alert rules for a degraded array, a read-only volume, a hot disk, growing
    bad sectors, SSD wear and a stopped package. The add-monitor page offers the package
    or the credentials, with the pin ready to copy.
  • Pre-releases from dev. A tag vX.Y.Z on a commit that is not on main publishes
    a pre-release (images, agent binaries, .spk), never latest.
  • Deeper integrations and more alert rules for Proxmox VE, Proxmox Backup Server,
    TrueNAS, UniFi, OPNsense, Tailscale, Pi-hole, AdGuard Home, Home Assistant, Jellyfin,
    Plex, Immich, Nextcloud, PostgreSQL and Synology (API): about 100 new default rules
    and many new metrics (certificates, backups, replication, DHCP, quotas, jobs, safety
    sensors, tasks and more). Field names come from the vendors' public APIs.
  • Motion and feedback. Shared motion tokens, softer menus, toasts and panels, and a
    green confirmation on the action buttons when the action succeeded.

Changed

  • Cleaner monitor pages. Icon-only header actions with a gear for the settings, a
    lighter title line, and the agent settings (relay, logs, sentinel, services to watch,
    re-enrolment) moved to the monitor's settings. The "Allow re-enrolment" button acts
    in one click.
  • Simpler settings. Six tabs (the former General tab is now in System), a password
    form behind a button, empty blocks collapsed, and no on-call contacts or hours in My
    account.
  • No default site. A device without a site stays "No site"; only devices with a site
    appear on the map, and there is no map until a site exists. The NAS fleet view is
    gone: filter the monitors list instead.
  • The documentation lives on the website. The app no longer carries help texts: each
    screen has a link to its page on dumbmonit.app/docs, rewritten step by step.
  • Home banner. The pigeon is the one of the logo, sitting in the sky.

Fixed

  • The agent troubleshooting commands, the Docker Compose block and a one-click
    re-enrolment on the agent install page.
  • The Synology installer's fields are readable, and its pin comes from the add-monitor page.

v0.16.1

v0.16.1 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 03 Nov 22:26

Pre-release 0.16.1, for testing: not the latest release, not offered as an update to stable installs.

Added

  • Remove an agent from the UI. Deleting the monitor of a machine whose agent is
    online and accepts commands offers to remove the agent automatically: it stops
    and removes its service, binary and configuration (as --uninstall does), then
    the monitor is deleted. Administrator session only, recorded in the audit log
    (POST /api/targets/{id}/agent/uninstall). An agent in a container, or not
    installed by the install scripts, refuses; the manual commands stay available.

Synology package 0.16.0 (test)

Pre-release

Choose a tag to compare

@laupernoe laupernoe released this 03 Nov 10:57

Test build of the DumbMonit agent package for Synology DSM 7.x (x86_64 and aarch64). Not signed: DSM warns that the publisher is unknown. Install through Package Center > Manual Install, then enter the server URL (https), the enrolment token and the server certificate pin. See https://dumbmonit.readthedocs.io/en/latest/devices/synology-agent/

v0.15.0

Choose a tag to compare

@github-actions github-actions released this 02 Nov 12:12

Removed

  • Custom dashboards. The Dashboards page, its API (/api/dashboards,
    templates and previews), the dashboard section of backups and the demo's two
    sample dashboards are gone; the metrics explorer stays, without its "Add to a
    dashboard" action. Existing dashboards stay in the database but are no longer
    read, shown or exported. Backups made before still restore everything else.

Added

  • Wall music is back (Spotify Connect, a shared link, Settings › Wall display
    › Wall music, /api/music/*, kept settings read again), with a small "Now
    playing" dock on the wall and play / pause (POST /api/music/spotify/playback);
    the security policy opens only Spotify's player, script and covers and the
    three embedded players, never on status pages.

  • Configuration changes after an update. Some versions need a change in the
    docker-compose.yml that an update never makes for you (the first one: publish
    port 8443, the encrypted agent channel, introduced in 0.14.0). The server now
    keeps a catalogue of these changes per version, with the explanation, the
    block to copy and, when it can, an automatic check (does the agent port answer
    from the server?). The first time an administrator opens DumbMonit after an
    update that leaves changes pending, a window lists them. Done closes a
    change (checking again first), I'll do it later leaves a reminder in the
    corner of every page until it is dismissed, and a closed change never comes
    back for its version. A change a check finds missing is listed even for an
    instance updated long ago. The full list is in Settings → About; closed
    changes are part of the backup. New routes GET /api/upgrade-notes,
    POST /api/upgrade-notes/close and POST /api/upgrade-notes/announce
    (administrator session).

  • Machine health on Windows. The agent now fills the machine health card on
    Windows too: top processes by CPU and memory, processor queue length, memory
    pages per second and disk queue length (agent_windows_*, shown among the
    current values), and the clock offset and synchronisation read from
    w32tm /query /status /verbose (same agent_clock_* series as on Linux).

  • Switch panel for Omada and Aruba Central. Switches managed by an Omada
    controller or by Aruba Central show their ports (state, speed, PoE) in the
    switch panel, like SNMP switches.

  • ENTITY-SENSOR-MIB sensors in SNMP profiles. A new entity-sensors profile
    reads temperatures, voltages, currents, fan speeds and power from ENTITY-SENSOR-MIB, with
    the scale and precision each sensor reports.

  • Restart markers on device charts. Host reboots (uptime going back) and
    container restarts are marked on the charts of the device page.

  • Expiries in deadlines. OVH services report their expiry date and are listed
    in deadlines; the Veeam support contract has an expiry rule and a deadline.

  • Region map. Azure and Infomaniak resources carry a region label and are
    placed on the region map.

  • Hyper Backup in the backup matrix. Synology Hyper Backup tasks appear in the
    backup history and matrix.

Security

  • HTTPS on the web port itself. Port 8080 now speaks HTTP and HTTPS at once
    (told apart by the first byte), so nothing new needs publishing. TLS 1.3 and
    TLS 1.2 with ECDHE + AEAD suites only, hybrid post-quantum key exchange
    (X25519MLKEM768) first. Bring your own certificate with
    DUMBMONIT_TLS_CERT / DUMBMONIT_TLS_KEY (re-read when the files change or on
    SIGHUP), or use the self-signed one created at first start (its key stored
    encrypted, its fingerprint in the log and in Settings › System › HTTPS and
    encryption). DUMBMONIT_TLS=off restores plain HTTP only.
  • Redirect to HTTPS on new installations. A browser opening the interface
    over plain HTTP, straight to the server, is sent to HTTPS on the same address
    and port. Upgraded instances keep plain HTTP until an administrator turns the
    redirect on (or DUMBMONIT_HTTPS_REDIRECT); a banner says when a session
    travels in clear. The API, install scripts, agent downloads, metrics, status
    pages, the loopback and anything behind a reverse proxy (X-Forwarded-*) are
    never redirected.
  • Stricter headers and cookies. HSTS on HTTPS responses;
    Cross-Origin-Opener-Policy, Cross-Origin-Resource-Policy,
    Permissions-Policy, X-Permitted-Cross-Domain-Policies,
    Origin-Agent-Cluster, and Cache-Control: no-store on API answers. The
    session cookie is SameSite=Strict, and over HTTPS __Host-dumbmonit_session
    with Secure.
  • What still travels in clear, listed. Settings › System › HTTPS and
    encryption lists every connection in clear or without certificate checks:
    external VictoriaMetrics, OIDC, LDAP, SAML, monitors (insecure_tls, SNMP
    v1/v2c or v3 without privacy, credentials to http://), notification
    channels (plain SMTP, http:// URLs), log destinations, agents still allowed
    on the plain channel, unsigned agent updates.
  • The SAML sign-in URL must now be https:// (loopback excepted).
  • Password hashes use explicit OWASP Argon2id parameters (19 MiB, 2 passes).
  • A restored backup no longer brings back a status page website link that the
    API would refuse.

Agents

  • The add-an-agent screen checks the encrypted channel first. The server
    dials its own agent port at the address the install command carries; when it
    is not published, filtered or leads elsewhere, the screen shows the exact
    ports: line ("<public port>:<listen port>") and the firewall commands
    instead of a command that would fail. Through a relay, it waits until the
    relay's gateway listens and reminds which port to open on the relay. The
    install scripts print the same diagnosis instead of a bare "server
    unreachable".
  • Over self-signed HTTPS, the Linux/macOS install command pins the server's
    public key (curl --pinnedpubkey), and the script downloads over HTTPS
    checked by it (--pinned-key=).
  • Updates blocked by unsigned builds are said up front. Settings › Agents ›
    Agent updates shows Updates blocked: unsigned builds and how to unblock;
    agents show Blocked: unsigned build instead of a refusal after the fact.
    scripts/agent-signing-key.sh creates the Ed25519 signing key (see
    docs/development/agent-signing.md).

Changed

  • Left menu. It stays in place while the page scrolls; hovering the logo
    turns it into the expand button (the collapse button sits next to the name
    once open), Ctrl+B (⌘B on a Mac) toggles it. Settings moved to the bottom
    with Wall mode, Docs and GitHub; wall mode is no longer in the top bar. The
    logo and the app icons have a night-sky background instead of plain black.

  • Needs attention. "Silence 1 h" became a small cross that mutes the monitor
    for 1 h, 8 h, 24 h or until a date you pick, with Unmute on the row.

  • First-run guide. The step list no longer runs over the form, and the
    pigeon says a word at each step (and on the add-a-monitor page).

  • Section tabs. One tab strip (in the address as ?tab=, keyboard, sticky on
    phones) now groups the secondary pages. Monitors: List, Map, Logs and Security;
    Alerts: Now, History, Rules, Automation (log, runbooks, actions, policies) and
    On-call, with the maintenance windows folded under Now; Status: Pages and
    Reports. The old /map, /logs, /security, /actions and /reports pages
    forward to their tab, and /alerts#scheduled, #oncall, #history, #rules
    still land on the right one.

  • Calmer screens. A monitor's page shows five alert lines and a link to the
    full history (Alerts › History is paged, fifty lines at a time, and opens
    filtered to that monitor). A disabled monitor shows one notice instead of
    empty panels. The twenty-odd switches of a monitor type sit in one compact
    panel, and long option lists get three sub-headings.

  • Words. "Monitor" everywhere for the watched thing, "Snooze" for a quick
    pause, "Maintenance" for a planned window, "Hide resolved" instead of "Clear all
    resolved".

  • Faster first load. The interface loads the messages of the language in use
    instead of the nine (about 4 MB of JavaScript less), identical reads started at
    the same moment share one request, and the overview's figures are no longer
    fetched three times on arrival.

  • The wall is a picture again. /wall opens on Paris by default (the
    rooftop, the Eiffel Tower, the pigeons: Gaston holding a sign with the number
    of problems, Mimi and her croissant, Jules on the lamp post) instead of a
    black board. The sky follows the real hour; the weather follows the network
    (clear, clouds, rain, then a thunderstorm in a real outage). The verdict,
    the clock and the date are huge, the problems come as tiles, then every
    monitor as a small tile; the five fleet figures and the health river move to
    a quiet strip along the foot of the screen. Night (default) and Day themes;
    New York, Tokyo and Dubai stay night scenes. The default city and theme are
    set in Settings › Wall display (remembered per browser), overridden by ?city=
    and ?theme= and by the Backdrop and Theme buttons on the wall; none is
    still a choice. The scenes are loaded on demand, still on a phone or in a
    hidden tab, and a still picture under reduced motion.

  • Status pages show their scene by default. A page whose scene list is empty
    now draws Paris unless Simple mode is on.

  • A complete public demo. The demo (DUMBMONIT_DEMO=1) now fills every
    page but log search. Two clients in MSP mode: the homelab, now with UniFi, Kopia,
    DNS checks and an iSCSI LUN on the Synology NAS, and a small architecture
    office in Geneva with a Windows domain controller (machine health card),
    Veeam Backup & Replication 13, an Omada network, Microsoft 365 and Entra ID,
    polled through a relay agent placed in the office. The Linux agent reports
    the full machine health card (top processes, ...

Read more

v0.14.2

Choose a tag to compare

@github-actions github-actions released this 28 Oct 13:28

Added

Device pages

  • Device pages show only the charts that matter. Every integration now
    declares its metrics (unit, counter or gauge) and its views in the catalogue
    (GET /api/collectors, new metrics and views fields): a row of current
    values, then at most four charts, with busiest-entity rankings where one curve
    per guest, mailbox or port would be unreadable. Everything else stays one click
    away under All measurements. SNMP profiles can declare label, unit,
    entity, view and view_title per metric.
  • Catalogue rankings and heatmaps use the shared chart kit: a topn view is a
    ranked list, a heatmap view spreads its busiest entities over the period.
  • Richer charts on a device page: alert-rule threshold lines, markers for the
    device's alerts and resolutions, one cursor shared by all its charts, a
    "Compare to last week" switch (dashed overlay) and a mirrored in/out view for
    interface traffic.
  • Switch panel on the page of an SNMP switch, a UniFi console and a MikroTik
    router: the faceplate of every port (link, speed, PoE, errors, shape and word
    for each state), the selected port's traffic in/out, errors of the day, LLDP/CDP
    neighbour and native VLAN, and a heatmap of every port's traffic over 24 hours.
    The ethernet-switch SNMP profile reads every physical port, the native VLAN
    (Q-BRIDGE-MIB) and PoE (POWER-ETHERNET-MIB); UniFi publishes the ports of its
    switches and gateways (port_table, lldp_table).
  • Machine health card at the top of an agent host's page: CPU, memory and disk
    gauges with one-hour curves, a per-core heatmap, the ten heaviest processes by
    CPU and memory, kernel pressure (PSI), OOM kills, inode usage and clock drift,
    each with a short explanation. The Linux agent now reports these causes of a
    slow machine (process names only, never command lines).

Capacity and alerting

  • Fill-up forecasts for every integration. A new built-in rule, Storage
    filling up
    , watches every capacity metric DumbMonit collects (agent
    filesystems and ZFS pools, SNMP storage, Proxmox storages and pools, backup
    datastores, TrueNAS, Synology, QNAP, Unraid, Ceph, vSphere and Nutanix
    storage, appliance disks, Microsoft 365 licences, UPS battery runtime…) and
    alerts when one will be full within 30 days at its current growth rate: info
    first, warning under 14 days, critical under 7, speaking again at each step.
    The growth is a robust fit over the last week that ignores gaps and restarts
    after a cleanup, an expansion or a quota reset. GET /api/targets/{id}/forecasts
    returns the per-entity forecast (used, size, growth per day, days to full,
    confidence).
  • Capacity bars say when they will be full: each agent disk ("Full in about 23
    days at this pace") and each NAS volume, from the same forecasts. Filesystem
    inodes reported by the Linux agent are a forecast family too
    (filesystem_inodes).
  • Drift alerts. Two built-in rules compare probe response times and the
    share of 5xx answers (reverse proxies, Cloudflare) with the usual value for
    the same hour over the previous four weeks, and alert at three times the
    usual, with a minimum value, a minimum gap and a minimum duration so that
    small or short-lived wobbles stay quiet. New rule types forecast and drift
    are available to custom rules.
  • iSCSI-aware storage. A Synology volume that hosts a thick-provisioned
    iSCSI LUN no longer alerts as "almost full": the volume fill alert and the
    fill-up forecast now use the effective usage (without thick reservations),
    identical to the raw usage when there is no LUN. New built-in rules warn
    about thin LUN over-allocation (more space promised than the volume has
    free) and thin LUNs almost full. The Synology panel shows the volume as
    reserved space plus data and lists each LUN with its type, size, real usage
    and the monitor that uses it — matched by name and size, or linked by hand
    (PUT /api/targets/{id}/luns/{lun}/consumer, saved in backups). TrueNAS
    zvols are listed the same way. GET /api/targets/{id}/luns returns it all.
  • Deadlines timeline on the Reports page: domains, certificates, Entra
    application secrets, Infomaniak products, Tailscale keys and licenses (FortiGate,
    Meraki, Palo Alto, Veeam, GitLab) on one 90-day axis, with the soonest as a
    list on phones. Each monitor page shows its own expiry dates. Served by the new
    GET /api/deadlines (soonest first, target and max_days filters).
  • Domain changes: the domain monitor now reads the name servers and
    fingerprints them and the registrar. New default rules alert on a change of
    name servers, a change of registrar, and DNSSEC lost.

Maps

  • Weathermap on the topology map. Links between switches show their load: the
    width and tint follow the port utilization (rate over port speed), the label
    spells 412 Mb/s · 41 % (always from 50 %, on hover or focus otherwise), a port
    that loses frames is dashed, dots move along the link in the direction of the
    busiest flow (still with reduced motion), and a link behind a down device is
    greyed out. Clicking a link opens its rates each way, errors and the last hour.
    A Traffic toggle sits next to Group by subnet; the list view shows the
    load of each link; on a phone the map falls back to a list of the busiest links.
    GET /api/topology links carry an optional traffic object, and
    GET /api/targets/{id}/port-traffic returns the one-hour curve of a link's ports.
  • Threat map. The Security page opens with a world map of the attacks your
    defences stopped, shaded by country: CrowdSec alerts of the last 24 hours, the
    inbound connections blocked by an OPNsense firewall's live map, and Cloudflare
    threats by country. Countries only: no address leaves the server or is stored.
    The CrowdSec panel shows its own share. New route GET /api/security/threats.
  • CrowdSec machine login. Besides the bouncer key, a CrowdSec monitor accepts
    a machine login (cscli machines add): DumbMonit then reads the local alerts and
    keeps their country of origin (dumbmonit_crowdsec_alerts_by_country).
  • Cloudflare threats by country (dumbmonit_cloudflare_country_threats), read
    with the traffic analytics already collected.
  • One world map for every page. Sites, cloud regions, threats and a
    firewall's live traffic share the same map: country shading, sized discs and
    links, a legend and the same data as a text list under it. The World view of
    the Map page links each relay agent's site to the main site, in the relay's
    state. AWS, Hetzner and OVHcloud panels map their regions and datacenters from a
    built-in table (AWS, Azure, Hetzner, OVHcloud, Infomaniak), with no request out.

Agents and relays

  • Agents behind a relay. At a site behind a firewall, where only the relay
    agent goes out, servers can now run the full agent: they connect to the
    relay's gateway (TCP 8443 by default, on the site's network), which
    carries their connection to the server. The agent's TLS 1.3 session, client
    certificate, pinned authority, token and binding secret stay end to end
    between agent and server: the relay only copies ciphertext, through a tunnel
    it opens under its own client certificate, and cannot read, alter or
    impersonate anything. Enrolment, the install script and the binary (checked
    against the SHA-256 in the command) go through the relay too. Bounded
    connections and rate per tunnel, no open proxy, and a relay only carries
    machines of its own client (MSP).
  • The server records the relay each agent connects through: shown on the
    agent's page, drawn as its parent on the topology map, and used for alert
    suppression (agents behind a relay that is down are suppressed, not down).
  • Install commands through a relay: choose Directly or Through
    <relay> (site)
    when adding a server with the agent, in the Active
    Directory kit (Route), from a site in Add by site, or from the relay's
    page (Install an agent through it). POST /api/agent/tokens,
    GET /api/agent/install and POST /api/agent/ad-kit take relay_id and
    relay_host; the relay's Relay panel sets its gateway (port, address) and
    shows the agents connected through it.
  • The add-an-agent flow does everything in place: token, Linux/macOS, Windows
    and Docker commands, an option for several machines, the wait for the first
    connection (GET /api/agent/tokens/{id}/machines), then naming, folder and
    site. The Active Directory kit is offered there too.
  • Imports (Uptime Kuma, UptimeRobot, Gatus) can send the imported monitors
    through a relay (via_agent), and monitors added from a relay's network scan
    are probed through that relay. GET /api/relays/kinds lists the kinds a
    relay can probe; forms only offer Reached through for those.

Docker

  • Docker consumption: the agent now reads each running container's
    statistics (one-shot stats, a bounded number in parallel, with a time
    budget) and reports CPU (% of a core), memory (cache excluded) against its
    limit, network and block I/O, and process count; system/df gives the disk
    taken by images, containers, volumes and build cache, and what a prune would
    free (read every ten minutes). The Docker panel shows CPU and memory meters
    on every row, a top-5 by CPU and by memory, and a "restart loop" badge for a
    container that restarted three times or more in fifteen minutes. Linux only,
    as the rest of the Docker module. GET /api/targets/{id}/containers gains
    cpu_percent, memory_bytes, memory_limit_bytes and restarts_15m.
  • Docker bulk actions: tick containers (or use "select all" and the quick
    filters "no auto-update" / "no auto-restart") to enable or disable
    auto-update and auto-restart for all of them, or update them now. A failure
    is reported per container. New PUT /api/targets/{id}/containers/policy.
  • Co...
Read more

v0.14.1

Choose a tag to compare

@github-actions github-actions released this 27 Oct 19:26

Added

  • Deploy with Active Directory takes the name (FQDN) or address of the
    DumbMonit server the agents contact and, optionally, a DNS server that resolves
    it. Both are validated, written into the kit (servers that cannot resolve the
    name get it from that DNS server) and shown in the summary.
  • The setup wizard offers Deploy with Active Directory directly in the first
    monitors step.
  • Every agent install page (install command, relay, Active Directory) now states
    that agents talk to the server over the encrypted channel with an agent
    certificate (mTLS, TLS 1.3), and which port to open (the agent port, TCP 8443 by
    default, agent to server, also from another site).
  • Add a monitor by site. Add a monitor (and the setup wizard's monitors
    step) now asks where it is first: a location of the world map, or no site.
    The page then proposes what to add there, namely devices a network scan found
    through the site's relay agent that nobody monitors yet (one click creates them)
    and the monitor types that fit the site, all pre-filled with the site's relay
    agent, location and folder. The full list of types stays below. In MSP mode
    only the current client's sites are offered.
  • Dashboard templates. New from a template on the Dashboards page offers ten
    ready-made dashboards that fill themselves with your own devices: homelab overview,
    Linux and Windows servers, network, Proxmox and virtualization, storage and backups,
    websites and TLS, Active Directory, Kubernetes, Docker hosts, and SLA. Narrow one to a
    device type, folder, site or client, check the live preview, and create it. A template
    with no device to feed it is dimmed, with the reason. Templates are served by the server
    (GET /api/dashboards/templates and …/{id}/preview), limited to the devices the
    account can see.
  • Enterprise wall mode. With the instance in Enterprise mode, /wall shows a very dark board in Geist: the verdict and the clock, the five fleet figures, the health river, open alerts and who is on call.

Changed

  • Security page, compact. CVEs now show as a dense gallery of short cards
    instead of long per-device lists, with a one-line counter strip and foldable
    group headers. A switch picks the pivot: by CVE (each CVE once, with the
    machines it touches, severity, exploited or not, fix available or not) or
    by machine (each machine once, with its CVEs). Click a CVE to filter the
    machines, or a machine to filter its CVEs. Quick filters: severity, state,
    exploited, fix available, ignored, folder, client (MSP mode) and a search
    box (CVE ID, package, machine). Pivot, filters and focus live in the URL.
  • Active Directory findings use two columns on wide screens and fold long
    descriptions behind "Show more".
  • Fewer, better themes. Status pages keep four banner scenes (Paris, Tokyo, New York, the Matterhorn) and the Homelab wall four backdrops (Paris, New York, Tokyo, Zermatt). The others were retired and fold onto the nearest one: existing pages (migration 0200), backups, API calls and saved or linked ?city= choices all land on a kept scene. The wall's OLED theme is gone (a saved oled reads as Night).
  • Enterprise rail. The account button (your initials) moved to the foot of the rail, just above Settings, and the documentation and GitHub buttons are back at the bottom.
  • Status pages leave Settings. They are a destination of their own, Status pages (/status, editor at /status/<id>) on the Enterprise rail and under More in Homelab. /settings/status and its anchors forward there.
  • A Reports page. The SLA export of a period (with the client in MSP mode), the scheduled reports and a sending history are together on Reports (/reports, Enterprise rail and More); they left Settings, and /settings/reports forwards. The Settings tab is now just Notifications.
  • The status page scene picker shows its four scenes at once, without search
    or paging; the retired OLED wall palettes are gone.

Fixed

  • A monitor's page no longer prints a whole certificate (the Active Directory
    ca_cert option) over its header: option chips show one line, cut with an
    ellipsis and the value on hover, a PEM as "PEM". credential_public also drops
    any long, multi-line or PEM value.
  • Restricted (MSP client) accounts: the dashboard template preview no longer
    names a site where they have no device, and is now open to them (it only
    reads the devices they see).
  • The agent channel note and the Active Directory deployment plan show the
    server's real public agent port (DUMBMONIT_AGENT_PUBLIC_PORT, or the listen
    port) instead of 8443.

v0.14.0

Choose a tag to compare

@github-actions github-actions released this 27 Oct 04:15

Added

  • Two product modes, and a setup wizard. An administrator picks how the
    interface looks, at first launch or in Settings → General, and can switch
    at any time without losing anything:

    • Homelab (the default, and what existing instances keep) is the familiar
      interface made simpler: four destinations in the bar and everything else
      under More and the command palette, the rarely used sections of each
      Settings tab folded behind Advanced, and device forms that show fewer
      fields up front. Light and dark themes as before.
    • Enterprise is a new, very dark console (Geist type): an icon rail, a
      header with breadcrumb, LIVE, time range and the command palette, and a
      context panel on the right that shows what needs attention, the monitor you
      picked, the nearest forecast and who gets told. Its overview has a band of
      five figures (monitors up, 30-day availability, p95, open alerts, MTTR), a
      health river of every monitor over the range, and a dense monitor table
      with state, type and text filters, optional columns and keyboard
      navigation (j / k, Enter, o, i for the panel, g m, g x, g l).
    • The setup wizard opens after the first administrator signs in, and again
      from Settings → General: mode, instance name, language and time zone, a
      first notification channel with a test, first monitors (network scan, import
      or by hand), an agent; in Enterprise mode, optional steps for single sign-on
      and teams, on-call and retention. Every step can be skipped.
    • API: GET /api/instance (public: mode and whether setup is done),
      GET/PUT /api/instance/settings. The settings travel with the backup.
  • Multi-client (MSP) mode, with per-client reports. Settings → Team & access
    → Clients puts clients above teams and folders. Every monitor, status page and
    agent token belongs to a client; channels, alert rules, maintenance windows and
    report schedules belong to a client or are shared by the instance. Off by
    default: everything existing goes to a Default client and a single-customer
    instance sees no change. On, admins become MSP administrators who pick a client
    in the header and get an overview of every client (alerts, quota), and other
    accounts only see the clients they belong to, enforced by the server like teams
    (closed route list, lists, details, metrics, alerts, rules, status pages,
    reports, logos, Web Push; everything else refused). A client's channel only
    hears about its monitors, its rules and maintenance windows only touch them, an
    agent token only enrols into its client, and moving a monitor takes its
    dependents and cuts any link left between clients. Simple device quotas,
    identity-provider group → client mapping, a logo shown on the client's status
    pages and in its SLA report, and the monthly SLA report (PDF, CSV) emailed to
    the client's contacts. Backups carry clients and what belongs to them.
    Shared dashboards, on-call schedules and escalation policies, runbooks and
    remediation actions also belong to a client or to the instance; a client's
    action never runs on another client's monitor. With a client picked, the MSP
    administrator's lists, run log and log search follow that client. SCIM groups
    named on a client bring their members into it. The client switcher sits in
    the header of both product modes.

  • Cloud integrations. Eight new monitor types read the cloud services a small
    team depends on, with read-only credentials and built-in alert rules grouped per
    product: Microsoft 365 (service health and incidents, licences, risky users),
    Microsoft Entra ID (application secrets and certificates about to expire,
    administrators without MFA, AD Connect sync older than 3 hours), Microsoft Azure
    (Resource Health and active Azure Monitor alerts), AWS CloudWatch (EC2 status
    checks and CPU, RDS, alarms in ALARM state; SigV4 signing built in),
    Cloudflare (zones, tunnels, certificates, 5xx rate, load balancers),
    Hetzner Cloud (servers and their metrics, volumes, backups), OVHcloud
    (VPS and dedicated servers, maintenance) and Infomaniak (products and expiry).
    Each has a page in the documentation (English and French) with the minimal rights
    and the ports to open.

  • Custom dashboards and a metrics explorer. Build dashboards from widgets on a 12-column grid: chart (MetricsQL), single value with warning and critical levels, state of a monitor folder, active alerts, and Markdown notes. Drag, resize and reorder with mouse, touch or keyboard; phones get a single column. Each dashboard saves its time range and refresh interval. Dashboards are personal (any account) or shared (administrators), and travel with backups. The new metrics explorer (/explore) lists the dumbmonit_* metrics and their labels, completes names in a MetricsQL box, draws the result and adds it to a dashboard. New API: /api/dashboards and /api/metrics/catalog.

  • Application integrations (beta). Eleven new monitor types, written from the vendors' API documentation and tested on realistic responses, not yet against live instances:

    • Sonarr, Radarr, Lidarr and Prowlarr (API key): health errors and warnings (the System → Status page), failing download clients and indexers, download queue errors, disk space, updates, and, for Prowlarr, indexers disabled after failures.
    • qBittorrent (WebUI session or allowed address): torrents in error or stalled, lost connectivity (firewalled, disconnected), speeds, free space, torrents by state.
    • UniFi Protect (local user): cameras offline or connected but not recording, NVR disks in failure, storage in use, recording switched off.
    • Frigate (internal API, optional bearer token): cameras that stopped delivering frames, detector speed and hangs, frame rates, recording storage, updates.
    • Keycloak (health checks, then an optional service-account client): readiness and database health, realms, active sessions and users per realm.
    • authentik (API token): readiness, workers, failed system tasks, disconnected outposts, updates, users.
    • Vaultwarden (public checks, optional admin token): liveness, version, open sign-ups, account counts. The admin session is kept between probes because its login is rate-limited.
    • mailcow (read-only API key): stopped containers, Postfix queue size and age, mail volume, mailboxes close to their quota.

    Thirty-nine built-in alert rules cover them (health errors, offline cameras, stuck queues, full disks, updates); each type has a setup guide and a documentation page in English and French. A host that does not answer is Monitor unreachable; a refused key or password is shown as a configuration error and not notified.

  • Five more integrations: SQL Server, Oracle, Elasticsearch / OpenSearch, InfluxDB and Kafka.

    • SQL Server: databases that are not online, blocked requests, sessions
      against the limit, free space of the data volumes, SQL Server Agent jobs whose
      last run failed, and AlwaysOn replica health. A SQL login with read-only
      server rights; TDS over TLS in pure Rust (tiberius, no OpenSSL).
    • Oracle: instance state, tablespaces, sessions and processes, Data Guard
      lag, fast recovery area and failed scheduler jobs. Read through Oracle REST
      Data Services (ORDS), because Oracle's native protocol has no open pure-Rust
      client and OCI cannot ship in the static image.
    • Elasticsearch / OpenSearch: cluster status, unassigned shards, disk and
      JVM heap per node, with a user that only holds the monitor privilege.
    • InfluxDB 2 and 3: health, readiness, uptime, memory, descriptors and 5xx
      counters.
    • Kafka: brokers, controller, offline and under-replicated partitions,
      and the lag of the consumer groups, over a small hand-written client of the
      Kafka protocol (SASL/PLAIN over TLS; no librdkafka in the image).
    • Twenty-four default alert rules cover them, from a red cluster or an offline
      database to a failed job, a full volume or a consumer group falling behind.
  • Windows without an agent (WinRM). A new winrm device type monitors a
    Windows server or PC through WS-Management and read-only WQL queries: nothing
    to install, nothing executed on the machine. HTTPS (5986) by default, NTLMv2 or
    Basic over HTTPS; unencrypted HTTP (5985) only when ticked explicitly. It
    reports the same dumbmonit_* metrics as the Windows agent (CPU, memory, swap,
    disks, uptime, service_up), the services you choose plus every stopped
    automatic service (with a built-in rule), and recent event log error counts per
    log and Event ID. Unreachable means down, a refused login is a configuration
    error. Works through a relay agent. Kerberos and pending updates are not
    supported; the docs cover the server preparation, the least-privilege account,
    ports and Group Policy.

  • Automatic layer-2 topology. The Ethernet switch SNMP profile now reads LLDP
    and CDP neighbours, the bridge forwarding table, ARP and LAG membership; the map
    draws l2 links between switches (with the port on each side, on hover and in
    the link panel) and from hosts to their access port, never on trunks or LAG
    members. Manual corrections keep priority. See Using the map.

  • Network configuration backup (new netconfig device type, the way
    Oxidized or RANCID do it): the configuration of a switch, router or firewall
    is read over SSH or the device's API at a set interval, through a relay agent
    if needed, and a new version is kept only when it really changed, volatile
    lines (timestamps, counters, re-encrypted values) aside. Declarative profiles
    in profiles/netconfig/ for Cisco IOS/IOS-XE and NX-OS, Aruba/HPE, MikroTik
    RouterOS (/export), Juniper Junos, FortiGate, pfSense and OPNsense
    (config.xml over SSH, or the OPNsense API), Ubiquiti EdgeOS/USG and UniFi
    devices, St...

Read more

v0.13.6

Choose a tag to compare

@github-actions github-actions released this 26 Oct 07:20

Added

  • Roadmap page on the website. A new Roadmap page, in all nine languages, lists what is
    planned in delivery order and what has already shipped. It is generated from
    site-src/data/roadmap.json. It also shows what is in progress and two collapsible
    "Ideas" sections (features and integrations), with a link to GitHub Discussions.

  • Encrypted agent channel, ready for the Internet. Agents and relay agents
    now report on a dedicated port (TCP 8443, DUMBMONIT_AGENT_LISTEN) with TLS
    1.3 only, post-quantum hybrid key exchange X25519MLKEM768 and a client
    certificate per machine: the agent generates its key on the machine, enrols
    once with its token and renews its 30-day certificate by itself; deleting a
    monitor revokes it at once. The server creates its own certificate authority
    at first start, and the install command carries its fingerprint, so an agent
    accepts no other server, even one with a valid public certificate, and never
    falls back to plain HTTP. Existing agents switch by themselves once updated
    (the plain channel announces the new one); Settings → Agents shows the
    channel of each agent, a "Require the encrypted channel" switch (on for new
    installations) and the authority rotation. GET /api/agent/install returns
    the install parameters for deployment tools. Publish port 8443 next to 8080
    (see the Compose file); nothing to open on the agents.

  • Security: CVE & vulnerabilities. A new section lists the known CVEs of
    the software already monitored and says, per device, whether each one is
    vulnerable, patched or to check. The inventory comes from what collectors
    already report (Proxmox VE and its packages, PBS, OPNsense, Unraid, ESXi and
    vCenter, FortiOS, RouterOS, UniFi, Synology DSM, MDaemon, SecurityGateway and
    about twenty more products) and from a new daily inventory sent by the agent
    (Debian, Ubuntu, Alpine and RPM packages; Windows build and common
    programs). Sources: NVD by CPE, the Debian Security Tracker (backported fixes
    count as patched), OSV.dev and the CISA KEV catalog, read once a day in the
    background and cached for offline use; an optional NVD API key speeds it up.
    When the data cannot decide (vendor rebuilds, unbounded ranges) the verdict
    is "to check", never "vulnerable". Two new built-in rules alert on an
    exploited (KEV) or critical (CVSS 9+) vulnerability that is not patched; a
    CVE can be ignored per device to accept the risk. The device page shows its
    own CVEs. Off by default: nothing is sent anywhere until an administrator
    turns it on.

  • Deploy the agent to a whole Active Directory domain with one group policy.
    Settings > Agents > "Deploy with Active Directory" creates a fleet enrollment
    token limited to the domain (reusable, 30 days by default, optional server
    cap) and downloads Deploy-DumbMonit.ps1. Run once on a domain controller
    (-WhatIf first), it checks its prerequisites, creates or updates the
    "DumbMonit Agent" group policy and links it to the servers' OU (optionally
    Domain Controllers, a security group filter, and the agent binary in SYSVOL
    for servers without outbound access). Each server then installs the agent as
    SYSTEM with the server's own install command, verifies its SHA-256, does
    nothing when it is already up to date, logs to the Application event log, and
    enrolls under its fully qualified name with its own identity, filed in the
    folder "Active Directory " with the ad tag and its OU. Only machines
    of the domain can enroll with the token; "Stop enrollments" closes it without
    cutting the servers already enrolled; -UninstallAgents and -Remove undo
    everything. The wizard shows the servers arriving live.

  • Map: services and agents hang under the VM they run on. The map now reads
    the IP addresses the hypervisor reports for each guest (Proxmox guest agent,
    container interfaces, or the static ipconfigN / netN ip= configuration
    when the guest says nothing; VMware Tools' primary address on vSphere) and
    links every monitor aimed at one of them (HTTP, TCP, database…) to that guest
    with a "Runs on" link, instead of leaving it floating. When a guest's name
    matches no monitor, the only agent, ping or SNMP monitor at its address
    stands for the guest rather than a second box; an agent's reported host name
    also matches its guest. An address several guests report links nothing, and a
    declared parent always wins. The guest's addresses appear in its details
    panel and tooltip. Docker bridges and veth interfaces are no longer counted
    among a guest's addresses.

  • Map: Proxmox clusters, backups, firewalls and subnets. A Proxmox cluster
    is drawn as cluster, one node per Proxmox node (online or offline), then its
    VMs and containers, stopped ones included; a single-node Proxmox keeps its
    guests directly under it. A monitor that matches a guest is drawn at that
    place, not twice. A Proxmox with a pbs storage is linked "Backed up to" the
    monitored PBS it targets (read from the storage configuration, nothing is
    drawn without the right to read it), and a PBS and a Proxmox VE monitor that
    point at the same machine are tied by a "Same host" link instead of sitting
    apart under the same name. Firewalls (OPNsense, pfSense, FortiGate, Sophos,
    MikroTik) lead their site, and the devices of the networks they serve hang
    under them with a "Through the firewall" link (a declared parent always wins).
    A new "Group by subnet" switch frames each site by subnet, with the VLAN and
    its name when the firewall reports them ("Unknown network" otherwise), and the
    list view shows the subnet. Links between sites now leave and enter through the
    edge of the site frames in smooth curves instead of crossing the nodes.

  • MDaemon and SecurityGateway are monitored through the Windows agent. The
    forms now open with an "Agent required on the mail server" box that explains
    why (queues, sessions, Windows services and disk space can only be read on the
    server itself), opens the Windows agent install flow and lets you pick the
    agent installed on the server (pre-selected when its host name matches the
    address), instead of finding it implicitly. The agent detects MDaemon and
    SecurityGateway by itself and reads their Windows services (state and start
    mode), version, queue folders (messages and age of the oldest one) and the free
    space of their data volume. The monitor page is split into "Read by the agent"
    (Windows services, queues, sessions, disk), "Network services" and "API", and
    shows a banner (not an alert) when no agent is linked, it is silent, or it does
    not see the product. The MDaemon XML API account is now optional (version
    only); the SecurityGateway API key stays recommended for its counters. New
    default rules: Mail server Windows service stopped, Mail queue stuck and
    MDaemon queue frozen.

  • SEO settings for public status pages. A published page has a "Search
    engines (SEO)" block: an "index this page" switch (off by default: noindex, nofollow), SEO title, meta description, keywords, canonical URL, share image,
    language and site name, each generated from the page name when left empty, with
    a live search-result preview and a "Copy the prompt for an AI" / "Paste the
    result" round trip. The server writes the tags (title, description, robots,
    canonical, Open Graph, Twitter card, hreflang, JSON-LD) into the HTML of
    /s/<slug> and sends X-Robots-Tag; indexable pages are listed in
    /sitemap.xml and allowed in /robots.txt, everything else stays closed.

  • Monitor groups on status pages. Tick whole groups (folders) in the page
    editor: a ticked group is live, so monitors added to or removed from it appear
    or disappear on the page by themselves, shown under the group's name without
    duplicates.

  • Private and public names in the status page editor. Every monitor shows
    its private name (read-only, never published) next to an editable public name,
    with a warning when an empty public name would publish the internal one; this
    also applies to monitors that come in through a ticked group. A test checks
    that the public JSON, HTML, feed, badges and sitemap never carry a private
    name, address or id.

  • Status page history: 24 hours to 90 days, adaptive, with a day detail. The
    period is now a page setting (24 hours, 7, 30, 60, 90 days) and the bars adapt
    to the data that exists: 2 hours of data show 5-minute bars, 12 hours hourly
    bars, 3 days 6-hour bars, instead of weeks of grey. The caption names the
    period really shown and the availability is computed over it. Clicking a bar
    opens that day hour by hour (outages with start and end, announcements) from
    GET /api/public/status/<slug>/day/<date>, public names only.

  • Past incidents on status pages. Enter an incident that already happened:
    start time (never in the future), optional resolution time, and updates each
    with its own date, sorted and validated. An incident entered as resolved
    notifies nobody; it shows in the history and the day bars at its real date.

Fixed

  • Linux agents keep their encrypted-channel certificate across restarts. The
    systemd unit made /etc/dumbmonit read-only (ProtectSystem=strict), so the
    agent could not save its certificate (agent-tls.json) and binding secret
    there; the unit now allows writing to its configuration directory only.
    Reinstall the agent with the install command to get the new unit.

  • Interface clean-up: lists refresh, fewer buttons, folded settings. Any
    successful create, update or delete now refreshes the shared device and alert
    lists, so a deleted monitor no longer stays on screen until F5. On Monitors,
    the map and "Create folder" are icon buttons next to "Select" and the "..."
    menu is gone. An alert row keeps two icon buttons: acknowledge (check) and
    snooze (duration picker). In Settings, SSO, LDAP, the Monitoring, Wall di...

Read more

v0.13.5

Choose a tag to compare

@github-actions github-actions released this 20 Oct 23:50

Added

  • "Network ports to open" in every setup guide. Each guide opens with the
    ports to allow, with the direction spelled out (from the DumbMonit server or
    its relay agent to the device; for the agent, the other way round) and the
    ports only an option needs marked optional. The device pages of the
    documentation start with the same table.
  • A quiet note when an optional feature is skipped for a missing permission.
    On Proxmox VE, Proxmox Backup Server and Proxmox Datacenter Manager, a 403 on
    an optional call (guest agent, pending updates, certificate expiry, update
    summary...) no longer vanishes silently: the monitor page says which feature
    was skipped and which permission the token lacks. It never raises an alert.

Fixed

  • Editing a monitor no longer loses or seems to lose its credentials. The
    edit form now shows the saved non-secret parts (Proxmox token ID, user name,
    SNMP v3 user and protocols), returned by the API as credential_public with
    has_secret; a saved secret shows as dots ("Saved. Leave empty to keep it").
    A secret field left blank is now left out of the request and the server keeps
    the saved one, as long as the user name or token ID it belongs to and the
    address are unchanged; otherwise the form asks to type it again. This fixes
    a real loss: editing an SNMP v3 monitor and retyping only the authentication
    passphrase erased the privacy passphrase. Secret fields also no longer invite
    the browser to autofill the DumbMonit sign-in into them. SNMP v3 gains an
    explicit "None" privacy choice to turn encryption off. Secrets are still never
    returned by any response.

Added

  • Server logs: kept on disk, downloadable, and shipped to a log service.
    DumbMonit now writes its own logs (and its audit log entries, marked
    "kind":"audit") to /data/logs, one JSON-lines file per day, compressed
    once the day is over, kept 14 days by default and capped at 1 GB in total
    (both adjustable in Settings → System → Logs). An administrator can
    download the last 1, 7, 14, 30 or any number of days as a .tar.gz, with
    the size shown before the download starts. Logs can also be sent to
    Graylog (GELF over UDP, TCP or HTTP), VictoriaLogs (JSON lines), Grafana
    Loki (push API), Elasticsearch / OpenSearch (bulk API) or any syslog
    receiver (RFC 5424 over UDP, TCP or TLS), each destination with its own
    minimum level and a Send test button. Shipping runs in the background
    with a bounded queue: if a destination is down, records are dropped and
    counted rather than slowing the server. Anything that looks like a secret
    (credentials in a URL, tokens in a query string, Authorization headers)
    is masked before it is written or sent, and the first-run setup code only
    ever goes to the console.
  • Wall widgets: a screen model to arrange them, News folded in, a Text
    widget.
    Settings → Wall widgets now shows a 16:9 model of the wall (top bar,
    right column under the clock, bottom bar, a tray for hidden widgets) where
    widgets are dragged and dropped with a mouse or a finger, or selected and moved
    with the arrow keys and Move to buttons; what is dropped is what /wall
    shows, and Reset to default restores the default layout (on a phone the model
    is an ordered list). The News feeds are now the settings of the News widget
    in the same list, saved with the others; nothing to redo, the configured feeds
    are kept. The new Text widget shows a short free message (plain text, 200
    characters) wherever it is placed.
  • Import Uptime Kuma 1.x and 2.x from kuma.db. Uptime Kuma 2 dropped its
    JSON backup, so the import now also reads the SQLite database
    (docker cp uptime-kuma:/app/data/kuma.db .): upload it, preview the monitors
    sorted by type and folder, tick the ones to import (those already monitored are
    flagged) and import them in one click, with the same mapping as the JSON
    backup. The file is read once in read-only mode from a temporary copy (at most
    512 MB) that is deleted afterwards. Uptime Kuma 2 on MariaDB is not supported.
    New endpoint POST /api/targets/import/kuma-db, and rows= on both Kuma
    import endpoints. See
    Coming from Uptime Kuma.

Changed

  • Add a monitor: the import buttons (Uptime Kuma, websites CSV) moved from the
    top of the page to a new Import category at the bottom, beside
    Everything else.
  • Relay mode is switched from the UI. An agent's page has a Relay for a
    remote site
    switch and a site field: the server sends the setting to the
    agent in its next acknowledgement and the agent turns relay mode on or off on
    the fly, without a restart or a file to edit. relay: true in agent.yaml
    still wins; an agent too old to follow the switch is flagged. A token from
    Watch a remote site (or with This agent is a relay for a remote site
    ticked) carries relay mode and the site, so the enrolled agent is a relay
    from its first report. Once a relay, its page links to Scan this site's
    network
    and Add a monitor through this relay.
  • Reached through, in bulk. The monitors list's selection bar sets Reached
    through
    (direct or a relay) on many monitors at once, skips agent monitors
    with a note, and offers to place them at the location whose site is the
    relay's.

Changed

  • Simpler setup guides when adding a monitor. Each guide is now a few short
    steps done in the product's own web interface (a command is kept only where
    the product has no interface for it), followed by a framed "Required
    permissions" list with the exact rights, roles or scopes to grant, and a
    "Full guide" link to the matching documentation page. The device pages of the
    documentation carry the same steps and permissions. Integration packs can list
    setup.permissions too.

Added

  • Dismiss an alert in one click. Every alert now leads with a Dismiss
    button — in the alert list, an alert's details and a monitor's panel — with
    no duration to pick and no confirmation, only a toast with Undo. A
    dismissed alert leaves the active list, the overview, the wall and every
    counter, and nothing more is sent for it (no reminder, no escalation, no
    resolution message) for as long as the condition lasts. The dismissal belongs
    to that occurrence: once the condition clears, a later return is a new alert,
    notified as usual. Its resolution stays in the history as "dismissed by …",
    and a Dismissed view lists the ones still active, to restore a mistake.
    Acknowledge and Snooze stay available in the alert's … menu.
    Notifications carry a Dismiss link first ({{dismiss_url}} for custom
    webhooks), the API gains POST/DELETE /api/alerts/{fingerprint}/dismiss
    and GET /api/alerts?dismissed=true, and assistants a dismiss_alert tool.

Changed

  • The folded group of acknowledged alerts in the Now list is called
    Acknowledged (it read Dismissed).
  • Active Directory: DNS servers option. When the DumbMonit host's DNS does
    not know the domain, fill DNS servers with the IPs of the servers that do:
    every name lookup of the monitor (the controller you entered, the other
    controllers, the reachability check) goes through them over UDP then TCP,
    while LDAPS still checks the certificate against the name. Empty keeps the
    system resolver; works through a relay agent too.

Fixed

  • A remote-site relay installs in one command. An agent installed from
    Settings → Agents → Watch a remote site was not a relay until relay: true
    was added to agent.yaml by hand. Its token now makes it a relay (see above),
    and the agent.yaml step is only a folded note for agents already installed.
    The install scripts also accept --relay and --site=NAME (-Relay -Site NAME on Windows) for a relay set on the machine itself.