# 🚀 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 ` | Получить последние 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.*