160 lines
3.3 KiB
Markdown
160 lines
3.3 KiB
Markdown
# 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/` 🚀
|