mirror of
https://github.com/Kyngo/uptime-detective.git
synced 2026-10-25 21:16:38 +01:00
Monitor servers and endpoints via HTTP(S), TCP, ICMP and DNS.
- TypeScript 55.4%
- Vue 39.1%
- Shell 4.4%
- Dockerfile 0.6%
- JavaScript 0.2%
- Other 0.2%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| .github/workflows | ||
| client | ||
| docs | ||
| server | ||
| shared | ||
| .dockerignore | ||
| .env.example | ||
| .gitignore | ||
| CHANGELOG.md | ||
| docker-compose.yml | ||
| Dockerfile | ||
| install.sh | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| uptime-detective.service | ||
🔍 Uptime Detective
A self-hosted uptime monitoring system built with Vue 3 and Express.js. Monitor your services via HTTP, ICMP, DNS, TLS, TCP, and heartbeat checks with real-time dashboards, alerting, and public status pages.
Features
- 6 Monitor Types — HTTP(S), ICMP Ping, DNS, TLS/SSL, TCP Port, Heartbeat (push)
- Real-time Dashboard — Live status updates via WebSocket (Socket.IO)
- Response Time Charts — Chart.js graphs with selectable timeframes (1h, 6h, 24h, 7d, 30d)
- Incident Tracking — Auto-created on downtime, auto-resolved on recovery
- Public Status Pages — Customizable pages with 90-day uptime bars
- Notifications — Webhook, Email (SMTP), Slack, Discord, Telegram
- Maintenance Windows — Suppress alerts during planned downtime
- Dark Mode — System preference detection + manual toggle
- REST API — Token-authenticated CRUD for all resources
- Docker Ready — Single container, multi-stage build, hardened security
Quick Start
Development
git clone <repo-url> uptime-detective
cd uptime-detective
npm install
cp .env.example .env
npm run dev
Open http://localhost:5173 — the setup wizard will guide you through creating your admin account.
Docker (Production)
JWT_SECRET=$(openssl rand -base64 32) docker compose up --build -d
Open http://localhost:3300.
Architecture
graph LR
subgraph Client
A[Vue 3 SPA<br/>Dashboard]
B[Public Status<br/>Pages]
end
subgraph Server["Express.js API"]
C[Scheduler<br/>node-cron]
D[Check Engine<br/>HTTP / ICMP / DNS / TLS / TCP]
E[Notifiers<br/>Webhook / Email / Slack / Discord / Telegram]
F[(SQLite<br/>WAL mode)]
C --> D
D --> F
D --> E
end
A <-->|WebSocket + REST| Server
B -->|REST| Server
Documentation
| Document | Description |
|---|---|
| Architecture | System design, tech stack, check engine flow, status transitions |
| API Reference | Full REST API documentation with examples |
| Monitors | Monitor types, configuration, heartbeat usage |
| Notifications | Notification channels, triggers, maintenance windows |
| Configuration | Environment variables, security settings |
| Deployment | Docker, reverse proxy, systemd, backups |
| Development | Local setup, project structure, scripts |
| Database | Schema, migrations, data retention, size estimates |
License
MIT