Self-hosted, horizontally scalable HTTP monitoring with a modern web interface. Multi-user support with secure authentication, real-time dashboards, and comprehensive monitoring management. Built with Go backend and Next.js frontend.
graph TB
Users[👥 Users]
WebUI[🌐 Web UI<br/>Next.js :3000]
ControlPlane[🎯 Control Plane<br/>Go :8081/:8082]
Database[(🗄️ TimescaleDB<br/>PostgreSQL)]
subgraph "Workers - Distributed"
WorkerUS[⚡ Worker US-East<br/>Go - us-east-1]
WorkerEU[⚡ Worker EU-West<br/>Go - eu-west-1]
WorkerAP[⚡ Worker AP-South<br/>Go - ap-south-1]
end
Users --> WebUI
WebUI -.->|Session Auth<br/>Connect RPC| ControlPlane
WorkerUS <-.->|mTLS gRPC<br/>Bidirectional Stream| ControlPlane
WorkerEU <-.->|mTLS gRPC<br/>Bidirectional Stream| ControlPlane
WorkerAP <-.->|mTLS gRPC<br/>Bidirectional Stream| ControlPlane
ControlPlane --> Database
subgraph "Database Schemas"
AppSchema[📋 app schema<br/>monitors, jobs, workers, users]
TSSchema[📊 ts schema<br/>results_raw, results_agg_*]
end
Database --- AppSchema
Database --- TSSchema
OpenSeer consists of four main components:
- Web Frontend (Next.js) - Modern dashboard with real-time metrics visualization, multi-user support with secure session-based authentication
- Control Plane (Go) - Service managing workers and job scheduling
- Workers (Go) - Distributed agents executing HTTP checks across geographic regions, communicating via mTLS gRPC
- Database (PostgreSQL + TimescaleDB) - Time-series storage with automatic aggregation (1-minute, 1-hour, and 1-day intervals), P50/P95/P99 latency tracking, and uptime statistics
For detailed architecture documentation, see:
Start the complete stack with one command:
task up
Then access:
- Web UI: http://localhost:3000
- API: https://localhost:8082
-
Start Database
task db-up # PostgreSQL + TimescaleDB task migrate-up # Database migrations
-
Start Services
task backend-up # Control plane + workers task web-up # Web interface
-
Create Monitors
- Open http://localhost:3000
- Sign up/sign in
- Add monitors via the web interface
For development with hot-reload:
task dev-full # Full stack with live reload
task logs # View all service logs
task scale-workers N=3 # Scale workers
task psql # Database CLI
task build # Build images
task --list # Show all available tasks
Contributions are welcome! Please see the detailed architecture documentation in the cmd/
directories for implementation details.
MIT