Станислав 8d3509b2d8 refactoring project
2026-05-25 16:24:04 +03:00
2026-05-25 16:03:11 +03:00
2026-05-25 16:03:11 +03:00
2026-05-25 16:21:08 +03:00
2026-04-15 18:17:07 +03:00
2026-05-25 16:03:11 +03:00
2026-05-23 17:17:35 +03:00
2026-05-05 20:32:29 +03:00
2026-05-05 20:32:29 +03:00
2026-04-04 09:57:41 +03:00
2026-05-18 15:58:00 +03:00
2026-05-05 20:32:29 +03:00

🚀 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.

S
Description
No description provided
Readme MIT 292 KiB
Languages
Go 99.7%
Shell 0.3%