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.
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.
Każdy element działa również samodzielnie
Panel jest dostępny na licencji Apache 2.0
Celem jest wspieranie zarówno systemu Linux, jak i Windows
Wszystko działa na własnej infrastrukturze
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.
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
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
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
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.