2024–2025 · Projekt systemu, backend, bezpieczeństwo i integracje
Platforma provisioningu urządzeń
Rejestracja i konfiguracja urządzeń partiami po kilka tysięcy sztuk
Producent sprzętu potrzebował systemu do rejestracji i provisioningu swoich urządzeń, zgłaszanych partiami po około 2000–3000 sztuk. Dla każdego urządzenia trzeba było przygotować rekord w aplikacji, identity i konfigurację VPN, które potem pobierała automatyzacja na samym urządzeniu.
Problem
Przy takich partiach ręczna konfiguracja nie wchodzi w grę. Do tego każde urządzenie musiało się zgadzać w panelu administracyjnym, w Authentiku i w konfiguracji VPN, bez trzymania osobnej kopii jego stanu w każdym z tych systemów.
Rezultat
Rejestracja obsługuje partie tej wielkości, a każdy fragment stanu urządzenia ma jeden system, który za niego odpowiada. Nie mam pomiarów „przed i po”, a mój udział skończył się w marcu 2025, więc nie wiem, ile urządzeń działa dziś na tym systemie.
Decyzje i implementacja
- Zbudowałem centralną aplikację w Laravel 11 z PostgreSQL i kolejkami na Redisie. Laravel Horizon pokazuje postęp zadań provisioningu i to, które z nich się nie powiodły.
- Dodałem rejestrację pojedynczych numerów seryjnych i zakresów (np. E000001-E000230), także wymieszanych na jednej liście rozdzielonej przecinkami. Aplikacja usuwa duplikaty i składa z tego jedną listę, którą zatwierdza administrator.
- Każdemu fragmentowi stanu dałem jednego właściciela: Laravel trzyma rekord urządzenia i reguły autoryzacji, Authentik odpowiada za identity i dostęp, wg-portal i generowana konfiguracja WireGuard za VPN, a Nginx Proxy Manager za warstwę proxy. Żaden komponent nie trzyma własnej kopii stanu urządzenia.
- Panel administracyjny zabezpieczyłem Laravel Policies i TOTP MFA z kodami odzyskiwania, z możliwością wyłączenia MFA.
- Udostępniłem REST API jako jedyny interfejs dla automatyzacji po stronie urządzeń. Skrypty Bash na urządzeniu pobierają przez nie konfigurację i ją wprowadzają.
- System dostarczyłem w Docker Compose, a wymagania techniczne uzgadniałem z producentem urządzeń.
Wykorzystane technologie
- PHP
- Laravel 11
- PostgreSQL
- Redis
- REST API
- WireGuard
- Authentik
- Docker Compose
- Bash
- Laravel Horizon
Notatki z tego projektu
Notatki techniczne powiązane z tym projektem:
Powiązane kompetencje
Powiązane obszary technologiczne:
Powiązana historia pracy: doświadczenie.