Testowy post 2

Cześć wszystkim. Kocham pisać.

Robert Karabasz 21.02.2026, 17:48:43 7 3 min

Podsumowanie prac wdrożeniowych i architektonicznych

W ramach ostatnich prac zrealizowano kompleksowe przygotowanie aplikacji (Backend w Go, Frontend i Dashboard w SvelteKit) do wdrożenia produkcyjnego. Skupiono się na konteneryzacji, rozwiązaniu problemów z budowaniem oraz wdrożeniu solidnej architektury bezpieczeństwa.

1. Konteneryzacja i Optymalizacja (Docker)

  • Multi-stage builds: Stworzono zoptymalizowane pliki Dockerfile dla wszystkich trzech serwisów, wykorzystując wieloetapowe budowanie obrazów w celu zminimalizowania ich rozmiaru końcowego.
  • Aktualizacja środowiska Node.js: Zaktualizowano obrazy bazowe dla aplikacji SvelteKit z node:20-alpine na node:24-alpine (LTS), co pozwoliło na wyeliminowanie 7 krytycznych podatności bezpieczeństwa (vulnerabilities).
  • Odchudzenie backendu: Usunięto z procesu budowania backendu przestarzałe zależności (templ, Tailwind, pliki statyczne), redukując obraz końcowy do minimalistycznego środowiska Alpine uruchamiającego wyłącznie skompilowany plik binarny Go.

2. Dostosowanie SvelteKit do środowiska produkcyjnego

  • Zmiana adaptera: Zmieniono domyślny @sveltejs/adapter-auto na @sveltejs/adapter-node we frontendzie i dashboardzie. Rozwiązało to problem braku katalogu /app/build podczas budowania kontenerów i pozwoliło na poprawne uruchomienie aplikacji w środowisku Node.js.
  • Synchronizacja zależności: Rozwiązano problemy z komendą npm ci w środowisku CI/CD poprzez synchronizację plików package.json i package-lock.json.
  • Konfiguracja portów: Ustandaryzowano przekazywanie portów (np. PORT=3000) poprzez zmienne środowiskowe dla aplikacji SvelteKit.

3. Architektura Bezpieczeństwa (API Key & CORS)

Zaprojektowano i wdrożono bezpieczny model komunikacji Server-to-Server (S2S) pomiędzy aplikacjami SvelteKit a publicznie dostępnym API w Go.

  • Zabezpieczenie Backendu (Go):
    • Zaimplementowano dedykowany middleware sprawdzający obecność i poprawność nagłówka X-API-Key w każdym żądaniu HTTP.
    • Skonfigurowano restrykcyjną politykę CORS (github.com/go-chi/cors), zezwalającą na zapytania wyłącznie z zaufanych domen (frontendu i dashboardu).
  • Integracja we Frontendzie i Dashboardzie (SvelteKit):
    • Zmodyfikowano warstwę SDK (m.in. BaseService, api.ts, authService.ts).
    • Aplikacje SvelteKit, działające w trybie Server-Side Rendering (SSR), automatycznie wstrzykują nagłówek X-API-Key (pobierany z bezpiecznych zmiennych środowiskowych $env/dynamic/private) do każdego zapytania fetch kierowanego do backendu.
    • Izolacja sekretów: Dzięki architekturze SSR, klucz API nigdy nie trafia do przeglądarki użytkownika, co gwarantuje najwyższy poziom bezpieczeństwa.

4. Operacje na repozytorium (Git)

  • Czyszczenie historii: Rozwiązano problem z wypychaniem (push) repozytorium backendu na GitHub. Użyto narzędzia git filter-branch do usunięcia z historii gita dużego pliku binarnego (tmp/main.exe - 13MB), który blokował synchronizację.
  • Weryfikacja .gitignore: Upewniono się, że pliki .env zawierające sekrety są poprawnie ignorowane i nie trafiają do repozytorium.

5. Gotowość na skalowanie (Aplikacja Mobilna)

Przyjęta architektura (publiczny backend zabezpieczony kluczem API) jest w pełni gotowa na przyszłą rozbudowę systemu. W przypadku tworzenia aplikacji mobilnej, wystarczy zaszyć w niej ten sam API_KEY (lub wygenerować osobny klucz dla platform mobilnych), co pozwoli na bezpośrednią i bezpieczną komunikację z backendem bez konieczności przebudowywania obecnej infrastruktury.

Inne które mogą Ci się spodobać

Sekcja komentarzy

Liczba komentarzy: 1
0
admin 3 godziny temu

Ale ciakawe