143 lines
6.1 KiB
PowerShell
143 lines
6.1 KiB
PowerShell
# EmailSorter Production Setup Script
|
|
# Dieses Script hilft beim Setup für Production
|
|
|
|
Write-Host "========================================" -ForegroundColor Cyan
|
|
Write-Host "EmailSorter Production Setup" -ForegroundColor Cyan
|
|
Write-Host "========================================" -ForegroundColor Cyan
|
|
Write-Host ""
|
|
|
|
# Prüfe ob Node.js installiert ist
|
|
Write-Host "[1/5] Prüfe Node.js Installation..." -ForegroundColor Yellow
|
|
try {
|
|
$nodeVersion = node --version
|
|
Write-Host "✓ Node.js gefunden: $nodeVersion" -ForegroundColor Green
|
|
} catch {
|
|
Write-Host "✗ Node.js ist nicht installiert!" -ForegroundColor Red
|
|
Write-Host " Bitte installiere Node.js von https://nodejs.org/" -ForegroundColor Yellow
|
|
exit 1
|
|
}
|
|
|
|
# Prüfe ob PM2 installiert ist
|
|
Write-Host ""
|
|
Write-Host "[2/5] Prüfe PM2 Installation..." -ForegroundColor Yellow
|
|
try {
|
|
$pm2Version = pm2 --version
|
|
Write-Host "✓ PM2 gefunden: $pm2Version" -ForegroundColor Green
|
|
} catch {
|
|
Write-Host "✗ PM2 ist nicht installiert" -ForegroundColor Yellow
|
|
Write-Host " Installiere PM2..." -ForegroundColor Yellow
|
|
npm install -g pm2
|
|
Write-Host "✓ PM2 installiert" -ForegroundColor Green
|
|
}
|
|
|
|
# Backend Setup
|
|
Write-Host ""
|
|
Write-Host "[3/5] Backend Setup..." -ForegroundColor Yellow
|
|
$serverPath = Join-Path $PSScriptRoot "server"
|
|
if (Test-Path $serverPath) {
|
|
Set-Location $serverPath
|
|
|
|
# Prüfe .env Datei
|
|
if (-not (Test-Path ".env")) {
|
|
Write-Host "⚠ .env Datei nicht gefunden!" -ForegroundColor Yellow
|
|
Write-Host " Erstelle .env aus env.example..." -ForegroundColor Yellow
|
|
Copy-Item "env.example" ".env"
|
|
Write-Host " ⚠ WICHTIG: Bearbeite server/.env und setze die Production-Werte:" -ForegroundColor Red
|
|
Write-Host " - NODE_ENV=production" -ForegroundColor Yellow
|
|
Write-Host " - FRONTEND_URL=https://emailsorter.webklar.com" -ForegroundColor Yellow
|
|
Write-Host " - CORS_ORIGIN=https://emailsorter.webklar.com" -ForegroundColor Yellow
|
|
Write-Host " - BASE_URL=https://api.emailsorter.webklar.com (oder deine API URL)" -ForegroundColor Yellow
|
|
Write-Host ""
|
|
Write-Host " Drücke Enter, wenn du die .env Datei bearbeitet hast..." -ForegroundColor Cyan
|
|
Read-Host
|
|
}
|
|
|
|
# Installiere Dependencies
|
|
Write-Host " Installiere Backend Dependencies..." -ForegroundColor Yellow
|
|
npm install
|
|
Write-Host "✓ Backend Dependencies installiert" -ForegroundColor Green
|
|
|
|
# Prüfe ob Server bereits läuft
|
|
$pm2List = pm2 list 2>&1
|
|
if ($pm2List -match "emailsorter-api") {
|
|
Write-Host " Server läuft bereits. Neustart..." -ForegroundColor Yellow
|
|
pm2 restart emailsorter-api
|
|
} else {
|
|
Write-Host " Starte Backend Server mit PM2..." -ForegroundColor Yellow
|
|
pm2 start index.mjs --name emailsorter-api
|
|
pm2 save
|
|
}
|
|
|
|
Write-Host "✓ Backend Server gestartet" -ForegroundColor Green
|
|
Write-Host " Status: pm2 status" -ForegroundColor Cyan
|
|
Write-Host " Logs: pm2 logs emailsorter-api" -ForegroundColor Cyan
|
|
} else {
|
|
Write-Host "✗ Server Verzeichnis nicht gefunden!" -ForegroundColor Red
|
|
}
|
|
|
|
# Frontend Build
|
|
Write-Host ""
|
|
Write-Host "[4/5] Frontend Build..." -ForegroundColor Yellow
|
|
$clientPath = Join-Path $PSScriptRoot "client"
|
|
if (Test-Path $clientPath) {
|
|
Set-Location $clientPath
|
|
|
|
# Prüfe .env.production
|
|
if (-not (Test-Path ".env.production")) {
|
|
Write-Host " Erstelle .env.production..." -ForegroundColor Yellow
|
|
$envContent = @"
|
|
VITE_APPWRITE_ENDPOINT=https://appwrite.webklar.com/v1
|
|
VITE_APPWRITE_PROJECT_ID=DEINE_PROJEKT_ID
|
|
VITE_API_URL=https://api.emailsorter.webklar.com
|
|
"@
|
|
Set-Content -Path ".env.production" -Value $envContent
|
|
Write-Host " ⚠ WICHTIG: Bearbeite client/.env.production und setze die richtigen Werte!" -ForegroundColor Red
|
|
Write-Host ""
|
|
Write-Host " Drücke Enter, wenn du die .env.production Datei bearbeitet hast..." -ForegroundColor Cyan
|
|
Read-Host
|
|
}
|
|
|
|
# Installiere Dependencies
|
|
Write-Host " Installiere Frontend Dependencies..." -ForegroundColor Yellow
|
|
npm install
|
|
Write-Host "✓ Frontend Dependencies installiert" -ForegroundColor Green
|
|
|
|
# Build
|
|
Write-Host " Baue Frontend für Production..." -ForegroundColor Yellow
|
|
npm run build
|
|
Write-Host "✓ Frontend Build abgeschlossen" -ForegroundColor Green
|
|
Write-Host " Build-Ordner: client/dist" -ForegroundColor Cyan
|
|
Write-Host " ⚠ WICHTIG: Deploye den client/dist Ordner zu deinem Web-Server!" -ForegroundColor Yellow
|
|
} else {
|
|
Write-Host "✗ Client Verzeichnis nicht gefunden!" -ForegroundColor Red
|
|
}
|
|
|
|
# Zusammenfassung
|
|
Write-Host ""
|
|
Write-Host "[5/5] Zusammenfassung" -ForegroundColor Yellow
|
|
Write-Host "========================================" -ForegroundColor Cyan
|
|
Write-Host "✓ Backend Setup abgeschlossen" -ForegroundColor Green
|
|
Write-Host "✓ Frontend Build abgeschlossen" -ForegroundColor Green
|
|
Write-Host ""
|
|
Write-Host "⚠ NOCH ZU TUN:" -ForegroundColor Red
|
|
Write-Host ""
|
|
Write-Host "1. APPWRITE CORS KONFIGURIEREN:" -ForegroundColor Yellow
|
|
Write-Host " - Gehe zu https://appwrite.webklar.com" -ForegroundColor White
|
|
Write-Host " - Öffne dein Projekt" -ForegroundColor White
|
|
Write-Host " - Settings → Platforms → Add Platform" -ForegroundColor White
|
|
Write-Host " - Hostname: emailsorter.webklar.com" -ForegroundColor White
|
|
Write-Host " - Origin: https://emailsorter.webklar.com" -ForegroundColor White
|
|
Write-Host ""
|
|
Write-Host "2. FRONTEND DEPLOYEN:" -ForegroundColor Yellow
|
|
Write-Host " - Kopiere client/dist zu deinem Web-Server" -ForegroundColor White
|
|
Write-Host " - Stelle sicher, dass die Domain richtig konfiguriert ist" -ForegroundColor White
|
|
Write-Host ""
|
|
Write-Host "3. BACKEND ÜBERWACHEN:" -ForegroundColor Yellow
|
|
Write-Host " - pm2 status (Server Status prüfen)" -ForegroundColor White
|
|
Write-Host " - pm2 logs emailsorter-api (Logs ansehen)" -ForegroundColor White
|
|
Write-Host " - pm2 monit (Live Monitoring)" -ForegroundColor White
|
|
Write-Host ""
|
|
Write-Host "========================================" -ForegroundColor Cyan
|
|
|
|
Set-Location $PSScriptRoot
|