ИТ

GoLauncher: безопасный агент управления серверами с телеметрией

GoLauncher, агент управления серверами на Go для автоматизированного развёртывания приложений, обновлений и сбора телеметрии по распределённой инфраструктуре. Этот GoLauncher агент использует двухуровневую аутентификацию через GitHub Fine-Grained PAT, repository_dispatch для телеметрии и предоставляет CLI и интерактивный TUI, всё без прямого write-доступа к управляемым репозиториям.

Зачем GoLauncher

Управление приложениями на нескольких серверах, с разными уровнями доступа, графиками обновлений и мониторингом, требует лёгкого агента, который безопасно тянет обновления, отправляет телеметрию и работает без write-креденшалов. GoLauncher решает это read-only git-операциями для деплоя и repository_dispatch для безопасной передачи телеметрии.

Архитектура

  • Двухуровневая аутентификация — раздельные GitHub-токены: один для клонирования (read-only), другой для телеметрии (Actions write-only). Принцип минимальных привилегий
  • Телеметрия через repository_dispatch — метрики сервера как события GitHub Actions, обрабатываются в dashboard-ready JSON
  • Интерактивный TUI — терминальный интерфейс: просмотр приложений, версий, запуск обновлений, статус сервера
  • CLI-режим — скриптуемые команды для автоматизации и cron
  • Уровни доступа — Level 1 (Admin), Level 2 (Free), Level 3 (Paid) с разным доступом к репозиториям

Модель безопасности

Безопасность, ключевой принцип. Агент никогда не имеет write-доступа к репозиториям приложений, только клонирование. Телеметрия использует отдельный Fine-Grained PAT с правами только на Actions в репозитории server-inventory. YAML-конфиги токенов с уровнями доступа по клиентам.

Практическое применение

Как внештатный CTO я управляю деплоем ПО на серверах клиентов в нескольких странах. GoLauncher работает на каждом сервере, автоматически тянет обновления при выходе новых версий, отправляет телеметрию здоровья и ведёт инвентарь установленных приложений. Система уровней доступа, клиентские серверы видят только лицензированные приложения.

Агент доступен по запросу. Свяжитесь со мной для развёртывания или консультации по инфраструктуре.

FAQ

GoLauncher требует root?

Нет. Работает под обычным пользователем. Root нужен только для установки как системный сервис.

Телеметрия без базы данных?

Через GitHub repository_dispatch → Actions workflows → JSON-файлы. Внешняя БД не нужна.

Не-GitHub репозитории?

Git pull работает с любым remote, но телеметрия требует GitHub Actions.

Потеря связи?

Приложения продолжают работать. Телеметрия в очереди. Обновления при восстановлении подключения.

Илья Арестов, Внештатный CTO | Dubai Airport Free Zone (DAFZ), Dubai, UAE | Алматы, ул. Зенкова 59, Казахстан | +971-585-930-600 | https://t.me/getmonolith
Оцените статью