Files
ksef-pdf-generator/DEPLOYMENT-PRODUCTION.md

3.7 KiB

Wdrażanie KSEF na produkcję (www.sic.pl/ksef/)

Krok 1: Przygotuj artefakty na maszynie lokalnej

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

# 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

# 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

# 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

# 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

# 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:


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:

# 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)

# 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:

# 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:

# 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/