# ⚡ SZYBKI START - eSesja Analytics API v2.0

## 🎯 Co musisz zrobić (10 minut)

### 1. Skopiuj pliki na serwer
```bash
# Utwórz katalog
sudo mkdir -p /var/www/esesja-api
sudo chown $USER:$USER /var/www/esesja-api

# Skopiuj wszystkie pliki z tego folderu do /var/www/esesja-api
```

### 2. Zainstaluj zależności
```bash
cd /var/www/esesja-api
npm install
```

### 3. Skonfiguruj bazę danych
```bash
# Zaloguj się do MySQL
sudo mysql -u root -p
```

```sql
-- Utwórz użytkownika (ZMIEŃ HASŁO!)
CREATE USER 'statystyki_user'@'localhost' IDENTIFIED BY 'TWOJE_BEZPIECZNE_HASLO';
GRANT SELECT, INSERT, UPDATE ON statystyki.* TO 'statystyki_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
```

### 4. Konfiguracja .env
```bash
# Skopiuj i edytuj
cp .env.example .env
nano .env
```

**Najważniejsze ustawienia:**
```env
DB_PASSWORD=TWOJE_BEZPIECZNE_HASLO
ALLOWED_ORIGINS=https://twoja-domena.pl
```

### 5. Utwórz katalog na logi
```bash
sudo mkdir -p /var/log/esesja-api
sudo chown $USER:$USER /var/log/esesja-api
```

### 6. Test lokalny
```bash
node server.js
```

Jeśli widzisz:
```
✓ Połączenie z bazą danych MySQL nawiązane pomyślnie
Server running on port 3001
```

To działa! Zatrzymaj (Ctrl+C) i przejdź dalej.

### 7. Uruchom przez PM2
```bash
# Zainstaluj PM2 (jeśli nie masz)
sudo npm install -g pm2

# Uruchom API
pm2 start ecosystem.config.js

# Sprawdź status
pm2 status

# Zapisz konfigurację
pm2 save

# Autostart po restarcie serwera
pm2 startup
# Wykonaj komendę którą wyświetli PM2
```

### 8. Konfiguracja Apache (Reverse Proxy)
```bash
# Włącz moduły
sudo a2enmod proxy proxy_http headers rewrite

# Utwórz konfigurację
sudo nano /etc/apache2/sites-available/esesja-api.conf
```

**Wklej (dla subdomena api.twoja-domena.pl):**
```apache
<VirtualHost *:80>
    ServerName api.twoja-domena.pl
    
    ProxyPreserveHost On
    ProxyPass / http://localhost:3001/
    ProxyPassReverse / http://localhost:3001/
    
    ErrorLog ${APACHE_LOG_DIR}/esesja-api-error.log
    CustomLog ${APACHE_LOG_DIR}/esesja-api-access.log combined
</VirtualHost>
```

```bash
# Włącz konfigurację
sudo a2ensite esesja-api.conf
sudo apache2ctl configtest
sudo systemctl restart apache2
```

### 9. SSL (HTTPS) - WAŻNE!
```bash
# Zainstaluj certbot
sudo apt install certbot python3-certbot-apache

# Uzyskaj certyfikat SSL
sudo certbot --apache -d api.twoja-domena.pl

# Wybierz opcję przekierowania HTTP -> HTTPS
```

### 10. Test końcowy
```bash
# Test lokalny
curl http://localhost:3001/health

# Test przez Apache (z zewnątrz)
curl https://api.twoja-domena.pl/health
```

Jeśli oba zwracają:
```json
{"success":true,"status":"OK",...}
```

**🎉 GOTOWE! API działa!**

---

## 📋 Przydatne komendy

### PM2
```bash
pm2 status              # Status API
pm2 logs esesja-api     # Logi na żywo
pm2 restart esesja-api  # Restart
pm2 stop esesja-api     # Stop
```

### Logi
```bash
# Logi aplikacji
tail -f /var/log/esesja-api/api-$(date +%Y-%m-%d).log

# Logi błędów
tail -f /var/log/esesja-api/error-$(date +%Y-%m-%d).log

# Logi Apache
sudo tail -f /var/log/apache2/esesja-api-access.log
```

### Test endpointów
```bash
./test-api.sh https://api.twoja-domena.pl
```

---

## 🐛 Problemy?

### API nie startuje
```bash
pm2 logs esesja-api --err
```
Sprawdź:
- Hasło do MySQL w .env
- Czy katalog /var/log/esesja-api istnieje
- Czy port 3001 jest wolny: `sudo netstat -tulpn | grep 3001`

### 502 Bad Gateway
```bash
pm2 restart esesja-api
sudo systemctl restart apache2
```

### CORS errors
Dodaj domenę frontendu do `ALLOWED_ORIGINS` w .env i restartuj:
```bash
pm2 restart esesja-api
```

---

## 📚 Pełna dokumentacja

- **INSTALLATION.md** - Szczegółowa instrukcja instalacji
- **API_DOCUMENTATION.md** - Dokumentacja wszystkich endpointów
- **README.md** - Ogólne informacje o projekcie

---

## ✅ Checklist bezpieczeństwa

- [ ] Zmieniono domyślne hasło MySQL
- [ ] Skonfigurowano SSL/HTTPS
- [ ] Ustawiono właściwe domeny w ALLOWED_ORIGINS
- [ ] Zabezpieczono plik .env (chmod 600)
- [ ] Skonfigurowano firewall
- [ ] Włączono automatyczny restart PM2

---

**Potrzebujesz pomocy?** Sprawdź pełną dokumentację w INSTALLATION.md

**Wersja:** 2.0.0  
**Data:** 2025-12-25
