Home
Selvara is self-hosted infrastructure monitoring. A Next.js dashboard stores everything in PostgreSQL with the TimescaleDB extension and uses Redis for the live event stream and for rate-limit counters. A single Go agent runs on each monitored host, detects the services it finds there, and pushes metrics and events to the dashboard's webhook every 30 seconds.
Nothing polls your machines from the outside: the flow is always host to
dashboard, so the only port that has to be reachable is the dashboard's own.
Alerts are not evaluated by a timer inside the application either — a small
cron container calls POST /api/cron/evaluate-alerts once a minute, and that
call is what raises, resolves and notifies.
Operations
- Installation — deploying with Docker Compose, the secrets to generate, and creating the first account.
- Configuration — every environment variable, and what is configured in the dashboard instead.
- Upgrading — pulling a new image, watching migrations apply, and why there is no down-migration.
- Backup and Restore —
pg_dumpagainst a TimescaleDB database, and restoring one without losing the hypertables. - Troubleshooting — symptom, check, fix.
The agent
- Agent Installation — putting the agent on a host.
- Agent Collectors — what the agent detects and measures.
- Agent Settings — the values the dashboard hands down to an agent.
- Agent Rollout — how agents update themselves, and how to stage it.
- SNMP Devices — switches and routers, polled by an agent on another host.
The desktop app
- Desktop App — watching several instances from one window, and being told without a browser tab open.
Using Selvara
- Customers and Systems — the grouping and the servers in it.
- Alert Rules — thresholds, durations and scope.
- Event Rules — which events are worth waking someone for.
- Maintenance Windows — silencing without going blind.
- Notifications — who is mailed about what, and the SMTP server it goes through.
- Users and Permissions — the three roles, and which customers each account may reach.
- API Tokens — letting a program of your own call the API without a browser.