updu Documentation
Welcome to the documentation for updu! Here you will find detailed guides on how to configure and use the various monitor types available in updu.
Overview
updu is a lightweight, self-hosted uptime monitoring solution designed for homelabs and small infrastructure. It's built to run essentially anywhere — even on a Raspberry Pi Zero W — while providing the essential monitoring features you need without the bloat.
The dashboard leads with a clear verdict (operational, degraded, outage, or checks pending) and the monitor detail view gives you one-glance status, recent samples, and configuration in a focused dual-column layout.
Supported Monitor Types
updu currently ships 23 supported monitor types: 15 core probes plus 8 advanced monitors. Every type listed below has its own dedicated guide.
Core monitor guides
- HTTP / HTTPS — Monitor web endpoints, status codes, and response bodies.
- TCP Port — Verify services are accepting connections on specific ports.
- DNS — Validate DNS record resolution.
- ICMP / Ping — Check low-level host reachability.
- SSH — Verify SSH connectivity to remote machines.
- SSL Certificate — Track certificate expiry dates.
- JSON API — Deep-check API responses by validating JSON fields.
- Push (Heartbeat) — Accept heartbeats from cron jobs, backups, and external scripts.
- WebSocket — Verify WebSocket and WSS connection upgrades.
- SMTP Server — Check mail server reachability and TLS support.
- UDP Port — Send and receive UDP datagrams.
- Redis — Verify Redis connectivity and authentication.
- PostgreSQL — Verify Postgres database connectivity.
- MySQL — Verify MySQL and MariaDB connectivity.
- MongoDB — Verify MongoDB connectivity.
Advanced monitor guides
- HTTPS (with TLS Health) — Combine HTTP expectations with certificate freshness and warning thresholds in one monitor.
- Sablier Service State — Query Sablier's direct API so sleeping services stay observable without being woken up.
- Composite — Roll up existing monitor IDs with
all_up,any_up, or quorum logic. - Transaction — Run sequential HTTP flows with per-step assertions and extracted response values.
- DNS + HTTP — Validate DNS resolution first, then verify that the origin still responds as expected.
- gRPC Health — Call the standard gRPC health service and expect
SERVING. - Prometheus Scrape — Scrape a metrics endpoint and assert a metric threshold.
- Database Query — Execute a query and compare the returned value against an expectation.
Notification Channels
updu ships with five built-in notification channels: Webhook, Discord, Slack, Email (SMTP), and ntfy. Channels are configured under Settings → Notifications and can be assigned per monitor.
Configuration
All monitor configuration in updu can be managed through the embedded web dashboard or GitOps YAML. When you add a new monitor, the form shows only the fields relevant to the chosen type. The guides on this page describe every supported type along with the example use cases that motivated each one.
Rebuilding these docs
These pages are generated from the markdown files in site/content/docs/ by scripts/build-docs/. To regenerate the HTML after editing the markdown:
make docs