v1
2026-06-05 15:39:58 +02:00
v1
2026-06-05 15:39:58 +02:00
v1
2026-06-05 15:39:58 +02:00
v1
2026-06-05 15:39:58 +02:00
v1
2026-06-05 15:39:58 +02:00
v1
2026-06-05 15:39:58 +02:00
v1
2026-06-05 15:39:58 +02:00
v1
2026-06-05 15:39:58 +02:00
v1
2026-06-05 15:39:58 +02:00
v1
2026-06-05 15:39:58 +02:00
v1
2026-06-05 15:39:58 +02:00
v1
2026-06-05 15:39:58 +02:00

Serwer API KOTA

Serwer napisany w języku TypeScript korzystając z biblioteki express, którego głównym zadaniem jest obsługa sensorboxów KOTA. Jest odpowiedzialny za:

  • Informacje o wersji urządzenia (hardware i software)
  • Aktualizacje OTA
  • Możliwość dzielenia oprogramowania na grupy (alpha, beta, release)

Autentykacja

Panel administracyjny

Dostęp do panelu administracyjnego jest zabezpieczony OIDC. Użytkownicy muszą się zalogować poprzez Authentik, aby uzyskać dostęp do funkcji administracyjnych.

API dla sensorboxów

Sensorboxy komunikują się z serwerem API KOTA za pomocą tokenów JWT. Domyślnie sensorbox posiada token do pierwszego logowania, który jest wspólny dla wszystkich urządzeń. Po pierwszym logowaniu, serwer generuje unikalny token dla każdego sensorboxa, który jest używany do dalszej komunikacji.

Aktualizacje OTA

Każde urządzenie raportuje swoją aktualną wersję software oraz hardware w zapytaniu o aktualizację. Serwer API KOTA porównuje te informacje z dostępnymi aktualizacjami i decyduje, czy urządzenie kwalifikuje się do aktualizacji. Jeśli aktualizacja jest dostępna, serwer zwraca link do pobrania nowej wersji oprogramowania. Sam link jest generowany dynamicznie, ważny na określony czas i jednorazowy. Po aktualizacji, urządzenie raportuje sukces lub niepowodzenie aktualizacji, co pozwala na monitorowanie procesu aktualizacji i identyfikowanie potencjalnych problemów.

Grupy aktualizacji

Serwer API KOTA umożliwia dzielenie oprogramowania na grupy, takie jak alpha, beta i release. Każda grupa może mieć różne wersje oprogramowania, a urządzenia mogą być przypisane do konkretnej grupy. Dzięki temu można testować nowe funkcje na mniejszej grupie urządzeń przed udostępnieniem ich wszystkim użytkownikom.

Różne urządzenia

Serwer posiada podział na urządzenia, co pozwala w przyszłości na obsługę różnych typów sensorboxów, z różnymi wymaganiami dotyczącymi aktualizacji i funkcjonalności. Każde urządzenie może mieć swoje unikalne ustawienia i wymagania dotyczące aktualizacji, co pozwala na bardziej elastyczne zarządzanie oprogramowaniem.

Panel administracyjny

W panelu widać listę typów urządzeń, i po wejściu w konkretny typ można zobaczyć różne aktualizacje, które są dostępne dla tego typu urządzenia. Można również zarządzać grupami aktualizacji, przypisywać urządzenia do grup i monitorować status aktualizacji dla poszczególnych urządzeń. Panel administracyjny umożliwia również przeglądanie logów aktualizacji, co pozwala na identyfikowanie i rozwiązywanie problemów związanych z aktualizacjami oprogramowania.

Uruchomienie

  1. Skopiuj plik .env.example do .env i uzupełnij wartości.

  2. Zainstaluj zależności:

    npm install
    
  3. Uruchom serwer w trybie deweloperskim:

    npm run dev
    
  4. Skompiluj produkcyjną wersję:

    npm run build
    npm start
    

Panel administracyjny

  • Otwórz panel pod adresem /admin/panel
  • Użyj przycisku Login with OIDC do uwierzytelnienia
  • Token OIDC jest zapisywany w localStorage i wykorzystywany do żądań HTMX
Description
No description provided
Readme 72 KiB
Languages
TypeScript 89.2%
HTML 10.1%
Dockerfile 0.7%