Skip to content

nirjan-dev/servomon

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

64 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Servomon - Simple Home Server Monitoring

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

Key Features

  • 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

Web App Screenshot Web App Screenshot Web App Screenshot Web App Screenshot

Installation

Web App

Option 1: Local Docker Install

  1. Clone the repository
  2. Navigate to the web directory
  3. Create an .env file: cp .env.example .env (edit as needed)
  4. Start container: docker compose up -d

Option 2: Fly.io Deploy

  1. Edit fly.toml as needed
  2. Create data volume: fly volumes create data
  3. Deploy: fly deploy

Agent Setup

  1. Download the binary from /agent/dist/servomon-agent (or build with deno task build)
  2. Make executable: chmod +x path/to/executable
  3. Create .env file in same folder (copy from /agent/.env.example)
  4. Run: /path/to/binary/servomon-agent

To run in background:

  • Quick method: Press Ctrl + Z, then type bg
  • 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
      

Tech Stack

  • 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

License

MIT

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages