{"id":18683170,"url":"https://github.com/shaharband/sentinel","last_synced_at":"2025-04-12T04:31:25.991Z","repository":{"id":219737262,"uuid":"749777441","full_name":"ShaharBand/Sentinel","owner":"ShaharBand","description":"A user-friendly Command \u0026 Control (C\u0026C) web platform for remote monitoring, management, and task automation across multiple devices.","archived":false,"fork":false,"pushed_at":"2024-04-09T14:21:19.000Z","size":2310,"stargazers_count":7,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-04-09T18:06:54.200Z","etag":null,"topics":["beanie","emotionjs","fastapi","javascript","material-ui","mongodb","pydantic","python","reactjs","typescript"],"latest_commit_sha":null,"homepage":"","language":null,"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/ShaharBand.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}},"created_at":"2024-01-29T11:28:54.000Z","updated_at":"2024-04-15T08:53:06.899Z","dependencies_parsed_at":"2024-02-03T21:26:50.334Z","dependency_job_id":"b021e7fd-ae5c-4eda-ba9a-04a87bccb613","html_url":"https://github.com/ShaharBand/Sentinel","commit_stats":null,"previous_names":["shaharband/sentinel"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ShaharBand%2FSentinel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ShaharBand%2FSentinel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ShaharBand%2FSentinel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ShaharBand%2FSentinel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ShaharBand","download_url":"https://codeload.github.com/ShaharBand/Sentinel/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248517149,"owners_count":21117396,"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":["beanie","emotionjs","fastapi","javascript","material-ui","mongodb","pydantic","python","reactjs","typescript"],"created_at":"2024-11-07T10:13:58.322Z","updated_at":"2025-04-12T04:31:25.983Z","avatar_url":"https://github.com/ShaharBand.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"./img/logo.png\" width=\"250px\" alt=\"Sentinel Logo\" title=\"Sentinel Logo\"\u003e\n\n\n# Sentinel\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://github.com/ShaharBand/Sentinel/blob/main/LICENSE)\n[![Downloads](https://img.shields.io/github/downloads/ShaharBand/Sentinel/total.svg)](https://github.com/ShaharBand/Sentinel/releases)\n[![GitHub repo size](https://img.shields.io/github/repo-size/ShaharBand/Sentinel.svg)](https://github.com/ShaharBand/Sentinel)\n[![stars](https://img.shields.io/github/stars/ShaharBand/Sentinel.svg?style=badge)](https://github.com/ShaharBand/Sentinel/stargazers)\n[![Python Version](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)\n[![last commit](https://img.shields.io/github/last-commit/ShaharBand/Sentinel.svg)](https://github.com/ShaharBand/Sentinel/commits/main)\n[![Tests](https://github.com/ShaharBand/sentinel/actions/workflows/tests.yml/badge.svg?branch=main)](https://github.com/ShaharBand/sentinel/actions/workflows/tests.yml)\n\u003c/div\u003e\n\nA user-friendly Command \u0026 Control (C\u0026C) web platform for remote monitoring, management, and task automation across multiple devices.\nEquipped with agents, it enables users to seamlessly execute scripted tasks on target devices, empowering efficient data retrieval and remote actions.\n\n\u003cbr\u003e\n\n## 🖥️ Technology Stack and Features\n\n### Backend\n\n- ⚡ [**FastAPI**](https://github.com/tiangolo/fastapi): for the Python backend API.\n  - 🧰 [Beanie](https://github.com/roman-right/beanie): for the Python MongoDB database interactions (ODM).\n  - 🔍 [Pydantic](https://github.com/samuelcolvin/pydantic): used by FastAPI, for the data validation and settings management.\n  - 💾 [MongoDB](https://github.com/mongodb/mongo): as the NoSQL database.\n  - 📦 [UV](https://github.com/astral-sh/uv): An extremely fast Python package and project manager.\n\n### Frontend\n\n- 🚀 [**React**](https://github.com/facebook/react) for the frontend.\n  - 📜 [TypeScript](https://github.com/microsoft/TypeScript): Enhances JavaScript by adding types.\n  - ⚡ [Vite](https://github.com/vitejs/vite): A next-generation frontend build tool for a faster and leaner development experience.\n  - 💅 [EmotionJS](https://github.com/emotion-js/emotion): A library designed for writing CSS styles with JavaScript.\n  - 🎨 [Material UI](https://github.com/mui/material-ui): for the frontend components.\n  - 🦇 Dark mode support.\n\n### Development and Deployment\n\n- 🐋 [Docker Compose](https://github.com/docker/compose): for development and production.\n  - 🔒 Secure password hashing by default.\n  - 🔑 JWT (JSON Web Token) authentication.\n  - ✅ Tests with [Pytest](https://github.com/pytest-dev/pytest).\n\n### CI/CD\n\n- 🚢 Deployment instructions using Docker Compose.\n- 🏭 CI (continuous integration) and CD (continuous deployment) based on GitHub Actions.\n\n\u003cbr\u003e\n\n## 🌱 Getting Started:\n\n**1. Clone the repository:**\n\n```commandline\nhttps://github.com/ShaharBand/Sentinel.git\n```\n\n\u003cbr\u003e\n\n**2. Configure**\n\nYou can then update configs in the `.env` files to customize your configurations.\n\nBefore deploying it, make sure you change at least the values for:\n\n- `DB_USER`\n- `DB_PASSWORD`\n\nYou can (and should) pass the database password as environment variable from secrets.\n\nRead the [deployment.md](deployment.md) docs for more details.\n\n\u003cbr\u003e\n\n## Backend Development\n\nBackend docs: [backend/README.md](backend/README.md).\n\u003cbr\u003e\u003cbr\u003e\n\n## Frontend Development\n\nFrontend docs: [frontend/README.md](frontend/README.md).\n\u003cbr\u003e\u003cbr\u003e\n\n## Gallery Images\n\nYou can see the images of the frontend here: [gallery.md](gallery.md).\n\u003cbr\u003e\u003cbr\u003e\n\n## 👨‍💻 Contributions:\n\nWe welcome contributions to this project! Please feel free to fork the repository and create pull requests.\n\u003cbr\u003e\u003cbr\u003e\n\n## 💼 License:\n\nThis project is licensed under the MIT License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshaharband%2Fsentinel","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshaharband%2Fsentinel","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshaharband%2Fsentinel/lists"}