chore: Docs umstrukturiert, Client-Updates, Scripts nach scripts/

This commit is contained in:
2026-01-28 20:00:37 +01:00
parent 4b38da3b85
commit 5ba12cb738
70 changed files with 1240 additions and 284 deletions

View File

@@ -0,0 +1,13 @@
Führe diese Befehle in deinem Git Bash oder Terminal aus:
cd c:\Users\User\Documents\GitHub\ANDJJJJJJ
git add .
git commit -m "fix: TypeScript errors & build fixes for Control Panel Redesign
- Fix unused imports (Trash, Filter, Bell, CategoryAdvanced)
- Fix undefined checks for cleanup settings
- Fix cleanupPreview undefined checks
- Fix useTheme unused parameter
- Fix companyLabels type safety
- Build erfolgreich durchgeführt"
git push

71
scripts/COMMIT_MESSAGE.md Normal file
View File

@@ -0,0 +1,71 @@
# Control Panel Redesign & UI Improvements
## Hauptänderungen
### 🎨 Control Panel komplettes Redesign (Version 2.0)
- **Card-basiertes Layout**: Kategorien werden jetzt als interaktive Cards in einem Grid-Layout dargestellt (statt endloser Liste)
- **Side Panel Integration**: Click-to-Configure Pattern - Klick auf Category Card öffnet Side Panel für detaillierte Konfiguration
- **Moderne UX**: Dashboard-artiges Design, weniger wie klassische Settings-Seite, mehr wie moderne SaaS-Produkte
### 🧹 Cleanup Tab Redesign
- **Große Toggle-Cards**: Visuell prominente Cards für "Auto cleanup read emails" und "Delete promotions after X days"
- **Slider-Komponente**: Neue Slider-Komponente für intuitive Tage-Auswahl (statt Number Input)
- **Preset Buttons**: Schnellzugriff auf 7/14/30 Tage für Promotion Cleanup
- **Preview Section**: Zeigt betroffene E-Mails an (wenn Daten vorhanden)
- **Warnungen**: Ruhige Info-Banner bei Delete-Aktionen
### 🏷️ Labels Tab Redesign
- **Tabellenansicht**: Professionelle Tabelle mit Name, Status, Category und Actions
- **Side Panel Editor**: Label-Erstellung/Bearbeitung in Side Panel statt inline Form
- **Responsive Table**: Spalten werden auf Mobile ausgeblendet, wichtige Info bleibt sichtbar
- **Import/Export**: Buttons für Label-Import/Export
### 📐 Layout Verbesserungen
- **Volle Breite**: Dashboard und Settings nutzen jetzt die gesamte verfügbare Breite (keine max-width Beschränkung mehr)
- **Responsive Navigation**: Side Panels werden auf Mobile zu Fullscreen-Modals
- **Verbesserte Header**: Humanere Untertitel und bessere Button-Anordnung
### 🌙 Dark Mode Verbesserungen
- **Privacy & Security**: Alle weißen Felder haben jetzt Dark Mode Varianten (grüne, blaue, rote Info-Boxen)
- **Input-Komponente**: Dark Mode Hintergrund korrigiert (dark:bg-slate-800 statt dark:bg-slate-100)
- **Slider-Komponente**: Dark Mode Styles für Thumb (Webkit & Mozilla)
- **Chevron Icons**: Dark Mode Farben für Advanced Options Toggle
- **Konsistenz**: Alle Komponenten haben jetzt konsistente Dark Mode Unterstützung
## Neue Komponenten
### `client/src/components/ui/side-panel.tsx`
- Radix UI Dialog-basierte Side Panel Komponente
- Slide-in Animation von rechts
- Responsive: Fullscreen auf Mobile, 480px auf Desktop
- Dark Mode Support
### `client/src/components/ui/slider.tsx`
- Range Input Slider Komponente
- Dark Mode Support für Track und Thumb
- Customizable min/max/step Werte
## Geänderte Dateien
- `client/src/pages/Settings.tsx` - Control Panel komplett neu strukturiert
- `client/src/components/PrivacySecurity.tsx` - Dark Mode für alle Info-Boxen
- `client/src/components/ui/input.tsx` - Dark Mode Hintergrund korrigiert
- `client/src/pages/Dashboard.tsx` - Volle Breite Layout
- `client/src/types/settings.ts` - Keine Änderungen (nur Whitespace)
## Technische Details
- **State Management**: Side Panel State für Category Details und Label Editor
- **Responsive Design**: Grid-Layouts passen sich an (1 Spalte Mobile, 2 Tablet, 3 Desktop)
- **Accessibility**: Keyboard Navigation, ARIA Labels, Focus States
- **Performance**: useMemo für gefilterte/sortierte Listen
## Design-Prinzipien
- Viel Whitespace zwischen Cards
- Ruhige Farben (keine grellen Akzente)
- Cards statt Listen
- "Click → Configure" statt sofort sichtbare Controls
- Klare Typografie-Hierarchie
- Icons sparsam aber sinnvoll
- Dark Mode optimiert (nicht zu kontrastreich)

62
scripts/FINAL_COMMIT.bat Normal file
View File

@@ -0,0 +1,62 @@
@echo off
REM Finaler Commit und Push - Führe dieses Skript als Administrator aus
cd /d "%~dp0"
echo ========================================
echo Git Commit und Push
echo ========================================
echo.
REM Versuche Git zu finden
set GIT_PATH=
if exist "C:\Program Files\Git\cmd\git.exe" set GIT_PATH=C:\Program Files\Git\cmd\git.exe
if exist "C:\Program Files (x86)\Git\cmd\git.exe" set GIT_PATH=C:\Program Files (x86)\Git\cmd\git.exe
if exist "%LOCALAPPDATA%\Programs\Git\cmd\git.exe" set GIT_PATH=%LOCALAPPDATA%\Programs\Git\cmd\git.exe
if "%GIT_PATH%"=="" (
echo Git wurde nicht gefunden!
echo.
echo Bitte führe diese Befehle manuell in Git Bash aus:
echo cd c:\Users\User\Documents\GitHub\ANDJJJJJJ
echo git add .
echo git commit -m "fix: TypeScript errors & build fixes for Control Panel Redesign"
echo git push
pause
exit /b 1
)
echo Git gefunden: %GIT_PATH%
echo.
echo [1/3] Staging aller Aenderungen...
"%GIT_PATH%" add .
if errorlevel 1 (
echo Fehler beim Staging!
pause
exit /b 1
)
echo [2/3] Erstelle Commit...
"%GIT_PATH%" commit -m "fix: TypeScript errors & build fixes for Control Panel Redesign" -m "- Fix unused imports (Trash, Filter, Bell, CategoryAdvanced)" -m "- Fix undefined checks for cleanup settings" -m "- Fix cleanupPreview undefined checks" -m "- Fix useTheme unused parameter" -m "- Fix companyLabels type safety" -m "- Build erfolgreich durchgefuehrt"
if errorlevel 1 (
echo Fehler beim Commit!
pause
exit /b 1
)
echo [3/3] Pushe Aenderungen...
"%GIT_PATH%" push
if errorlevel 1 (
echo Fehler beim Push!
pause
exit /b 1
)
echo.
echo ========================================
echo Erfolgreich committed und gepusht!
echo ========================================
echo.
echo Naechster Schritt: Deploye client/dist auf den Server
pause

52
scripts/README.md Normal file
View File

@@ -0,0 +1,52 @@
# Scripts
Dieser Ordner enthält alle Hilfs-Scripts für das Projekt.
## 🚀 Aktive Scripts
### Deployment
- **deploy-build.js** - Node.js Script für Build-Deployment (veraltet, wird durch Webhook ersetzt)
- **deploy-to-server.mjs** - Automatisches Deployment-Skript (wird vom Webhook aufgerufen)
### Setup
- **setup-appwrite.ps1** - Appwrite Setup-Script
- **setup-production.ps1** - Production Setup-Script
## 📦 Veraltete Scripts (können entfernt werden)
Die folgenden Scripts sind veraltet und werden nicht mehr benötigt:
- `git-commit.bat` - Git-Commits sollten direkt über Git gemacht werden
- `git-commit.sh` - Git-Commits sollten direkt über Git gemacht werden
- `git-commit-fix.bat` - Git-Commits sollten direkt über Git gemacht werden
- `FINAL_COMMIT.bat` - Git-Commits sollten direkt über Git gemacht werden
- `run-git-commit.ps1` - Git-Commits sollten direkt über Git gemacht werden
- `COMMIT_COMMANDS.txt` - Temporäre Datei
- `COMMIT_MESSAGE.md` - Temporäre Datei
**Empfehlung:** Diese Dateien können gelöscht werden, da Git-Commits direkt über `git commit` gemacht werden sollten.
## 📝 Verwendung
### Deployment-Script (automatisch)
Das Deployment-Script wird automatisch vom Webhook-Handler aufgerufen. Siehe `docs/deployment/GITEA_WEBHOOK_SETUP.md` für Details.
### Setup-Scripts
```powershell
# Appwrite Setup
.\setup-appwrite.ps1
# Production Setup
.\setup-production.ps1
```
## 🔧 Neue Scripts hinzufügen
Wenn du neue Scripts hinzufügst:
1. Dokumentiere sie in dieser README
2. Füge sie zu `.gitignore` hinzu, falls sie sensible Daten enthalten
3. Stelle sicher, dass sie plattformübergreifend funktionieren (oder dokumentiere Plattform-Anforderungen)

31
scripts/deploy-build.js Normal file
View File

@@ -0,0 +1,31 @@
// Node.js Script zum Ausführen von Git-Befehlen
const { execSync } = require('child_process');
const fs = require('fs');
const path = require('path');
const projectRoot = __dirname;
try {
console.log('📦 Staging aller Änderungen...');
execSync('git add .', { cwd: projectRoot, stdio: 'inherit' });
console.log('💾 Erstelle Commit...');
const commitMessage = `fix: TypeScript errors & build fixes for Control Panel Redesign
- Fix unused imports (Trash, Filter, Bell, CategoryAdvanced)
- Fix undefined checks for cleanup settings
- Fix cleanupPreview undefined checks
- Fix useTheme unused parameter
- Fix companyLabels type safety
- Build erfolgreich durchgeführt`;
execSync(`git commit -m "${commitMessage.replace(/"/g, '\\"')}"`, { cwd: projectRoot, stdio: 'inherit' });
console.log('🚀 Pushe Änderungen...');
execSync('git push', { cwd: projectRoot, stdio: 'inherit' });
console.log('\n✅ Erfolgreich committed und gepusht!');
} catch (error) {
console.error('❌ Fehler:', error.message);
process.exit(1);
}

View File

@@ -0,0 +1,17 @@
@echo off
REM Git Commit Script für TypeScript Fixes
cd /d c:\Users\User\Documents\GitHub\ANDJJJJJJ
echo Staging aller Aenderungen...
git add .
echo Erstelle Commit...
git commit -m "fix: TypeScript errors & build fixes for Control Panel Redesign" -m "- Fix unused imports (Trash, Filter, Bell, CategoryAdvanced)" -m "- Fix undefined checks for cleanup settings" -m "- Fix cleanupPreview undefined checks" -m "- Fix useTheme unused parameter" -m "- Fix companyLabels type safety" -m "- Build erfolgreich durchgefuehrt"
echo Pushe Aenderungen...
git push
echo.
echo Erfolgreich committed und gepusht!
pause

16
scripts/git-commit.bat Normal file
View File

@@ -0,0 +1,16 @@
@echo off
REM Git Commit Script für Control Panel Redesign (Windows Batch)
cd /d c:\Users\User\Documents\GitHub\ANDJJJJJJ
REM Alle Änderungen stagen
git add .
REM Commit mit detaillierter Nachricht
git commit -m "feat: Control Panel Redesign v2.0 & UI Improvements" -m "🎨 Control Panel komplettes Redesign (Version 2.0)" -m "- Card-basiertes Layout: Kategorien als interaktive Cards im Grid" -m "- Side Panel Integration: Click-to-Configure Pattern für Category Details" -m "- Moderne UX: Dashboard-artiges Design statt klassischer Settings-Seite" -m "" -m "🧹 Cleanup Tab Redesign" -m "- Große Toggle-Cards für Auto Cleanup Features" -m "- Neue Slider-Komponente für intuitive Tage-Auswahl" -m "- Preset Buttons (7/14/30 Tage) für Promotion Cleanup" -m "- Preview Section für betroffene E-Mails" -m "" -m "🏷️ Labels Tab Redesign" -m "- Professionelle Tabellenansicht mit Name, Status, Category, Actions" -m "- Side Panel Editor für Label-Erstellung/Bearbeitung" -m "- Responsive Table (Spalten werden auf Mobile ausgeblendet)" -m "- Import/Export Funktionalität" -m "" -m "📐 Layout Verbesserungen" -m "- Volle Breite: Dashboard und Settings nutzen gesamte verfügbare Breite" -m "- Responsive Navigation: Side Panels werden auf Mobile zu Fullscreen-Modals" -m "- Verbesserte Header mit humaneren Untertiteln" -m "" -m "🌙 Dark Mode Verbesserungen" -m "- Privacy & Security: Alle Info-Boxen haben Dark Mode Varianten" -m "- Input-Komponente: Dark Mode Hintergrund korrigiert" -m "- Slider-Komponente: Dark Mode Styles für Track und Thumb" -m "- Chevron Icons: Dark Mode Farben für Advanced Options" -m "- Konsistente Dark Mode Unterstützung in allen Komponenten" -m "" -m "✨ Neue Komponenten" -m "- client/src/components/ui/side-panel.tsx: Radix UI Dialog-basierte Side Panel" -m "- client/src/components/ui/slider.tsx: Range Input Slider mit Dark Mode" -m "" -m "📝 Geänderte Dateien" -m "- client/src/pages/Settings.tsx: Control Panel komplett neu strukturiert" -m "- client/src/components/PrivacySecurity.tsx: Dark Mode für alle Info-Boxen" -m "- client/src/components/ui/input.tsx: Dark Mode Hintergrund korrigiert" -m "- client/src/pages/Dashboard.tsx: Volle Breite Layout"
REM Pushen
git push
echo ✅ Commit erfolgreich erstellt und gepusht!
pause

54
scripts/git-commit.sh Normal file
View File

@@ -0,0 +1,54 @@
#!/bin/bash
# Git Commit Script für Control Panel Redesign
cd c:\Users\User\Documents\GitHub\ANDJJJJJJ
# Alle Änderungen stagen
git add .
# Commit mit detaillierter Nachricht
git commit -m "feat: Control Panel Redesign v2.0 & UI Improvements
🎨 Control Panel komplettes Redesign (Version 2.0)
- Card-basiertes Layout: Kategorien als interaktive Cards im Grid
- Side Panel Integration: Click-to-Configure Pattern für Category Details
- Moderne UX: Dashboard-artiges Design statt klassischer Settings-Seite
🧹 Cleanup Tab Redesign
- Große Toggle-Cards für Auto Cleanup Features
- Neue Slider-Komponente für intuitive Tage-Auswahl
- Preset Buttons (7/14/30 Tage) für Promotion Cleanup
- Preview Section für betroffene E-Mails
🏷️ Labels Tab Redesign
- Professionelle Tabellenansicht mit Name, Status, Category, Actions
- Side Panel Editor für Label-Erstellung/Bearbeitung
- Responsive Table (Spalten werden auf Mobile ausgeblendet)
- Import/Export Funktionalität
📐 Layout Verbesserungen
- Volle Breite: Dashboard und Settings nutzen gesamte verfügbare Breite
- Responsive Navigation: Side Panels werden auf Mobile zu Fullscreen-Modals
- Verbesserte Header mit humaneren Untertiteln
🌙 Dark Mode Verbesserungen
- Privacy & Security: Alle Info-Boxen haben Dark Mode Varianten
- Input-Komponente: Dark Mode Hintergrund korrigiert
- Slider-Komponente: Dark Mode Styles für Track und Thumb
- Chevron Icons: Dark Mode Farben für Advanced Options
- Konsistente Dark Mode Unterstützung in allen Komponenten
✨ Neue Komponenten
- client/src/components/ui/side-panel.tsx: Radix UI Dialog-basierte Side Panel
- client/src/components/ui/slider.tsx: Range Input Slider mit Dark Mode
📝 Geänderte Dateien
- client/src/pages/Settings.tsx: Control Panel komplett neu strukturiert
- client/src/components/PrivacySecurity.tsx: Dark Mode für alle Info-Boxen
- client/src/components/ui/input.tsx: Dark Mode Hintergrund korrigiert
- client/src/pages/Dashboard.tsx: Volle Breite Layout"
# Pushen
git push
echo "✅ Commit erfolgreich erstellt und gepusht!"

View File

@@ -0,0 +1,77 @@
# PowerShell Script zum Ausführen von Git-Befehlen
$ErrorActionPreference = "Stop"
# Git-Pfade zum Durchsuchen
$gitPaths = @(
"git", # Falls im PATH
"C:\Program Files\Git\bin\git.exe",
"C:\Program Files (x86)\Git\bin\git.exe",
"$env:LOCALAPPDATA\Programs\Git\bin\git.exe",
"$env:ProgramFiles\Git\cmd\git.exe",
"$env:ProgramFiles(x86)\Git\cmd\git.exe"
)
$gitExe = $null
foreach ($path in $gitPaths) {
try {
if ($path -eq "git") {
$gitExe = Get-Command git -ErrorAction SilentlyContinue
if ($gitExe) {
$gitExe = $gitExe.Source
break
}
} else {
if (Test-Path $path) {
$gitExe = $path
break
}
}
} catch {
continue
}
}
if (-not $gitExe) {
Write-Host "Git wurde nicht gefunden. Bitte installiere Git oder fuege es zum PATH hinzu." -ForegroundColor Red
Write-Host ""
Write-Host "Alternativ führe diese Befehle manuell in Git Bash aus:" -ForegroundColor Yellow
Write-Host "cd c:\Users\User\Documents\GitHub\ANDJJJJJJ" -ForegroundColor Cyan
Write-Host "git add ." -ForegroundColor Cyan
Write-Host "git commit -m `"feat: Control Panel v2.0 - Cards, Side Panels, Dark Mode, volle Breite`"" -ForegroundColor Cyan
Write-Host "git push" -ForegroundColor Cyan
exit 1
}
Write-Host "Git gefunden: $gitExe" -ForegroundColor Green
Write-Host ""
# Zum Projektverzeichnis wechseln
Set-Location "c:\Users\User\Documents\GitHub\ANDJJJJJJ"
# Git-Befehle ausführen
Write-Host "Staging aller Aenderungen..." -ForegroundColor Yellow
& $gitExe add .
if ($LASTEXITCODE -ne 0) {
Write-Host "❌ Fehler beim Staging" -ForegroundColor Red
exit 1
}
Write-Host "Erstelle Commit..." -ForegroundColor Yellow
& $gitExe commit -m "feat: Control Panel v2.0 - Cards, Side Panels, Dark Mode, volle Breite"
if ($LASTEXITCODE -ne 0) {
Write-Host "❌ Fehler beim Commit" -ForegroundColor Red
exit 1
}
Write-Host "Pushe Aenderungen..." -ForegroundColor Yellow
& $gitExe push
if ($LASTEXITCODE -ne 0) {
Write-Host "❌ Fehler beim Push" -ForegroundColor Red
exit 1
}
Write-Host ""
Write-Host "Erfolgreich committed und gepusht!" -ForegroundColor Green

View File

@@ -0,0 +1,70 @@
# ═══════════════════════════════════════════════════════════════════════════
# EmailSorter - Appwrite Setup Script
# ═══════════════════════════════════════════════════════════════════════════
#
# ⚠️ WICHTIG: Diese Datei ist VERALTET!
#
# Verwende stattdessen:
# cd server
# npm run bootstrap:v2
#
# Oder setze die Umgebungsvariablen in server/.env und führe dann aus:
# cd server
# node bootstrap-v2.mjs
#
# ═══════════════════════════════════════════════════════════════════════════
Write-Host "`n⚠️ WARNUNG: Diese Datei ist veraltet!" -ForegroundColor Yellow
Write-Host "`nBitte verwende stattdessen:" -ForegroundColor White
Write-Host " 1. Erstelle server/.env mit deinen Appwrite Credentials" -ForegroundColor Gray
Write-Host " 2. Führe aus: cd server && npm run bootstrap:v2" -ForegroundColor Gray
Write-Host "`nSiehe APPWRITE_SETUP.md für Details." -ForegroundColor Cyan
Write-Host "`n"
# -----------------------------
# CONFIG (NUR FALLS .env NICHT VORHANDEN)
# -----------------------------
# ⚠️ KEINE HARDCODED API KEYS MEHR!
# Lese aus server/.env oder setze als Umgebungsvariablen
if (-not (Test-Path ".\server\.env")) {
Write-Host "❌ Keine server/.env Datei gefunden!" -ForegroundColor Red
Write-Host "`nBitte erstelle server/.env mit:" -ForegroundColor Yellow
Write-Host " APPWRITE_ENDPOINT=https://appwrite.webklar.com/v1" -ForegroundColor Gray
Write-Host " APPWRITE_PROJECT_ID=deine_projekt_id" -ForegroundColor Gray
Write-Host " APPWRITE_API_KEY=dein_api_key" -ForegroundColor Gray
Write-Host " APPWRITE_DATABASE_ID=emailsorter" -ForegroundColor Gray
Write-Host "`nSiehe server/env.example für ein Template." -ForegroundColor Cyan
exit 1
}
# -----------------------------
# RUN
# -----------------------------
if (-not (Test-Path ".\server")) {
New-Item -ItemType Directory -Path ".\server" | Out-Null
}
Set-Location ".\server"
# Prüfe ob package.json existiert
if (-not (Test-Path "package.json")) {
Write-Host "❌ server/package.json nicht gefunden!" -ForegroundColor Red
Write-Host "Bitte führe zuerst 'npm install' im server Ordner aus." -ForegroundColor Yellow
exit 1
}
Write-Host "`n=== EmailSorter Bootstrap ===" -ForegroundColor Cyan
Write-Host "Verwende bootstrap-v2.mjs (aktuelle Version)" -ForegroundColor Green
Write-Host ""
# Verwende bootstrap-v2.mjs (aktuelle Version)
node bootstrap-v2.mjs
if ($LASTEXITCODE -eq 0) {
Write-Host "`n✅ Bootstrap erfolgreich abgeschlossen!" -ForegroundColor Green
Write-Host "`nDie Datenbank und alle Collections wurden erstellt." -ForegroundColor White
} else {
Write-Host "`n❌ Fehler beim Bootstrap." -ForegroundColor Red
Write-Host "Prüfe die Fehlermeldungen oben." -ForegroundColor Yellow
}

View File

@@ -0,0 +1,142 @@
# 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