291 lines
6.0 KiB
Markdown
291 lines
6.0 KiB
Markdown
# 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 <PID>
|
|
```
|
|
|
|
---
|
|
|
|
**Nächster Schritt:** [DEPLOYMENT.md](DEPLOYMENT.md)
|