3.7 KiB
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:
- 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:
# 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:
- Folder
/var/www/ksef/nie istnieje lub nie ma contentu index.htmlnie jest w/var/www/ksef/- 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/