Files
Emailsorter/scripts/setup-appwrite-cors.ps1
ANDJ a28ca580d2 Appwrite Fix 1.
Hopefully i can create accounts
2026-01-29 16:56:27 +01:00

146 lines
6.8 KiB
PowerShell

# ═══════════════════════════════════════════════════════════════════════════
# EmailSorter - Appwrite CORS Platform Setup (Automatisch)
# ═══════════════════════════════════════════════════════════════════════════
# Dieses Script fügt automatisch die Production-Platform zu Appwrite hinzu,
# um CORS-Fehler zu beheben.
#
# Voraussetzungen:
# - Appwrite läuft unter https://appwrite.webklar.com
# - Du bist bereits eingeloggt in Appwrite (Browser-Session)
# - PowerShell ExecutionPolicy erlaubt Scripts (Set-ExecutionPolicy RemoteSigned)
# ═══════════════════════════════════════════════════════════════════════════
param(
[string]$AppwriteUrl = "https://appwrite.webklar.com",
[string]$ProjectId = "",
[string]$PlatformHostname = "emailsorter.webklar.com",
[string]$PlatformOrigin = "https://emailsorter.webklar.com"
)
# Lade .env Datei falls vorhanden
$envFile = "..\server\.env"
if (Test-Path $envFile) {
Get-Content $envFile | ForEach-Object {
if ($_ -match '^\s*([^#][^=]*)=(.*)$') {
$key = $matches[1].Trim()
$value = $matches[2].Trim()
[Environment]::SetEnvironmentVariable($key, $value, "Process")
}
}
}
# Verwende Project ID aus .env falls nicht als Parameter übergeben
if ([string]::IsNullOrEmpty($ProjectId)) {
$ProjectId = $env:APPWRITE_PROJECT_ID
}
if ([string]::IsNullOrEmpty($ProjectId)) {
Write-Host "❌ Keine Project ID gefunden!" -ForegroundColor Red
Write-Host " Bitte gib die Project ID als Parameter an oder setze APPWRITE_PROJECT_ID in server/.env" -ForegroundColor Yellow
exit 1
}
Write-Host "`n🔧 Appwrite CORS Platform Setup" -ForegroundColor Cyan
Write-Host "═══════════════════════════════════════════════════════════════" -ForegroundColor Cyan
Write-Host ""
Write-Host "Appwrite URL: $AppwriteUrl" -ForegroundColor Gray
Write-Host "Project ID: $ProjectId" -ForegroundColor Gray
Write-Host "Platform Host: $PlatformHostname" -ForegroundColor Gray
Write-Host "Platform Origin: $PlatformOrigin" -ForegroundColor Gray
Write-Host ""
# Prüfe ob Selenium WebDriver verfügbar ist
$seleniumAvailable = $false
try {
$seleniumModule = Get-Module -ListAvailable -Name "Selenium" -ErrorAction SilentlyContinue
if ($null -eq $seleniumModule) {
Write-Host "📦 Installiere Selenium WebDriver..." -ForegroundColor Yellow
Install-Module -Name "Selenium" -Scope CurrentUser -Force -ErrorAction SilentlyContinue | Out-Null
}
Import-Module Selenium -ErrorAction SilentlyContinue
$seleniumAvailable = $true
} catch {
Write-Host "⚠️ Selenium WebDriver nicht verfügbar. Verwende manuelle Methode." -ForegroundColor Yellow
$seleniumAvailable = $false
}
if (-not $seleniumAvailable) {
Write-Host ""
Write-Host "💡 MANUELLE METHODE:" -ForegroundColor Yellow
Write-Host ""
Write-Host "Da Browser-Automatisierung nicht verfügbar ist, bitte folge diesen Schritten:" -ForegroundColor White
Write-Host ""
Write-Host "1. Öffne deinen Browser und gehe zu:" -ForegroundColor Cyan
Write-Host " $AppwriteUrl" -ForegroundColor White
Write-Host ""
Write-Host "2. Logge dich ein (falls noch nicht geschehen)" -ForegroundColor Cyan
Write-Host ""
Write-Host "3. Öffne dein Projekt (Project ID: $ProjectId)" -ForegroundColor Cyan
Write-Host ""
Write-Host "4. Gehe zu Settings → Platforms (oder 'Web' in manchen Versionen)" -ForegroundColor Cyan
Write-Host ""
Write-Host "5. Klicke auf 'Add Platform' oder 'Create Platform'" -ForegroundColor Cyan
Write-Host ""
Write-Host "6. Wähle 'Web' als Platform-Typ" -ForegroundColor Cyan
Write-Host ""
Write-Host "7. Fülle die Felder aus:" -ForegroundColor Cyan
Write-Host " - Name: Production" -ForegroundColor White
Write-Host " - Hostname: $PlatformHostname" -ForegroundColor White
Write-Host " - Origin: $PlatformOrigin (falls gefragt)" -ForegroundColor White
Write-Host ""
Write-Host "8. Speichere und warte 1-2 Minuten" -ForegroundColor Cyan
Write-Host ""
Write-Host "✅ Danach sollten die CORS-Fehler verschwinden!" -ForegroundColor Green
Write-Host ""
exit 0
}
# Browser-Automatisierung mit Selenium
Write-Host "🌐 Starte Browser-Automatisierung..." -ForegroundColor Yellow
try {
# Starte Chrome Browser
$driver = Start-SeChrome -Headless:$false
Write-Host "✓ Browser gestartet" -ForegroundColor Green
# Navigiere zu Appwrite
Write-Host "📡 Navigiere zu Appwrite..." -ForegroundColor Yellow
$driver.Navigate().GoToUrl("$AppwriteUrl/console/project-$ProjectId/settings/platforms")
Start-Sleep -Seconds 3
Write-Host ""
Write-Host "⚠️ WICHTIG: Bitte führe die folgenden Schritte manuell im Browser aus:" -ForegroundColor Yellow
Write-Host ""
Write-Host "1. Falls du nicht eingeloggt bist, logge dich jetzt ein" -ForegroundColor Cyan
Write-Host "2. Die Platform-Seite sollte bereits geöffnet sein" -ForegroundColor Cyan
Write-Host "3. Klicke auf 'Add Platform' oder 'Create Platform'" -ForegroundColor Cyan
Write-Host "4. Wähle 'Web' als Platform-Typ" -ForegroundColor Cyan
Write-Host "5. Fülle aus:" -ForegroundColor Cyan
Write-Host " - Name: Production" -ForegroundColor White
Write-Host " - Hostname: $PlatformHostname" -ForegroundColor White
Write-Host " - Origin: $PlatformOrigin" -ForegroundColor White
Write-Host "6. Klicke auf 'Create' oder 'Save'" -ForegroundColor Cyan
Write-Host ""
Write-Host "Drücke Enter, wenn du fertig bist..." -ForegroundColor Yellow
Read-Host
Write-Host ""
Write-Host "✅ Platform sollte jetzt hinzugefügt sein!" -ForegroundColor Green
Write-Host ""
Write-Host "📝 Warte 1-2 Minuten, damit die CORS-Änderungen wirksam werden." -ForegroundColor Yellow
Write-Host " Danach sollten die CORS-Fehler verschwinden." -ForegroundColor Yellow
Write-Host ""
# Browser bleibt offen für manuelle Schritte
Write-Host "Browser bleibt geöffnet. Schließe ihn manuell, wenn du fertig bist." -ForegroundColor Gray
} catch {
Write-Host ""
Write-Host "❌ Fehler bei Browser-Automatisierung: $($_.Exception.Message)" -ForegroundColor Red
Write-Host ""
Write-Host "💡 Bitte verwende die manuelle Methode (siehe oben)" -ForegroundColor Yellow
exit 1
}