Семейство инструментов для управления инфраструктурой
Hedgehog — это семейство инструментов с открытым исходным кодом для управления серверами, автоматизации и документирования инфраструктуры. Оно возникло из потребности в инструменте, который делает именно то, что мне нужно, и из желания научиться создавать что-то большее, чем одноразовый скрипт. Если он пригодится и кому-то ещё и избавит от необходимости писать собственное решение, тем лучше.
Hedgehog начинался как веб-панель для управления серверами. Постепенно он превратился в модульное семейство программного обеспечения, где каждый компонент можно использовать отдельно или как часть более крупного целого. Главная причина, по которой я его создаю, — научиться проектировать и долгосрочно поддерживать реальную систему, а не просто написать её один раз и забыть о ней.
Разработка ведётся по отдельным компонентам. На данный момент публично представлены HedgehogPanel и HedgehogDaemon, остальные компоненты семейства находятся в стадии разработки, и я опубликую их, как только они достигнут пригодного для использования состояния.
Каждый компонент работает и самостоятельно
Панель доступна по лицензии Apache 2.0
Цель — обеспечить поддержку как Linux, так и Windows
Всё работает на собственной инфраструктуре
Hedgehog — это не одна программа, а несколько отдельных инструментов, способных взаимодействовать друг с другом. Ниже перечислены компоненты, которые уже были представлены общественности.
Веб-панель для управления серверами и службами, написанная на C# на базе .NET и PostgreSQL. Обеспечивает управление пользователями, назначение владельцев серверов и служб, управление доступом на основе ролей и удобный интерфейс в браузере. Взаимодействует с управляемыми серверами через gRPC. Создаётся как построенная на .NET альтернатива существующим решениям вроде Pterodactyl или Portainer.
Статус: в стадии активной разработки
Легкий фоновый процесс, написанный на Rust, который запускается на каждом управляемом сервере. Он обеспечивает управление жизненным циклом процессов (запуск, остановка, мониторинг), сбор метрик и пересылку логов, а также предлагает систему плагинов, построенную на WASM. Он взаимодействует с панелью управления через gRPC и способен работать даже в случае недоступности панели.
Статус: задокументировано, реализация находится в стадии подготовки
Семейство продолжает пополняться новыми инструментами. Пока они не доступны для общего пользования, и я представлю их, когда они будут готовы к использованию.
Статус: в разработке, пока не опубликовано
Hedgehog разрабатывается открыто на GitHub — код, issues и планы на будущее доступны всем. Не стесняйтесь посмотреть, как это реализовано, использовать проект у себя или внести свой вклад.
Текущий статус: в стадии активной разработки
HedgehogPanel распространяется по лицензии Apache 2.0. Лицензии на остальные компоненты указаны в их репозиториях.