LuCIW marcu 2008 narodził się projekt o nazwie
FFLuCI, jako część niemieckiego Freifunk-Firmware. Zbiegło się to prawie z usunięciem z wydań OpenWrt Kamikaze środowiska graficznego (dla przypomnienia - poprzednio było to X-Wrt, porzucone względu na jakość kodu który trzeba było pisać), i rozpoczęciem poszukiwania nowego GUI. Projekt FFLuCI został szybko zaadoptowany i pod nazwą
LuCI znalazł się jako "oficjalne" środowisko graficzne dla OpenWrt.
Od samego początku LuCI było zestawem skryptów
Lua, języka skryptowego, który doprowadzony do postaci frameworka pozwalał na szybkie modelowanie i implementację nowych stron. Zastosowanie Lua wiązało się jednakże z pewną niedogodnością - całość interfejsu użytkownika była generowana po stronie routera, co wiązało się główne z dwoma aspektami pracy: szybkością działania samego środowiska oraz jego zapotrzebowaniem na zasoby systemowe, główne pod postacią apetytu na pamięć RAM. Oznaczało to tylko jedno - praktycznie nie da się obecnie używać LuCI na routerach z 16MB pamięci RAM. I choć specyfikacja routerów poszybowała w górę, to często można spotkać konfiguracje na tyle zapchane różnymi usługami, że używanie tego środowiska graficznego jest męczące.
Inna sprawa to szeroko pojęta funkcjonalność. LuCI nie przypomina w działaniu oryginalnego oprogramowania routerów, nie przypomina też niczego innego. Nie zawiera zaawansowanych konfiguratorów i kompleksowych wizardów, jest po prostu... nakładką graficzną na uci (sposób konfigurowania systemu w OpenWrt), która wymaga od użytkownika wiedzy "co i gdzie kliknąć" żeby uzyskać daną konfigurację. Z tego też powodu, LuCI jest po prostu... ciężkostrawne dla początkujących osób, bo trudno im się zorientować o co w tym wszystkim chodzi.
Samo LuCI jest dość wysoce konfigurowalne, ma wsparcie dla wielu języków i motywów (obecnie domyślnym jest Bootstrap, wzorowanym na swoim imienniku). Przez kilka lat uzbierało się kilkanaście różnych modułów, choć nie ma co ukrywać że w większości przypadków są one nakładką graficzne na opcje które można ustawić przez uci w plikach konfiguracyjnych.
LuCI2Ten prawie mityczny projekt który narodził się w połowie 2013 roku. Rozwijany przez kilka osób (głównie prowadzących deweloperów OpenWrt), miał rozkwitnąć na początku 2015r i w przyszłości stać się nowym środowiskiem graficznym. Jednakże zwykły brak zasobów ludzkich dał się we znaki projektowi; upłynął pierwszy kwartał a zmian w projekcie jest jak na lekarstwo.
LuCI2, choć z wyglądu i funkcjonalności przypomina projekt LuCI, ma całkiem inną architekturę. Najważniejsze to odejście od skryptów i Lua. Zastąpione to zostało statycznymi stronami HTML i Javaskryptem z XHR, co przełożyło się na budowanie stron po stronie przeglądarki (a więc po stronie klienta). Do komunikacji z OpenWrt wykorzystywany jest
ubus (OpenWrt micro bus architecture), ale z powodu jego ubogich możliwości dodatkowo dochodzi jeszcze demon
rpcd (OpenWrt ubus RPC backend server). Całość dzięki wykorzystaniu już natywnego bootstrapa wygląda dość przyzwoicie.
LuCI2 nie jest jeszcze gotowe. Brakuje wielu ustawień i okien (np. ustawień firewalla), nie ma tłumaczeń, nie ma wsparcia dla wielu protokołów w wan. W porównaniu do LuCI jest jest bardzo ubogie w dodatkowe moduły (jest tylko printserwer), więc przepisanie istniejących z LuCI zajmie trochę czasu. Dzięki wykorzystaniu nowych rozwiązań może być ono ciekawym rozwiązaniem (w porównaniu np. do skamieniałego Gargoyle), choć patrząc na kierunek w którym podążają deweloperzy można odnieść wrażenie że nadal będzie to bardzo ciężkie dla zwykłego domowego użytkownika.
LuCi ExpressLub po prostu
JuCi - jest innym rozwiązaniem bazującym także na javaskrypcie, ale z wykorzystaniem frameworka
angularjs. Podobnie jak LuCI2, do komunizacji z systemem wykorzystuje wywołania JSONRPC2.0 z ubusa i rpcd. Rozwiązanie to daje trochę korzyści: minimalne wykorzystanie zasobów routera, bardzo prosta implementacja nowych stron, pełna kontrola i elastyczność działania, dynamiczna zmiana motywów, pełne wsparcie dla wielojęzyczności. Można by powiedzieć - sam miód, tym bardziej że autor buduje funkcjonalność dla użytkownika i nie jest to nakładka na uci.
Projekt kompletnie nie jest skończony i nie nadaje się do użytku, ale ponieważ autor buduje to dla firmy w której pracuje - istnieje szansa że doprowadzi to gui do całkowitego działania. Na chwilę obecną przypomina to szkielet na którym zostanie zbudowane środowisko (stad też na stałe zakodowane oznaczenie firmy, moduł dsl, symbol routera itd), ale widać w jakim kierunku to prowadzi.
Ogłoszenie o projekcie:
https://forum.openwrt.org/viewtopic.php?id=56896Strona projektu:
https://github.com/mkschreder/luci-express