Powrót do projektów

Servio

LuaCLIDevOpsLinux
servio.pl.md

Zobacz kod źródłowy

Kontekst

Servio to lekki, modularny i rozszerzalny framework CLI napisany w Lua, który umożliwia instalowanie, konfigurowanie i zarządzanie usługami systemowymi w sposób prosty i spójny na różnych systemach Unix.

Zamiast skomplikowanych instalatorów, Servio pozwala tworzyć proste moduły usług w formie:

services/<NazwaUsługi>/install.lua

Każdy moduł może zawierać własną logikę instalacji, konfiguracji i uruchamiania — dzięki temu społeczność może łatwo tworzyć i udostępniać własne instalatory.

Moja rola

Zaprojektowałem architekturę frameworka, format modułów usług, wykrywanie platformy oraz instalator uruchamiający narzędzie na obsługiwanych systemach Unix.

Problem

  • różne systemy operacyjne mają różne menedżery pakietów i różne sposoby uruchamiania usług
  • instalacja Redis, Nginx, MariaDB czy dowolnej innej usługi wygląda inaczej na Linux, macOS i BSD
  • wiele narzędzi wymaga skomplikowanych skryptów lub manualnej konfiguracji

Servio upraszcza to do:

servio install redis --port=6380

Funkcje

  • modularna architektura oparta na Lua
  • wsparcie dla wielu systemów Unix (Linux, macOS, BSD)
  • proste API dla twórców usług (install.lua)
  • automatyczne wykrywanie platformy
  • możliwość tworzenia własnych flag i parametrów
  • instalacja Servio jednym skryptem (install.sh)

Stos technologiczny

  • Lua 5.4
  • POSIX shell (instalator)
  • Modularne skrypty usług

Co osiągnąłem

  • stworzyłem framework, który pozwala społeczności tworzyć własne instalatory usług
  • ujednoliciłem proces instalacji na różnych systemach Unix
  • zaprojektowałem architekturę, która jest prosta, ale bardzo rozszerzalna
  • przygotowałem instalator działający na Linux, macOS i BSD

Czego nauczył mnie projekt

Servio rozwinął moje podejście do projektowania narzędzi CLI i rozszerzalnych systemów modułów. Najważniejsze było ukrycie różnic między platformami bez odbierania autorom modułów kontroli nad procesem instalacji.