Servomon helps you monitor Linux servers through an easy-to-use web app. It consists of two parts:
- A web app for viewing server metrics
- An agent that runs on your servers to collect and send data
- Secure: Servers can remain completely local - perfect for homelab setups
- Comprehensive Monitoring:
- Memory usage
- Network performance (speed, errors, drops)
- Disk usage
- CPU usage
- Battery percentage
- Docker container stats
- Top process tracking
- Remote Management:
- Stop, pause and unpause Docker containers
- Kill active processes
- Flexible:
- Monitor multiple servers
- Install as PWA on your phone
- Alerting:
- Web push notifications
- Discord Alerts
- Supports these alerts by default: low battery, low storage, and server downtime
- Clone the repository
- Navigate to the web directory
- Create an
.envfile:cp .env.example .env(edit as needed) - Start container:
docker compose up -d
- Edit
fly.tomlas needed - Create data volume:
fly volumes create data - Deploy:
fly deploy
- Download the binary from
/agent/dist/servomon-agent(or build withdeno task build) - Make executable:
chmod +x path/to/executable - Create
.envfile in same folder (copy from/agent/.env.example) - Run:
/path/to/binary/servomon-agent
To run in background:
- Quick method: Press
Ctrl + Z, then typebg - Recommended: Set up systemd service
- Example file at
/agent/servomon_agent.service - Copy to
/etc/systemd/system/ - Run:
sudo systemctl daemon-reload sudo systemctl enable servomon_agent sudo systemctl start servomon_agent systemctl status servomon_agent
- Example file at
- Deno: JavaScript runtime used to compile the agent into an executable binary.
- Nuxt: Fullstack Typescript framework that powers the web app.
- Nuxt UI & Tailwind: For UI components and custom styling
- Zod: For runtime validation
- @unovis/vue: Library for chart components
- Typescript
- Websockets: For running commands sent from the web app on the servers.
- systeminformation: Library to collect system information from the servers



