Lightweight, self-hosted server monitoring with alerts, Docker stats, HTTP uptime checks, and a public status page. One process. Two minutes to deploy.
- Real-time CPU, memory, disk, network monitoring
- Docker/Podman container stats built-in
- HTTP endpoint uptime checks with response time tracking
- Alert notifications (Slack, Discord, Email, Telegram, Webhooks)
- Public status page for your users
- Deploy in under 2 minutes with Docker
- Lightweight — single Node.js process, SQLite storage, no external database
curl -O https://raw.githubusercontent.com/Adamcode11/pulsight/main/docker-compose.yml
docker compose up -dOpen http://localhost:9090 and create your admin account.
git clone https://github.com/Adamcode11/pulsight.git
cd pulsight
npm install
node src/setup.js # Create admin user
node src/server.js # Start hubPULSIGHT_HUB=https://your-hub:9090 PULSIGHT_TOKEN=your-key node src/agent.js| Variable | Default | Description |
|---|---|---|
| PULSIGHT_PORT | 9090 | Hub HTTP port |
| PULSIGHT_DB | ./data/pulsight.db | SQLite database path |
| PULSIGHT_CERT | — | TLS certificate path |
| PULSIGHT_KEY | — | TLS private key path |
| PULSIGHT_JWT_SECRET | random | Secret for JWT tokens |
| PULSIGHT_HUB | — | (Agent) Hub URL |
| PULSIGHT_TOKEN | — | (Agent) API key |
| PULSIGHT_INTERVAL | 30000 | (Agent) Collection interval ms |
A public status page is served at http://localhost:9091/status (no auth required). Customize the title and description in Settings.
pulsight.yourdomain.com {
reverse_proxy localhost:9090
}
See docs/reverse-proxy.md
MIT
