mirror of
https://github.com/lorsanstand/HomeOps-Hub.git
synced 2026-06-19 20:05:17 +03:00
71 lines
5.0 KiB
Markdown
71 lines
5.0 KiB
Markdown
# 🚀 HomeOps Hub
|
|
|
|
**HomeOps Hub** — это персональный "Control Plane" и центр автоматизации для вашего домашнего сервера. Это не просто мониторинг, это ваш домашний **Jarvis**, который не только сообщает о проблемах, но и умеет их исправлять.
|
|
|
|
|
|
|
|
## ✨ Основная концепция
|
|
В отличие от классических систем мониторинга (Zabbix/Prometheus), HomeOps Hub сфокусирован на **управлении** и **реакции**.
|
|
|
|
* **Security First:** Агент на сервере не принимает произвольные bash-команды. Только строго типизированный `Allowlist`.
|
|
* **Pull-model:** Агент сам подключается к Хабу. Вам не нужно открывать порты наружу или настраивать SSH-доступы.
|
|
* **Telegram-Native:** Весь интерфейс управления — в вашем кармане.
|
|
|
|
---
|
|
|
|
## 🛠 Ключевые возможности
|
|
|
|
### 1. Управление инфраструктурой (Command API)
|
|
Безопасное выполнение операций через Telegram или API:
|
|
* **Docker:** Список контейнеров, рестарт, чтение логов (`tail`), апдейт проектов через Compose.
|
|
* **FS:** Анализ дискового пространства и поиск "тяжелых" папок.
|
|
* **Network:** Проверка доступности локальных и внешних сервисов (Healthchecks).
|
|
|
|
### 2. Умные Runbooks (Автоматизация)
|
|
Сценарии самовосстановления системы без участия человека:
|
|
* **CrashLoop Recovery:** Если контейнер падает чаще 5 раз за 10 минут — перезапуск + сбор логов + уведомление.
|
|
* **Disk Pressure:** При заполнении диска > 85% — автоматический отчет о топ-20 самых тяжелых директориях.
|
|
* **HTTP Watchdog:** Если веб-сервис перестал отвечать — попытка рестарта и проверка связности.
|
|
|
|
### 3. Аудит и Прозрачность
|
|
* Полная история: кто, когда и какую команду запустил.
|
|
* Логирование результатов выполнения всех автоматических сценариев.
|
|
|
|
---
|
|
|
|
## 🏗 Архитектура
|
|
|
|
Проект состоит из трех основных компонентов:
|
|
|
|
1. **Hub (The Brain):** Центральный сервис на Go/Python. Хранит конфигурации, управляет состоянием, оркестрирует Runbooks и управляет Telegram-ботом. База данных — SQLite.
|
|
2. **Agent (The Executor):** Легковесный бинарный файл, работающий непосредственно на целевом хосте. Связь с Хабом через **gRPC Stream**.
|
|
3. **Telegram Interface:** Основной UI для оперативного управления с использованием Inline-кнопок для быстрых действий (Ack, Mute, Restart).
|
|
|
|
---
|
|
|
|
## 📋 Командный интерфейс (Telegram)
|
|
|
|
| Команда | Описание |
|
|
| :--- | :--- |
|
|
| `/status` | Общий статус здоровья системы и активных алертов |
|
|
| `/containers` | Список Compose-проектов и статус контейнеров |
|
|
| `/logs <name>` | Получить последние 200 строк логов сервиса |
|
|
| `/silence <1h>` | Временное отключение уведомлений (режим техобслуживания) |
|
|
| `/audit` | Список последних 5 действий в системе |
|
|
|
|
---
|
|
|
|
## 🚀 План развития (Roadmap)
|
|
|
|
- [ ] **v0.1: MVP "Пульт"** — Реализация gRPC связи, базовые команды Docker и Telegram-бот.
|
|
- [ ] **v0.2: Автоматика** — Движок Runbooks, обработка событий CrashLoop и DiskPressure.
|
|
- [ ] **v0.3: Диагностика** — Автосбор контекста (bundle) при авариях, расширенные отчеты.
|
|
- [ ] **v1.0: Экосистема** — Поддержка нескольких агентов и плагины уведомлений.
|
|
|
|
---
|
|
|
|
## 🔒 Безопасность
|
|
* **No Inbound Ports:** Агент не слушает порты. Соединение всегда инициируется изнутри вашей сети.
|
|
* **Hardened Commands:** Невозможно выполнить `rm -rf /` — доступны только те команды, что описаны в коде агента.
|
|
|
|
*Created with ❤️ for Stasik.* |