94 lines
2.3 KiB
Bash
Executable File
94 lines
2.3 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# SingleChat Installation Script
|
|
# Dieses Skript installiert die SingleChat-Anwendung für Production
|
|
|
|
set -e # Beende bei Fehlern
|
|
|
|
echo "=========================================="
|
|
echo "SingleChat Installation"
|
|
echo "=========================================="
|
|
|
|
# Prüfe ob Node.js installiert ist
|
|
if ! command -v node &> /dev/null; then
|
|
echo "FEHLER: Node.js ist nicht installiert!"
|
|
echo "Bitte installiere Node.js (Version 18 oder höher)"
|
|
exit 1
|
|
fi
|
|
|
|
NODE_VERSION=$(node -v | cut -d'v' -f2 | cut -d'.' -f1)
|
|
if [ "$NODE_VERSION" -lt 18 ]; then
|
|
echo "FEHLER: Node.js Version 18 oder höher erforderlich!"
|
|
echo "Aktuelle Version: $(node -v)"
|
|
exit 1
|
|
fi
|
|
|
|
echo "✓ Node.js Version: $(node -v)"
|
|
|
|
# Installiere Dependencies
|
|
echo ""
|
|
echo "Installiere Dependencies..."
|
|
npm run install:all
|
|
|
|
if [ $? -ne 0 ]; then
|
|
echo "FEHLER: Installation der Dependencies fehlgeschlagen!"
|
|
exit 1
|
|
fi
|
|
|
|
echo "✓ Dependencies installiert"
|
|
|
|
# Baue Client
|
|
echo ""
|
|
echo "Baue Client für Production..."
|
|
npm run build
|
|
|
|
if [ $? -ne 0 ]; then
|
|
echo "FEHLER: Build fehlgeschlagen!"
|
|
exit 1
|
|
fi
|
|
|
|
echo "✓ Client gebaut"
|
|
|
|
# Kopiere dist nach docroot
|
|
echo ""
|
|
echo "Kopiere gebaute Dateien nach docroot..."
|
|
if [ -d "docroot/dist" ]; then
|
|
rm -rf docroot/dist
|
|
fi
|
|
cp -r client/dist docroot/
|
|
|
|
echo "✓ Dateien kopiert"
|
|
|
|
# Erstelle .env Datei falls nicht vorhanden
|
|
if [ ! -f ".env" ]; then
|
|
echo ""
|
|
echo "Erstelle .env Datei..."
|
|
cat > .env << EOF
|
|
NODE_ENV=production
|
|
PORT=4000
|
|
SESSION_SECRET=$(openssl rand -hex 32)
|
|
EOF
|
|
echo "✓ .env Datei erstellt"
|
|
echo "WICHTIG: Bitte ändere SESSION_SECRET in .env!"
|
|
else
|
|
echo "✓ .env Datei existiert bereits"
|
|
fi
|
|
|
|
# Prüfe ob systemd Service existiert
|
|
echo ""
|
|
echo "=========================================="
|
|
echo "Installation abgeschlossen!"
|
|
echo "=========================================="
|
|
echo ""
|
|
echo "Nächste Schritte:"
|
|
echo "1. Überprüfe die .env Datei und passe SESSION_SECRET an"
|
|
echo "2. Stelle sicher, dass Apache korrekt konfiguriert ist"
|
|
echo "3. Starte den Server mit: npm run start:prod"
|
|
echo " oder als systemd Service (siehe install-service.sh)"
|
|
echo ""
|
|
echo "Apache-Konfiguration sollte enthalten:"
|
|
echo " ProxyPass / http://localhost:4000/"
|
|
echo " ProxyPassReverse / http://localhost:4000/"
|
|
echo ""
|
|
|