5.2 KiB
5.2 KiB
Deployment - PointCab Webexport Server
Diese Anleitung beschreibt den Deployment-Prozess für Updates und neue Versionen.
📋 Voraussetzungen
- Server bereits installiert (siehe INSTALLATION.md)
- SSH-Zugang zum Server
- PM2 läuft
🚀 Standard-Deployment
Methode 1: Automatisches Deployment (empfohlen)
# Auf dem Server
cd /var/www/pointcab_webexport_server
# Deployment-Script ausführen
sudo ./scripts/deploy.sh
Methode 2: Manuelles Deployment
# 1. Zum Projekt wechseln
cd /var/www/pointcab_webexport_server/nodejs_space
# 2. Aktuelle Version sichern
BACKUP_DIR="/var/www/pointcab_webexport_server/backups/$(date +%Y%m%d_%H%M%S)"
mkdir -p "$BACKUP_DIR"
cp -r src/ "$BACKUP_DIR/"
cp -r dist/ "$BACKUP_DIR/"
# 3. Neue Dateien kopieren (via Git oder SCP)
git pull origin main
# ODER
# scp -r neue_dateien/* user@server:/var/www/pointcab_webexport_server/nodejs_space/
# 4. Abhängigkeiten aktualisieren
npm install
# 5. TypeScript kompilieren
npm run build
# 6. PM2 neustarten
pm2 restart pointcab-server
# 7. Status prüfen
pm2 status
curl http://localhost:3000/health
⚙️ Umgebungsvariablen
Erforderliche Variablen
| Variable | Beschreibung | Beispiel |
|---|---|---|
PORT |
Server-Port | 3000 |
NODE_ENV |
Umgebung | production |
DATABASE_URL |
PostgreSQL-Verbindung | postgresql://user:pass@localhost:5432/db |
UPLOAD_DIR |
Upload-Verzeichnis | /var/www/.../uploads |
SESSION_SECRET |
Session-Verschlüsselung | mindestens-32-zeichen |
ADMIN_PASSWORD |
Admin-Zugang | sicheres-passwort |
.env-Beispiel
PORT=3000
NODE_ENV=production
DATABASE_URL="postgresql://pointcab_user:password@localhost:5432/pointcab_db"
UPLOAD_DIR=/var/www/pointcab_webexport_server/nodejs_space/uploads
SESSION_SECRET=ihr-geheimer-session-schluessel-mindestens-32-zeichen
ADMIN_PASSWORD=IhrAdminPasswort
🗄️ Datenbank-Migration
Bei Schema-Änderungen
cd /var/www/pointcab_webexport_server/nodejs_space
# Prisma-Client neu generieren
npx prisma generate
# Schema anwenden (ohne Datenverlust)
npx prisma db push
# ODER: Migration erstellen und anwenden
npx prisma migrate deploy
Datenbank-Schema prüfen
# Aktuelles Schema anzeigen
npx prisma studio
# Oder via SQL
sudo -u postgres psql -d pointcab_db -c "\d project"
🔄 PM2-Konfiguration
ecosystem.config.js erstellen (Optional)
cat > /var/www/pointcab_webexport_server/nodejs_space/ecosystem.config.js << 'EOF'
module.exports = {
apps: [{
name: 'pointcab-server',
script: './dist/main.js',
instances: 1,
exec_mode: 'fork',
autorestart: true,
watch: false,
max_memory_restart: '1G',
env_production: {
NODE_ENV: 'production',
PORT: 3000
}
}]
};
EOF
PM2-Befehle
# Mit ecosystem.config.js starten
pm2 start ecosystem.config.js --env production
# Status
pm2 status
# Logs
pm2 logs pointcab-server
# Neustart
pm2 restart pointcab-server
# Stop
pm2 stop pointcab-server
# Löschen
pm2 delete pointcab-server
# Autostart speichern
pm2 save
🌐 Nginx Proxy Manager Setup
Proxy Host Konfiguration
-
Nginx Proxy Manager öffnen:
http://server-ip:81 -
Neuen Proxy Host hinzufügen:
- Domain Names:
pointcab-webexport.ihre-domain.de - Scheme:
http - Forward Hostname/IP:
localhost - Forward Port:
3000 - Websockets Support: ☑️ aktivieren
- Domain Names:
-
SSL konfigurieren:
- SSL Tab öffnen
- Request a new SSL Certificate
- Force SSL: ☑️ aktivieren
- HTTP/2 Support: ☑️ aktivieren
Custom Nginx Konfiguration (Optional)
# Größere Uploads erlauben
client_max_body_size 500M;
# Timeout erhöhen
proxy_read_timeout 300;
proxy_connect_timeout 300;
proxy_send_timeout 300;
✅ Deployment-Checkliste
Vor dem Deployment
- Backup erstellt
- Änderungen getestet
- .env-Datei aktuell
Nach dem Deployment
- PM2 läuft (
pm2 status) - Health-Check erfolgreich (
curl localhost:3000/health) - Admin-Dashboard erreichbar
- Upload-Funktion getestet
- Logs geprüft (
pm2 logs)
🔙 Rollback
Bei Problemen
# Letztes Backup finden
ls -la /var/www/pointcab_webexport_server/backups/
# Backup wiederherstellen
BACKUP="/var/www/pointcab_webexport_server/backups/YYYYMMDD_HHMMSS"
cp -r "$BACKUP/src/" /var/www/pointcab_webexport_server/nodejs_space/
cp -r "$BACKUP/dist/" /var/www/pointcab_webexport_server/nodejs_space/
# Server neustarten
pm2 restart pointcab-server
📊 Monitoring
Logs überwachen
# Echtzeit-Logs
pm2 logs pointcab-server
# Letzte 100 Zeilen
pm2 logs pointcab-server --lines 100
# Fehler-Logs
pm2 logs pointcab-server --err
System-Ressourcen
# PM2 Monitoring
pm2 monit
# Speicherverbrauch
pm2 info pointcab-server
🔒 Sicherheit beim Deployment
-
Keine Secrets im Repository:
.envist in.gitignore- Passwörter niemals committen
-
Backups vor Updates:
- Immer Backup erstellen
- Backup-Pfad dokumentieren
-
Test vor Produktion:
- Änderungen lokal testen
- Staging-Umgebung nutzen (wenn vorhanden)
Siehe auch: MAINTENANCE.md für Wartungsaufgaben