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

Hedgehog

Rodzina narzędzi do zarządzania infrastrukturą

Hedgehog to rodzina narzędzi typu open source służących do zarządzania serwerami, automatyzacji i dokumentacji infrastruktury. Powstała z potrzeby posiadania narzędzia, które robi dokładnie to, czego potrzebuję, oraz z chęci nauczenia się tworzenia czegoś większego niż jednorazowy skrypt. Jeśli okaże się przydatna również dla kogoś innego i pozwoli mu zaoszczędzić czas potrzebny na pisanie własnego rozwiązania, tym lepiej.

O projekcie


Hedgehog zaczynał jako jedyny internetowy panel do zarządzania serwerami. Z czasem przekształcił się w modułową rodzinę oprogramowania, w której każdy element można wykorzystywać osobno lub jako część większej całości. Głównym powodem, dla którego go tworzę, jest nauka projektowania i długoterminnego utrzymywania rzeczywistego systemu – a nie tylko jednorazowe napisanie go i zapomnienie o nim.

Prace nad projektem przebiegają w odniesieniu do poszczególnych komponentów. Jak dotąd publicznie zaprezentowano HedgehogPanel i HedgehogDaemon; pozostałe elementy tej rodziny są w trakcie opracowywania i opublikuję je, gdy osiągną stan umożliwiający ich użytkowanie.

Modułowy

Każdy element działa również samodzielnie

Open Source

Panel jest dostępny na licencji Apache 2.0

Wieloplatformowy

Celem jest wspieranie zarówno systemu Linux, jak i Windows

Własny serwer

Wszystko działa na własnej infrastrukturze

Członkowie rodziny


Hedgehog to nie jeden program, lecz kilka odrębnych narzędzi, które potrafią ze sobą współpracować. Poniżej przedstawiono elementy, które zostały już publicznie zaprezentowane.

HedgehogPanel

Panel internetowy do zarządzania serwerami i usługami, napisany w języku C# w oparciu o platformę .NET i bazę danych PostgreSQL. Oferuje zarządzanie użytkownikami, przypisywanie własności serwerów i usług, kontrolę dostępu opartą na rolach oraz przejrzysty interfejs w przeglądarce. Komunikuje się z zarządzanymi serwerami za pośrednictwem gRPC. Powstał jako alternatywa dla istniejących rozwiązań typu Pterodactyl lub Portainer, oparta na platformie .NET.

Status: w trakcie rozwoju

HedgehogDaemon

Lekki proces działający w tle, napisany w języku Rust, który działa na każdym zarządzanym serwerze. Zarządza cyklem życia procesów (uruchamianie, zatrzymywanie, monitorowanie), zbiera metryki i przekazuje logi, a także oferuje system wtyczek oparty na WASM. Komunikuje się z panelem za pośrednictwem gRPC i może działać nawet wtedy, gdy panel jest niedostępny.

Status: udokumentowane, wdrażanie w przygotowaniu

Pozostałe elementy

Rodzina wciąż powiększa się o kolejne narzędzia. Na razie nie są one jeszcze dostępne publicznie, a przedstawię je dopiero wtedy, gdy będą gotowe do użytku.

Status: w trakcie opracowywania, na razie nieopublikowane

Specyfikacje techniczne


HedgehogPanel

Język: C#
Platforma: .NET
Baza danych: PostgreSQL
Frontend: HTML / CSS / JS
Licencja: Apache 2.0

HedgehogDaemon

Język: Rust
Komunikacja: gRPC
Wtyczki: WASM
Platformy: Linux, Windows
Wymagania: minimalne, tylko jeden plik binarny

Kod i programowanie


Projekt Hedgehog powstaje w sposób otwarty na GitHubie – kod, zgłoszenia i plany na przyszłość są publiczne. Zapraszamy do zapoznania się z jego strukturą, wykorzystania go we własnych projektach lub wniesienia własnego wkładu.

Aktualny stan: w fazie aktywnego rozwoju

HedgehogPanel jest dostępny na licencji Apache 2.0. Licencje pozostałych komponentów są podane w ich repozytoriach.