layered-waves-haikei (1)-svg-svg

Hedgehog

Семейство инструментов для управления инфраструктурой

Hedgehog — это семейство инструментов с открытым исходным кодом для управления серверами, автоматизации и документирования инфраструктуры. Оно возникло из потребности в инструменте, который делает именно то, что мне нужно, и из желания научиться создавать что-то большее, чем одноразовый скрипт. Если он пригодится и кому-то ещё и избавит от необходимости писать собственное решение, тем лучше.

О проекте


Hedgehog начинался как веб-панель для управления серверами. Постепенно он превратился в модульное семейство программного обеспечения, где каждый компонент можно использовать отдельно или как часть более крупного целого. Главная причина, по которой я его создаю, — научиться проектировать и долгосрочно поддерживать реальную систему, а не просто написать её один раз и забыть о ней.

Разработка ведётся по отдельным компонентам. На данный момент публично представлены HedgehogPanel и HedgehogDaemon, остальные компоненты семейства находятся в стадии разработки, и я опубликую их, как только они достигнут пригодного для использования состояния.

Модульный

Каждый компонент работает и самостоятельно

Открытый исходный код

Панель доступна по лицензии Apache 2.0

Мультиплатформенный

Цель — обеспечить поддержку как Linux, так и Windows

Собственное размещение

Всё работает на собственной инфраструктуре

Компоненты семейства


Hedgehog — это не одна программа, а несколько отдельных инструментов, способных взаимодействовать друг с другом. Ниже перечислены компоненты, которые уже были представлены общественности.

HedgehogPanel

Веб-панель для управления серверами и службами, написанная на C# на базе .NET и PostgreSQL. Обеспечивает управление пользователями, назначение владельцев серверов и служб, управление доступом на основе ролей и удобный интерфейс в браузере. Взаимодействует с управляемыми серверами через gRPC. Создаётся как построенная на .NET альтернатива существующим решениям вроде Pterodactyl или Portainer.

Статус: в стадии активной разработки

HedgehogDaemon

Легкий фоновый процесс, написанный на Rust, который запускается на каждом управляемом сервере. Он обеспечивает управление жизненным циклом процессов (запуск, остановка, мониторинг), сбор метрик и пересылку логов, а также предлагает систему плагинов, построенную на WASM. Он взаимодействует с панелью управления через gRPC и способен работать даже в случае недоступности панели.

Статус: задокументировано, реализация находится в стадии подготовки

Другие компоненты

Семейство продолжает пополняться новыми инструментами. Пока они не доступны для общего пользования, и я представлю их, когда они будут готовы к использованию.

Статус: в разработке, пока не опубликовано

Технические характеристики


HedgehogPanel

Язык: C#
Платформа: .NET
База данных: PostgreSQL
Фронтенд: HTML / CSS / JS
Лицензия: Apache 2.0

HedgehogDaemon

Язык: Rust
Связь: gRPC
Плагины: WASM
Платформы: Linux, Windows
Требования: минимальные, всего один двоичный файл

Код и разработка


Hedgehog разрабатывается открыто на GitHub — код, issues и планы на будущее доступны всем. Не стесняйтесь посмотреть, как это реализовано, использовать проект у себя или внести свой вклад.

Текущий статус: в стадии активной разработки

HedgehogPanel распространяется по лицензии Apache 2.0. Лицензии на остальные компоненты указаны в их репозиториях.