# 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 ```bash # 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 ```bash # 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 ```bash # 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 ```bash # 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 ```bash # 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 ```bash # .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 ```bash 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 ```bash 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 ```bash # 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 ```bash # 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 ```bash # 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 ```bash mkdir -p /var/www/pointcab_webexport_server/nodejs_space/uploads chmod 755 /var/www/pointcab_webexport_server/nodejs_space/uploads ``` ## 🔒 Sicherheitshinweise 1. **Firewall konfigurieren:** ```bash 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:** ```bash # 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 ```bash # PostgreSQL-Status prüfen sudo systemctl status postgresql # Logs prüfen sudo tail -f /var/log/postgresql/postgresql-*-main.log ``` ### PM2-Fehler ```bash # Logs anzeigen pm2 logs pointcab-server --lines 50 # Neustart pm2 restart pointcab-server ``` ### Port bereits belegt ```bash # Prozess auf Port 3000 finden sudo lsof -i :3000 # Prozess beenden sudo kill -9 ``` --- **Nächster Schritt:** [DEPLOYMENT.md](DEPLOYMENT.md)