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%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-07-17 11:41:34 +02:00
.github/workflows First release 2026-07-17 11:01:24 +02:00
client First release 2026-07-17 11:01:24 +02:00
docs First release 2026-07-17 11:01:24 +02:00
server First release 2026-07-17 11:01:24 +02:00
shared First release 2026-07-17 11:01:24 +02:00
.dockerignore First release 2026-07-17 11:01:24 +02:00
.env.example First release 2026-07-17 11:01:24 +02:00
.gitignore First release 2026-07-17 11:01:24 +02:00
CHANGELOG.md First release 2026-07-17 11:01:24 +02:00
docker-compose.yml First release 2026-07-17 11:01:24 +02:00
Dockerfile First release 2026-07-17 11:01:24 +02:00
install.sh fix: declare esm on package.json [skip ci] 2026-07-17 11:41:34 +02:00
package-lock.json First release 2026-07-17 11:01:24 +02:00
package.json fix: declare esm on package.json [skip ci] 2026-07-17 11:41:34 +02:00
README.md First release 2026-07-17 11:01:24 +02:00
uptime-detective.service chore: add systemd files [skip ci] 2026-07-17 11:22:20 +02:00

🔍 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.

Version Node TypeScript License

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