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

180 lines
3.7 KiB
Markdown

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