{"id":24979945,"url":"https://github.com/nirjan-dev/servomon","last_synced_at":"2025-03-29T09:45:28.200Z","repository":{"id":274580507,"uuid":"910511385","full_name":"nirjan-dev/servomon","owner":"nirjan-dev","description":null,"archived":false,"fork":false,"pushed_at":"2025-03-04T04:56:20.000Z","size":33778,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-04T05:30:40.921Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nirjan-dev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-12-31T13:34:26.000Z","updated_at":"2025-03-04T04:56:28.000Z","dependencies_parsed_at":"2025-01-28T07:19:50.803Z","dependency_job_id":"cd41f651-a580-43df-b10a-8e43e231a8db","html_url":"https://github.com/nirjan-dev/servomon","commit_stats":null,"previous_names":["nirjan-dev/server-monitor-app"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nirjan-dev%2Fservomon","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nirjan-dev%2Fservomon/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nirjan-dev%2Fservomon/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nirjan-dev%2Fservomon/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nirjan-dev","download_url":"https://codeload.github.com/nirjan-dev/servomon/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246168086,"owners_count":20734389,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-02-04T04:15:54.399Z","updated_at":"2025-03-29T09:45:28.195Z","avatar_url":"https://github.com/nirjan-dev.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Servomon - Simple Home Server Monitoring\n\nServomon helps you monitor Linux web servers through an easy-to-use web app. It consists of two parts:\n- A web app for viewing server metrics\n- An agent that runs on your servers to collect and send data\n\n## Key Features\n\n- **Secure**: Servers can remain completely local - perfect for homelab setups\n- **Comprehensive Monitoring**:\n  - Memory usage\n  - Network performance (speed, errors, drops)\n  - Disk usage\n  - CPU usage\n  - Battery percentage\n  - Docker container stats\n  - Top process tracking\n- **Remote Management**:\n  - Stop, pause and unpause Docker containers\n  - Kill active processes\n- **Flexible**:\n  - Monitor multiple servers\n  - Install as PWA on your phone\n- **Alerting**:\n  - Web push notifications\n  - Discord Alerts\n  - Supports these alerts by default: low battery, low storage, and server downtime\n\n![Web App Screenshot](./web/public/screenshots/desktop-screenshot-2.png)\n![Web App Screenshot](./web/public/screenshots/desktop-screenshot-3.png)\n![Web App Screenshot](./web/public/screenshots/mobile-screenshot-2.png)\n![Web App Screenshot](./web/public/screenshots/mobile-screenshot-4.png)\n\n## Installation\n\n### Web App\n\n#### Option 1: Local Docker Install\n1. Clone the repository\n2. Navigate to the web directory\n3. Create an `.env` file: `cp .env.example .env` (edit as needed)\n4. Start container: `docker compose up -d`\n\n#### Option 2: Fly.io Deploy\n1. Edit `fly.toml` as needed\n2. Create data volume: `fly volumes create data`\n3. Deploy: `fly deploy`\n\n### Agent Setup\n\n1. Download the binary from `/agent/dist/servomon-agent` (or build with `deno task build`)\n2. Make executable: `chmod +x path/to/executable`\n3. Create `.env` file in same folder (copy from `/agent/.env.example`)\n4. Run: `/path/to/binary/servomon-agent`\n\nTo run in background:\n- Quick method: Press `Ctrl + Z`, then type `bg`\n- Recommended: Set up systemd service\n  - Example file at `/agent/servomon_agent.service`\n  - Copy to `/etc/systemd/system/`\n  - Run:\n    ```\n    sudo systemctl daemon-reload\n    sudo systemctl enable servomon_agent\n    sudo systemctl start servomon_agent\n    systemctl status servomon_agent\n    ```\n\n## Tech Stack\n\n- [Deno](https://deno.com): JavaScript runtime used to compile the agent into an executable binary.\n- [Nuxt](https://nuxt.com): Fullstack Typescript framework that powers the web app.\n- [Nuxt UI \u0026 Tailwind](https://ui.nuxt.com): For UI components and custom styling\n- [Zod](https://zod.dev): For runtime validation\n- [@unovis/vue](https://unovis.dev/): Library for chart components\n- [Typescript](https://www.typescriptlang.org/)\n- Websockets: For running commands sent from the web app on the servers.\n- [systeminformation](https://systeminformation.io/): Library to collect system information from the servers\n\n## License\n[MIT](https://github.com/nirjan-dev/servomon/tree/main/LICENSE)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnirjan-dev%2Fservomon","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnirjan-dev%2Fservomon","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnirjan-dev%2Fservomon/lists"}