# Wdrażanie KSEF na produkcję (www.sic.pl/ksef/) ## Krok 1: Przygotuj artefakty na maszynie lokalnej ```bash cd /home/ms/projekty/fv-ksef-nodejs/ksef-pdf-generator # Zbuduj aplikację SPA npm run build:app # Powinnien powstać folder dist-app/ z zawartością: ls -la dist-app/ # index.html # assets/index-HASH.js ``` --- ## Krok 2: Prześlij pliki na serwer docelowy (10.1.1.3) ### 2a. Skopiuj artefakty aplikacji ```bash # Z lokalnej maszyny prześlij dist-app/* do /var/www/ksef/ scp -r dist-app/* ms@10.1.1.3:/home/ms/projekty/ksef/ # LUB jeśli bezpośrednio na serwerze, skopiuj z repo: scp -r dist-app/* ms@10.1.1.3:/var/www/ksef/ ``` ### 2b. Na serwerze docelowym, ustaw uprawnienia ```bash # Zaloguj się na serwer: ssh ms@10.1.1.3 # Stwórz folder jeśli go nie ma sudo mkdir -p /var/www/ksef # Ustaw właściciela i uprawnienia sudo chown -R www-data:www-data /var/www/ksef sudo chmod -R 755 /var/www/ksef ``` --- ## Krok 3: Zaktualizuj nginx config ### 3a. Prześlij nowy default.conf ```bash # Z lokalnego repo scp default.conf ms@10.1.1.3:/home/ms/ # Lub na serwerze, utwórz plik: nano /etc/nginx/conf.d/default.conf ``` ### 3b. Na serwerze docelowym, zastąp config ```bash # Backup starego configu sudo cp /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.backup # Wstaw nowy config (z wdrażanego repo) sudo cp /home/ms/default.conf /etc/nginx/conf.d/default.conf # LUB ręcznie: skopiuj zawartość pliku z repo i wklej do /etc/nginx/conf.d/default.conf ``` --- ## Krok 4: Zweryfikuj nginx config i restartuj ```bash # Na serwerze: sprawdź składnię sudo nginx -t # Jeśli "syntax is ok, test successful": sudo systemctl restart nginx # Sprawdź status sudo systemctl status nginx ``` --- ## Krok 5: Testowanie Otwórz w przeglądarce: - **http://www.sic.pl/ksef/** ← aplikacja PDF Generator - **http://www.sic.pl/** ← pozostała zawartość www.sic.pl (bez zmian) --- ## Struktura na serwerze docelowym ``` /var/www/ ├── sic/ ← istniejąca zawartość www.sic.pl ├── esbr/ ← istniejąca zawartość www.esbr.pl ├── sobczak/ ← istniejąca zawartość www.sobczak.org └── ksef/ ← NOWA: aplikacja KSEF ├── index.html (punkt wejścia, no-cache) └── assets/ └── index-HASH.js (cached) ``` --- ## Logi i debugowanie Na serwerze: ```bash # Logi dostępu sudo tail -f /var/log/nginx/access.log | grep ksef # Logi błędów sudo tail -f /var/log/nginx/error.log # Test zaraz po starcie curl -I http://localhost/ksef/ ``` --- ## Aktualizacja aplikacji (dla przyszłych wersji) ```bash # Lokalnie: zbuduj nową wersję npm run build:app # Prześlij do serwera scp -r dist-app/* ms@10.1.1.3:/var/www/ksef/ # nginx automatycznie serwuje nową wersję # (index.html nie ma cache, assety mają nowe hashe) ``` --- ## Jeśli coś nie działa ### Problem: 404 na `/ksef/` **Powody:** 1. Folder `/var/www/ksef/` nie istnieje lub nie ma contentu 2. `index.html` nie jest w `/var/www/ksef/` 3. Błędy uprawnienia (nginx nie może czytać) **Rozwiązanie:** ```bash # Sprawdź zawartość ls -la /var/www/ksef/ # Sprawdź uprawnienia stat /var/www/ksef/ # Ustaw uprawnienia na nowo sudo chown -R www-data:www-data /var/www/ksef/ sudo chmod -R 755 /var/www/ksef/ ``` ### Problem: assety (JS/CSS) nie ładują się **Powód:** Zła ścieżka w `alias` w nginx config **Sprawdzenie:** ```bash # Sprawdź co jest w dist-app/assets/ ls -la /var/www/ksef/assets/ # Jeśli puste, znaczy że dist-app/ nie został skopiowany poprawnie ``` --- **Gotowe!** Po wykonaniu powyższych kroków, aplikacja powinna być dostępna na 🎉 **http://www.sic.pl/ksef/**