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

Hedgehog

Rodina nástrojů pro správu infrastruktury

Hedgehog je rodina open-source nástrojů pro správu serverů, automatizaci a dokumentaci infrastruktury. Vznikla z potřeby mít nástroj, který dělá přesně to, co potřebuji, a z chuti naučit se stavět něco většího než jednorázový skript. Když se bude hodit i někomu dalšímu a ušetří mu psaní vlastního řešení, tím líp.

O projektu


Hedgehog začal jako webový panel pro správu serverů. Postupně z něj vyrostla modulární rodina softwaru, kde každou součást lze používat samostatně nebo jako část většího celku. Hlavním důvodem, proč ho stavím, je naučit se navrhovat a dlouhodobě udržovat reálný systém – ne jen ho jednou napsat a zapomenout na něj.

Vývoj probíhá po jednotlivých komponentách. Veřejně představené jsou zatím HedgehogPanel a HedgehogDaemon, další součásti rodiny jsou rozpracované a zveřejním je, až dozrají do použitelného stavu.

Modulární

Každá součást funguje i samostatně

Open Source

Panel je dostupný pod licencí Apache 2.0

Multiplatformní

Cílem je podpora Linuxu i Windows

Self-hosted

Vše běží na vlastní infrastruktuře

Součásti rodiny


Hedgehog není jeden program, ale několik samostatných nástrojů, které spolu umí spolupracovat. Níže jsou součásti, které jsou už veřejně představené.

HedgehogPanel

Webový panel pro správu serverů a služeb, psaný v C# nad .NET a PostgreSQL. Nabízí správu uživatelů, přiřazení vlastnictví serverů a služeb, řízení přístupu podle rolí a přehledné rozhraní v prohlížeči. Se spravovanými servery komunikuje přes gRPC. Vzniká jako alternativa k existujícím řešením typu Pterodactyl nebo Portainer, postavená na .NET.

Stav: v aktivním vývoji

HedgehogDaemon

Lehký proces na pozadí psaný v Rustu, který běží na každém spravovaném serveru. Stará se o životní cyklus procesů (spuštění, zastavení, dohled), sběr metrik a přeposílání logů a nabízí systém pluginů postavený na WASM. S panelem komunikuje přes gRPC a dokáže fungovat i ve chvíli, kdy je panel nedostupný.

Stav: zdokumentováno, implementace připravovaná

Další součásti

Rodina se dál rozrůstá o další nástroje. Ty zatím nejsou veřejné a představím je, až budou v použitelném stavu.

Stav: ve vývoji, zatím nezveřejněno

Technické specifikace


HedgehogPanel

Jazyk: C#
Framework: .NET
Databáze: PostgreSQL
Frontend: HTML / CSS / JS
Licence: Apache 2.0

HedgehogDaemon

Jazyk: Rust
Komunikace: gRPC
Pluginy: WASM
Platformy: Linux, Windows
Nároky: minimální, jediný binární soubor

Kód a vývoj


Hedgehog vzniká otevřeně na GitHubu – kód, issues i rozpracované plány jsou veřejné. Klidně se podívejte, jak je to udělané, použijte to u sebe nebo přispějte.

Aktuální stav: v aktivním vývoji

HedgehogPanel je dostupný pod licencí Apache 2.0. Licence dalších součástí jsou uvedené v jejich repozitářích.