mirror of
https://github.com/lorsanstand/HomeOps-Hub.git
synced 2026-06-17 16:25:16 +03:00
main
🚀 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. Аудит и Прозрачность
- Полная история: кто, когда и какую команду запустил.
- Логирование результатов выполнения всех автоматических сценариев.
🏗 Архитектура
Проект состоит из трех основных компонентов:
- Hub (The Brain): Центральный сервис на Go/Python. Хранит конфигурации, управляет состоянием, оркестрирует Runbooks и управляет Telegram-ботом. База данных — SQLite.
- Agent (The Executor): Легковесный бинарный файл, работающий непосредственно на целевом хосте. Связь с Хабом через gRPC Stream.
- 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.
Languages
Go
99.7%
Shell
0.3%