# Production Setup - emailsorter.webklar.com ## Probleme und Lösungen ### 1. Appwrite CORS-Konfiguration **Problem:** Appwrite blockiert Requests von `https://emailsorter.webklar.com` weil nur `https://localhost` als Origin erlaubt ist. **Lösung:** 1. Gehe zu deiner Appwrite-Konsole: https://appwrite.webklar.com 2. Öffne dein Projekt 3. Gehe zu **Settings** → **Platforms** (oder **Web**) 4. Füge eine neue Platform hinzu oder bearbeite die existierende: - **Name:** Production - **Hostname:** `emailsorter.webklar.com` - **Origin:** `https://emailsorter.webklar.com` 5. Speichere die Änderungen **Alternative:** Wenn du mehrere Origins brauchst, kannst du auch in Appwrite die CORS-Einstellungen anpassen, um mehrere Origins zu erlauben. --- ### 2. Backend-Server (502 Fehler) **Problem:** Der Backend-Server läuft nicht oder ist nicht erreichbar. **Lösung:** #### Option A: Server auf demselben Server starten 1. **SSH zum Server:** ```bash ssh user@webklar.com ``` 2. **Zum Projekt-Verzeichnis navigieren:** ```bash cd /path/to/ANDJJJJJJ/server ``` 3. **Environment-Variablen setzen:** Erstelle oder bearbeite `.env`: ```env NODE_ENV=production PORT=3000 BASE_URL=https://api.emailsorter.webklar.com FRONTEND_URL=https://emailsorter.webklar.com CORS_ORIGIN=https://emailsorter.webklar.com APPWRITE_ENDPOINT=https://appwrite.webklar.com/v1 APPWRITE_PROJECT_ID=deine_projekt_id APPWRITE_API_KEY=dein_api_key APPWRITE_DATABASE_ID=email_sorter_db # ... weitere Variablen ``` 4. **Server starten:** ```bash npm install npm start ``` #### Option B: Mit PM2 (empfohlen für Production) ```bash npm install -g pm2 cd /path/to/ANDJJJJJJ/server pm2 start index.mjs --name emailsorter-api pm2 save pm2 startup ``` #### Option C: Reverse Proxy konfigurieren (Nginx) Falls der Server auf einem anderen Port läuft, konfiguriere Nginx: ```nginx server { listen 80; server_name api.emailsorter.webklar.com; location / { proxy_pass http://localhost:3000; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } } ``` --- ### 3. Frontend Environment-Variablen Stelle sicher, dass das Frontend die richtige Backend-URL verwendet: 1. **Erstelle `client/.env.production`:** ```env VITE_APPWRITE_ENDPOINT=https://appwrite.webklar.com/v1 VITE_APPWRITE_PROJECT_ID=deine_projekt_id VITE_API_URL=https://api.emailsorter.webklar.com ``` 2. **Build das Frontend:** ```bash cd client npm run build ``` 3. **Deploy den Build-Ordner** (`client/dist`) zu deinem Web-Server --- ### 4. Checkliste - [ ] Appwrite CORS: `https://emailsorter.webklar.com` als Origin hinzugefügt - [ ] Backend-Server läuft und ist erreichbar - [ ] Backend `.env` konfiguriert mit Production-URLs - [ ] Frontend `.env.production` konfiguriert - [ ] Frontend gebaut und deployed - [ ] Reverse Proxy (Nginx) konfiguriert (falls nötig) - [ ] SSL-Zertifikat für beide Domains (Frontend + API) --- ### 5. Testing Nach dem Setup, teste: 1. **Frontend:** https://emailsorter.webklar.com 2. **Backend Health:** https://api.emailsorter.webklar.com/api/health 3. **Login:** Versuche dich einzuloggen und prüfe die Browser-Konsole auf Fehler --- ### Troubleshooting **CORS-Fehler weiterhin:** - Prüfe, ob die Appwrite-Änderungen gespeichert wurden - Warte 1-2 Minuten (Cache) - Prüfe Browser-Konsole für genaue Fehlermeldung **502 Bad Gateway:** - Prüfe, ob der Backend-Server läuft: `pm2 list` oder `ps aux | grep node` - Prüfe Server-Logs: `pm2 logs emailsorter-api` oder `tail -f server.log` - Prüfe Firewall-Regeln - Prüfe Reverse Proxy Konfiguration **API nicht erreichbar:** - Prüfe, ob der Port 3000 offen ist - Prüfe, ob die Domain richtig auf den Server zeigt - Prüfe DNS-Einträge