# Instrukcja Deployment aplikacji KSEF PDF Generator na nginx ## 1. Przygotowanie artefaktów Aplikacja została już zbudowana do folderu `dist-app/`: ```bash cd /home/ms/projekty/fv-ksef-nodejs/ksef-pdf-generator # Jeśli potrzebujesz ponownie zbudować: npm run build:app ``` Zawartość `dist-app/`: - `index.html` - główny plik HTML (punkt wejścia SPA) - `assets/` - folder ze skonkatenowanymi JS, CSS i zasobami --- ## 2. Deployment na serwer docelowy ### a) Zkopuj artefakty do serwera ```bash # Lokalnie, na maszynie z kodem: scp -r dist-app/ user@www.sic.pl:/var/www/ksef/ # LUB jeśli deployment robisz z serwera: scp -r /home/ms/projekty/fv-ksef-nodejs/ksef-pdf-generator/dist-app/ /var/www/ksef/ ``` ### b) Upewnij się, że nginx ma uprawnienia ```bash sudo chown -R www-data:www-data /var/www/ksef/ sudo chmod -R 755 /var/www/ksef/ ``` --- ## 3. Konfiguracja nginx ### Opcja A: Dodaj blok do istniejącego `/etc/nginx/nginx.conf` 1. Otwórz `/etc/nginx/nginx.conf`: ```bash sudo nano /etc/nginx/nginx.conf ``` 2. W sekcji `http {}` dodaj: ```nginx include /etc/nginx/conf.d/ksef.conf; ``` ### Opcja B: Utwórz osobny plik konfigu 1. Zkopuj `nginx-ksef.conf` z repozytorium: ```bash sudo cp nginx-ksef.conf /etc/nginx/conf.d/ksef.conf ``` 2. **WAŻNE:** Edytuj `/etc/nginx/conf.d/ksef.conf` i zmień scieżki: ```nginx # ZMIEŃ TĘ LINIĘ: root /home/ms/projekty/fv-ksef-nodejs/ksef-pdf-generator/dist-app; alias /home/ms/projekty/fv-ksef-nodejs/ksef-pdf-generator/dist-app/; # NA TWOJE ŚCIEŻKI W PRODUKCJI, np: root /var/www/ksef; alias /var/www/ksef/; ``` --- ## 4. Testowanie konfigu i restartowanie nginx ```bash # Sprawdź składnię konfigu sudo nginx -t # Jeśli OK, restartuj nginx sudo systemctl restart nginx # Lub reload (bez drop current connections): sudo systemctl reload nginx ``` --- ## 5. Weryfikacja Otwórz w przeglądarce: **http://www.sic.pl/ksef/** Powinieneś zobaczyć interfejs aplikacji z polami do wgrania XML-ów. --- ## 6. Logi i debugowanie Logi nginx: ```bash sudo tail -f /var/log/nginx/ksef-access.log sudo tail -f /var/log/nginx/ksef-error.log ``` Jeśli widzisz błędy 404 na asetach, sprawdź: - Ścieżkę w `alias` / `root` - Uprawnienia folderu `/var/www/ksef/` - Że `dist-app/index.html` istnieje --- ## 7. HTTPS (SSL/TLS) Aby używać HTTPS: 1. Uzyskaj certyfikat (np. Let's Encrypt): ```bash sudo certbot certonly --webroot -w /var/www/ksef -d www.sic.pl ``` 2. Odkomentuj blok `server { listen 443 ssl ... }` w `nginx-ksef.conf` i wstaw ścieżki certyfikatu. 3. Konfiguruj HTTP → HTTPS redirect. --- ## 8. Aktualizacja aplikacji (CI/CD) Podczas deployment nowej wersji: 1. Zbuduj aplikację lokalnie: ```bash npm run build:app ``` 2. Zkopuj do serwera (zastępując starą wersję): ```bash scp -r dist-app/* user@www.sic.pl:/var/www/ksef/ ``` 3. Cache przeglądarki: ponieważ `index.html` nie ma cache (`max-age=0`), przeglądarki zawsze pobiorą najnowszą wersję przy następnej wizycie. --- ## Struktura produkcji ``` /var/www/ksef/ ├── index.html (punkt wejścia, no cache) ├── assets/ │ ├── index-HASH.js (bundled app, cached) │ └── index-HASH.css (bundled styles, cached) ``` -- **Gotowe!** Aplikacja powinna być dostępna na `http://www.sic.pl/ksef/` 🚀