{"id":27556774,"url":"https://github.com/alexanderheffernan/serverwatch","last_synced_at":"2026-05-02T06:33:19.645Z","repository":{"id":286038064,"uuid":"943819943","full_name":"AlexanderHeffernan/ServerWatch","owner":"AlexanderHeffernan","description":"ServerWatch is a system monitoring tool that fetches server performance metrics (CPU, disk usage, etc.) using a lightweight Rust agent, with a static frontend hosted on GitHub Pages for easy visualization.","archived":false,"fork":false,"pushed_at":"2025-04-19T13:07:12.000Z","size":8190,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-19T17:57:01.308Z","etag":null,"topics":["front-end","monitoring","port","raspberry-pi","server","system-administration"],"latest_commit_sha":null,"homepage":"https://alexanderheffernan.github.io/ServerWatch/","language":"JavaScript","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/AlexanderHeffernan.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":"2025-03-06T10:15:09.000Z","updated_at":"2025-04-17T00:43:57.000Z","dependencies_parsed_at":"2025-04-04T01:26:51.887Z","dependency_job_id":"e273ad77-a668-463c-9ac4-405362e13807","html_url":"https://github.com/AlexanderHeffernan/ServerWatch","commit_stats":null,"previous_names":["alexanderheffernan/serverwatch"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlexanderHeffernan%2FServerWatch","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlexanderHeffernan%2FServerWatch/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlexanderHeffernan%2FServerWatch/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlexanderHeffernan%2FServerWatch/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AlexanderHeffernan","download_url":"https://codeload.github.com/AlexanderHeffernan/ServerWatch/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249787075,"owners_count":21325569,"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":["front-end","monitoring","port","raspberry-pi","server","system-administration"],"created_at":"2025-04-19T19:56:07.628Z","updated_at":"2026-05-02T06:33:19.624Z","avatar_url":"https://github.com/AlexanderHeffernan.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ServerWatch\n\u003e [!WARNING]\n\u003e The `ServerWatch-Agent` has only been tested on Raspberry Pi OS. It uses cross-platform Rust modules to gather system metrics, but compatibility on other systems is not guaranteed—use at your own risk.\n## Overview\nServerWatch is a lightweight tool designed to monitor key server metrics like CPU, RAM, and disk usage, whether you're on-site or remote. Simply enter your server's IP address and password to access a clean, web-based dashboard. The tool consists of:\n- **Frontend**: A static web dashboard displaying server metrics, hosted on GitHub Pages or deployable locally.\n- **Agent Script**: A Rust-based background process running on your server, delivering system metrics securely over HTTPS.\n- **Easy Setup**: Install and uninstall scripts (`install.sh` and `uninstall.sh`) streamline deployment and removal, with automatic background service configuration.\n## Background\nI created ServerWatch after setting up a Raspberry Pi 5 as a personal projects server. I needed a simple way to check its performance remotely—CPU load, temperatures, etc.—and built this tool to fill that gap.\n## Features\n- Metrics: CPU usage, RAM usage, disk usage, CPU/component temperatures.\n- Secure access via IP address and password over HTTPS, built with a crate I built called [rusty-api](https://crates.io/crates/rusty-api).\n- Efficient Rust-based agent with minimal resource usage.\n- Static frontend hosted on [https://serverwatch.alexheffernan.dev](https://serverwatch.alexheffernan.dev).\n- Open-source, with one-command install/uninstall scripts.\n\n## Installation\n### 1. Deploy the Frontend\nThe frontend is pre-deployed at [https://serverwatch.alexheffernan.dev](https://serverwatch.alexheffernan.dev). To run it locally:\n\n```bash\n# Ensure Node.js is installed\nnode -v  # Install if missing: sudo apt install nodejs npm\n\n# Install http-server globally\nnpm install -g http-server\n\n# Start the server from the frontend directory\ncd /path/to/ServerWatch/frontend\nhttp-server -p 8080\n```\n### 2. Install the Agent Script\nRun the install.sh script on your server to set up the agent. It:\n- Checks for prerequisites (curl, openssl).\n- Downloads the pre-built ServerWatch-Agent binary (ARM only).\n- Secures the agent with a password you are asked to provide.\n- Generates a self-signed certificate and key.\n- Configures a systemd service to run the agent on boot.\n**One Command Install**\n```bash\ncurl -sSL https://raw.githubusercontent.com/AlexanderHeffernan/ServerWatch/main/install.sh -o install.sh\nchmod +x install.sh\n./install.sh\n```\n- The agent will run at `https://\u003cyour-server-ip\u003e:49160/metrics?password=\u003cyour-password\u003e`.\n## Usage\n1. Open the frontend (GitHub Pages or local).\n2. Enter your server’s IP address with port (e.g., 123.456.78.91:2345) and password.\n3. Click \"Connect\" to view your metrics.\n- Local Access: Use your LAN IP.\n- Remote Access: Use your public IP with port forwarding set to 49160.\n\n## Uninstall\nTo remove the agent:\n```bash\ncurl -sSL https://raw.githubusercontent.com/AlexanderHeffernan/ServerWatch/main/uninstall.sh | bash\n```\nThis stops the service, deletes files in ~/ServerWatch-agent/, and removes the systemd configuration.\n\n## Contributing\nContributions are welcome! Feel free to open issues or submit pull requests.\n\n## License\nThis project is licensed under the MIT License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexanderheffernan%2Fserverwatch","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falexanderheffernan%2Fserverwatch","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexanderheffernan%2Fserverwatch/lists"}