Skip to content

y0f/asura

Repository files navigation

Asura

Self-hosted uptime monitoring. One binary, one config file, no dependencies.

CI Go Report Card Go Version License Release Docker

Docs · Quick Start · API · Contributing


Web UI Monitor View


Install

One-liner (Ubuntu/Debian):

git clone https://github.com/y0f/Asura.git && cd Asura && sudo bash install.sh

Docker:

git clone https://github.com/y0f/Asura.git && cd Asura
cp config.example.yaml config.yaml
docker compose up -d

Listens on 127.0.0.1:8090. Use a reverse proxy (nginx/Caddy) for public access with TLS.


Features

  • 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

Why Asura?

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

Docs


Stack

Go 1.25+, stdlib net/http, SQLite via modernc.org/sqlite (pure Go, zero CGO), templ, HTMX, Alpine.js, Tailwind CSS v4.

License

MIT

About

Self-hosted uptime monitoring. Single binary, 19 monitor types, distributed agents, real-time dashboard, status pages, and multi-channel alerts.

Topics

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors