Self-hosted uptime monitoring. One binary, one config file, no dependencies.
Docs · Quick Start · API · Contributing
One-liner (Ubuntu/Debian):
git clone https://github.com/y0f/Asura.git && cd Asura && sudo bash install.shDocker:
git clone https://github.com/y0f/Asura.git && cd Asura
cp config.example.yaml config.yaml
docker compose up -dListens on 127.0.0.1:8090. Use a reverse proxy (nginx/Caddy) for public access with TLS.
- 19 monitor types - HTTP, HTTP Multi-Step, TCP, DNS, ICMP, TLS, WebSocket, gRPC, MQTT, Docker, Domain/WHOIS, Command, SMTP, SSH, Redis, PostgreSQL, UDP, Heartbeat, Manual
- 13 notification channels - Webhook, Email, Telegram, Discord, Slack, ntfy, Teams, PagerDuty, Opsgenie, Pushover, Google Chat, Matrix, Gotify
- Assertions - Status code, body text, regex, JSONPath, headers, response time, cert expiry, DNS records with AND/OR group logic
- Multi-step HTTP chains - Up to 5 sequential requests with variable extraction (regex/JSONPath) between steps
- Distributed probe agents - Run checks from multiple locations with a lightweight agent binary (~16MB)
- Anomaly detection - Statistical baseline with configurable sensitivity, auto-degrades on response time spikes
- Live dashboard - Real-time SSE push with sparklines, uptime heatmap, and bulk operations
- Public status pages - 90-day uptime bars, incidents, email/webhook subscriptions, RSS feed, password protection
- Incident severity - Critical, major, minor, warning levels with auto-assignment
- Escalation policies - Time-based notification chains with per-step delays and repeat
- SLA tracking - Per-monitor targets, error budgets, breach alerts, monthly reports
- Cron maintenance - 6 scheduling modes: manual, one-time, cron, daily, weekly, monthly
- Encryption at rest - AES-256-GCM for notification secrets and proxy passwords
- Data rollup - Hourly and daily aggregates for long-running instances
- Change detection - Line-level diffs on HTTP response bodies
- Security - TOTP 2FA, role-based API keys, SSRF protection, rate limiting
| Aspect | Asura | Typical alternative |
|---|---|---|
| Install | Single binary, scp + run |
Runtime + database + migrations |
| Database | SQLite (built in) | Needs Postgres, MySQL, or Redis |
| Size | ~15 MB binary, ~20 MB RAM | 100 MB+, varies by runtime |
| API | Full REST API, same as web UI | Often Socket.IO or undocumented |
| Scale | 1000+ monitors on a $5 VPS | Node.js alternatives hit walls at 500 |
- Getting Started - Install, configure, first monitor
- Deployment - Reverse proxy, TLS, systemd
- Configuration - Full config reference
- Monitors - All types, assertions, heartbeats
- Notifications - Channels, webhook signing, routing
- Escalation - Time-based chains
- API - Endpoints with examples
- SLA - Targets, budgets, breach alerts
- Architecture - Pipeline, storage, internals
Go 1.25+, stdlib net/http, SQLite via modernc.org/sqlite (pure Go, zero CGO), templ, HTMX, Alpine.js, Tailwind CSS v4.

