Website and API checks
Watch that a site or API answers, with the status code, content and response time you expect.
downtime checks your websites, APIs, servers, databases and scheduled jobs, and alerts you when something is down. Self-hosted, up and running in one command.
A check can be fine in Europe and failing in Asia, and downtime shows you both. You decide when a check counts as down: any location, all of them, or a number you set.
Probes connect outward to the hub, so you never open a port or set up a VPN. Put one inside a private network and monitor what the internet cannot reach.
Run several hubs and lose nothing when a machine fails. Every hub is equal, so there is no primary to promote and no separate database to run. They stay in sync and keep an eye on each other.
Alerts arrive where your team already works, from chat and paging to SMS and email. When nobody reacts an alert is passed on, and quiet hours hold back what can wait.
Watch that a site or API answers, with the status code, content and response time you expect.
Watch TCP ports, DNS records, ping, and Postgres or MySQL queries.
Cron jobs and backups check in when they finish, and a missed check-in alerts you straight away.
Slack, Microsoft Teams, PagerDuty, Opsgenie, Telegram, ntfy, Gotify, SMS through Twilio, email, and webhooks for anything else you use.
Send each alert to the right channel, hold back what is not urgent during quiet hours, and escalate when nobody reacts.
Public pages for the checks you choose, with an incident timeline and an RSS feed.
Incidents open and close on their own, leaving a record of what happened and for how long.
Plan work ahead in its own timezone: no alerts, and the time can stay out of your uptime numbers.
Uptime and SLA reports as JSON or CSV, warnings before a TLS certificate expires, and Prometheus metrics for your own dashboards.
Keep your configuration in version control and review changes before they take effect.
Single sign-on through OIDC, roles per project, API keys for scripts, and secrets encrypted at rest.
Hub, probe, database and web interface in one program: run it all on one machine in a few hundred megabytes, or spread probes across locations.
docker run -d --name downtime -p 8080:8080 -v downtime-data:/data monostream.docker.pkg.emporium.rocks/downtime
→ http://localhost:8080
docker run -d --name downtime-eu-zh monostream.docker.pkg.emporium.rocks/downtime --role=agent --hub=https://status.example.com --pool=eu-zh --join-token=dt_join_xxxxx
run this once per location.
helm install dt deploy/helm/downtime --set sessionSecret=$(openssl rand -hex 32)