pointcab_webexport/INSTALLATION.md

6.0 KiB

Installation - PointCab Webexport Server

Diese Anleitung beschreibt die komplette Installation auf einem frischen Ubuntu 24.04 Server.

📋 Systemanforderungen

Anforderung Minimum Empfohlen
OS Ubuntu 24.04 LTS Ubuntu 24.04 LTS
RAM 2 GB 4 GB
CPU 2 Kerne 4 Kerne
Speicher 20 GB 50 GB+
Netzwerk Öffentliche IP Öffentliche IP + Domain

🔧 Schritt 1: System vorbereiten

# System aktualisieren
sudo apt update && sudo apt upgrade -y

# Grundlegende Pakete installieren
sudo apt install -y curl wget git unzip build-essential

🐘 Schritt 2: PostgreSQL installieren

# PostgreSQL installieren
sudo apt install -y postgresql postgresql-contrib

# PostgreSQL starten und aktivieren
sudo systemctl start postgresql
sudo systemctl enable postgresql

# PostgreSQL-Version prüfen
psql --version

Datenbank und Benutzer erstellen

# Als postgres-Benutzer anmelden
sudo -u postgres psql

# In der PostgreSQL-Shell:
CREATE USER pointcab_user WITH PASSWORD 'IhrSicheresPasswort';
CREATE DATABASE pointcab_db OWNER pointcab_user;
GRANT ALL PRIVILEGES ON DATABASE pointcab_db TO pointcab_user;
\q

🟢 Schritt 3: Node.js installieren

# NodeSource Repository hinzufügen (Node.js 18.x LTS)
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -

# Node.js installieren
sudo apt install -y nodejs

# Version prüfen
node --version  # sollte v18.x.x zeigen
npm --version

📦 Schritt 4: Projekt installieren

# Verzeichnis erstellen
sudo mkdir -p /var/www/pointcab_webexport_server
sudo chown $USER:$USER /var/www/pointcab_webexport_server

# In das Verzeichnis wechseln
cd /var/www/pointcab_webexport_server

# Repository klonen (oder Dateien kopieren)
# git clone https://your-gitea-server/pointcab-webexport.git .
# ODER: Dateien manuell kopieren

# nodejs_space-Ordner verwenden
cd nodejs_space

# Abhängigkeiten installieren
npm install

⚙️ Schritt 5: Umgebungsvariablen konfigurieren

# .env-Datei erstellen
cat > /var/www/pointcab_webexport_server/nodejs_space/.env << 'EOF'
# Server-Konfiguration
PORT=3000
NODE_ENV=production

# Datenbank-Verbindung
DATABASE_URL="postgresql://pointcab_user:IhrSicheresPasswort@localhost:5432/pointcab_db"

# Upload-Verzeichnis
UPLOAD_DIR=/var/www/pointcab_webexport_server/nodejs_space/uploads

# Session-Secret (ändern Sie dies!)
SESSION_SECRET=ihr-geheimer-session-schluessel-mindestens-32-zeichen

# Admin-Passwort (ändern Sie dies!)
ADMIN_PASSWORD=IhrAdminPasswort
EOF

Wichtig: Ändern Sie alle Passwörter und Secrets!

🗄️ Schritt 6: Datenbank migrieren

cd /var/www/pointcab_webexport_server/nodejs_space

# Prisma-Client generieren
npx prisma generate

# Datenbank-Schema anwenden
npx prisma db push

# (Optional) Prisma Studio zur DB-Inspektion
# npx prisma studio

🔨 Schritt 7: Projekt kompilieren

cd /var/www/pointcab_webexport_server/nodejs_space

# TypeScript kompilieren
npm run build

# Prüfen ob dist/ erstellt wurde
ls -la dist/

🚀 Schritt 8: PM2 installieren und konfigurieren

# PM2 global installieren
sudo npm install -g pm2

# Anwendung starten
cd /var/www/pointcab_webexport_server/nodejs_space
pm2 start dist/main.js --name pointcab-server

# Status prüfen
pm2 status

# Logs anzeigen
pm2 logs pointcab-server

# PM2 Autostart einrichten
pm2 startup
pm2 save

🔍 Schritt 9: Installation verifizieren

# Health-Check
curl http://localhost:3000/health

# Sollte ausgeben: {"status":"ok"}

# Admin-Dashboard testen (im Browser)
# http://IHRE-IP:3000/admin/dashboard

🌐 Schritt 10: Nginx Proxy Manager (Optional)

Installation via Docker

# Docker installieren
sudo apt install -y docker.io docker-compose

# Docker starten
sudo systemctl start docker
sudo systemctl enable docker

# Nginx Proxy Manager starten
mkdir -p ~/nginx-proxy-manager
cd ~/nginx-proxy-manager

cat > docker-compose.yml << 'EOF'
version: '3'
services:
  app:
    image: 'jc21/nginx-proxy-manager:latest'
    restart: unless-stopped
    ports:
      - '80:80'
      - '81:81'
      - '443:443'
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt
EOF

sudo docker-compose up -d

Nginx Proxy Manager konfigurieren

  1. Öffnen Sie http://IHRE-IP:81
  2. Standard-Login: admin@example.com / changeme
  3. Passwort ändern
  4. Neuen Proxy Host hinzufügen:
    • Domain: pointcab-webexport.ihre-domain.de
    • Forward Host: localhost
    • Forward Port: 3000
    • SSL aktivieren (Let's Encrypt)

📁 Upload-Verzeichnis erstellen

mkdir -p /var/www/pointcab_webexport_server/nodejs_space/uploads
chmod 755 /var/www/pointcab_webexport_server/nodejs_space/uploads

🔒 Sicherheitshinweise

  1. Firewall konfigurieren:

    sudo ufw allow 22/tcp    # SSH
    sudo ufw allow 80/tcp    # HTTP
    sudo ufw allow 443/tcp   # HTTPS
    sudo ufw enable
    
  2. Passwörter ändern:

    • PostgreSQL-Passwort
    • Admin-Passwort
    • Session-Secret
  3. Backups einrichten:

    # Datenbank-Backup
    pg_dump -U pointcab_user pointcab_db > backup.sql
    

Checkliste

  • Ubuntu 24.04 installiert
  • System aktualisiert
  • PostgreSQL installiert und konfiguriert
  • Node.js 18.x installiert
  • Projekt-Dateien kopiert
  • .env konfiguriert
  • Datenbank migriert
  • Projekt kompiliert
  • PM2 konfiguriert
  • (Optional) Nginx Proxy Manager konfiguriert
  • Health-Check erfolgreich

🆘 Fehlerbehebung

PostgreSQL-Verbindungsfehler

# PostgreSQL-Status prüfen
sudo systemctl status postgresql

# Logs prüfen
sudo tail -f /var/log/postgresql/postgresql-*-main.log

PM2-Fehler

# Logs anzeigen
pm2 logs pointcab-server --lines 50

# Neustart
pm2 restart pointcab-server

Port bereits belegt

# Prozess auf Port 3000 finden
sudo lsof -i :3000

# Prozess beenden
sudo kill -9 <PID>

Nächster Schritt: DEPLOYMENT.md