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

Hedgehog

Rodzina narzędzi do zarządzania infrastrukturą

Hedgehog to rodzina narzędzi 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 na pisaniu własnego rozwiązania, tym lepiej.

O projekcie


Hedgehog powstał jako 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ć samodzielnie lub jako część większej całości. Głównym powodem, dla którego go tworzę, jest nauka projektowania i długoterminowej konserwacji 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 hosting

Wszystko działa na własnej infrastrukturze

Elementy 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 uruchamia się na każdym zarządzanym serwerze. Zarządza cyklem życia procesów (uruchamianie, zatrzymywanie, nadzór), gromadzi 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: udokumentowany, implementacja 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 rozwój


Hedgehog powstaje w sposób otwarty na GitHubie – kod, issues i plany na przyszłość są publiczne. Możesz zajrzeć, jak jest zbudowany, wykorzystać go u siebie albo wnieść własny wkład.

Aktualny stan: w trakcie aktywnego rozwoju

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