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.
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.
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 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
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
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.