{"id":34501405,"url":"https://github.com/luvaary/sentinel","last_synced_at":"2025-12-31T00:43:53.141Z","repository":{"id":329823769,"uuid":"1120754491","full_name":"luvaary/Sentinel","owner":"luvaary","description":"open source system monitoring program, written in python","archived":false,"fork":false,"pushed_at":"2025-12-21T21:59:09.000Z","size":13,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-12-23T09:35:47.260Z","etag":null,"topics":["cross-platform","developer-tools","fastapi","offline-first","open-source","performance-monitoring","privacy-first","psutil","python","self-hosted","sqlite","system-monitor","web-dashboard"],"latest_commit_sha":null,"homepage":"","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/luvaary.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-12-21T21:52:56.000Z","updated_at":"2025-12-23T00:07:57.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/luvaary/Sentinel","commit_stats":null,"previous_names":["luvaary/sentinel"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/luvaary/Sentinel","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luvaary%2FSentinel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luvaary%2FSentinel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luvaary%2FSentinel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luvaary%2FSentinel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/luvaary","download_url":"https://codeload.github.com/luvaary/Sentinel/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luvaary%2FSentinel/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":27992996,"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","status":"online","status_checked_at":"2025-12-24T02:00:07.193Z","response_time":83,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["cross-platform","developer-tools","fastapi","offline-first","open-source","performance-monitoring","privacy-first","psutil","python","self-hosted","sqlite","system-monitor","web-dashboard"],"created_at":"2025-12-24T02:01:38.006Z","updated_at":"2025-12-24T02:01:58.916Z","avatar_url":"https://github.com/luvaary.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🛡️ Sentinel\n\nA Python-powered, self-hosted system monitoring web application.\n\n## Overview\n\nSentinel provides real-time and historical insights into your computer's system health through a clean web dashboard. Everything runs locally on your machine with no cloud services, accounts, or telemetry.\n\n## Features\n\n- **Real-time monitoring**: CPU, RAM, disk usage, and system uptime\n- **Process overview**: View top processes by CPU and memory usage\n- **Historical tracking**: Visualize system metrics over time with interactive charts\n- **Health alerts**: Automatic warnings for high resource usage\n- **Privacy-first**: All data stored locally, no internet required\n- **Cross-platform**: Works on Linux, macOS, and Windows\n\n## Tech Stack\n\n- **Backend**: Python 3, FastAPI, psutil, SQLite\n- **Frontend**: HTML, CSS, JavaScript, Chart.js\n- **Server**: Uvicorn (ASGI)\n\n## Installation\n\n### Prerequisites\n\n- Python 3.8 or higher\n- pip (Python package manager)\n\n### Setup\n\n1. Clone or download this repository\n2. Navigate to the project directory\n3. Install dependencies:\n\n```bash\npip install -r requirements.txt\n```\n\n## Running Sentinel\n\nStart the server:\n\n```bash\npython main.py\n```\n\nOpen your browser and navigate to:\n\n```\nhttp://localhost:8000\n```\n\nThe dashboard will load automatically.\n\n## Usage\n\n### Dashboard Features\n\n- **Current Stats Cards**: View real-time CPU, RAM, disk, and process count\n- **Alerts**: Get notified when resources exceed safe thresholds\n- **Historical Charts**: Toggle between 1, 6, or 24-hour views\n- **Top Processes**: Monitor which processes are using the most resources\n\n### Data Storage\n\nSentinel stores historical metrics in a local SQLite database (`sentinel.db`). This file is created automatically on first run.\n\n### Refresh Rates\n\n- Current stats: Every 2 seconds\n- Processes: Every 5 seconds\n- Historical charts: Every 10 seconds\n\n## Project Structure\n\n```\nsentinel/\n├── main.py              # FastAPI backend server\n├── requirements.txt     # Python dependencies\n├── sentinel.db         # SQLite database (auto-created)\n├── static/\n│   ├── index.html      # Dashboard interface\n│   ├── style.css       # Styling\n│   └── app.js          # Frontend logic\n└── README.md           # This file\n```\n\n## Alert Thresholds\n\nSentinel triggers alerts when:\n\n- CPU usage exceeds 80%\n- RAM usage exceeds 85%\n- Disk usage exceeds 90%\n\n## Privacy \u0026 Security\n\n- **No internet required**: Runs entirely offline\n- **No cloud services**: All data stays on your machine\n- **No user accounts**: No authentication needed\n- **Local only**: Accessible only via localhost by default\n\n## Stopping Sentinel\n\nPress `Ctrl+C` in the terminal where the server is running.\n\n## Troubleshooting\n\n### Port Already in Use\n\nIf port 8000 is already in use, modify the port in `main.py`:\n\n```python\nuvicorn.run(app, host=\"127.0.0.1\", port=8001)\n```\n\n### Permission Errors\n\nSome system metrics may require elevated permissions. Run with:\n\n```bash\nsudo python main.py  # Linux/macOS\n```\n\n### Database Locked\n\nIf you see database lock errors, ensure only one instance of Sentinel is running.\n\n## Future Extensions\n\nPossible enhancements:\n\n- Network usage monitoring\n- Multi-machine monitoring (LAN)\n- Export reports (CSV/JSON)\n- Custom alert thresholds\n- Plugin system for custom metrics\n\n## License\n\nOpen source. Use freely.\n\n## Why Python?\n\nThis project demonstrates Python's power for:\n\n- Backend web development\n- Systems programming\n- API design\n- Data visualization\n- Real-world production applications\n\nSentinel is proof that Python is not \"just a learning language\" — it powers real, useful tools.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluvaary%2Fsentinel","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fluvaary%2Fsentinel","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluvaary%2Fsentinel/lists"}