huhuih
hzgjuigik
This commit is contained in:
155
PRODUCTION_SETUP.md
Normal file
155
PRODUCTION_SETUP.md
Normal file
@@ -0,0 +1,155 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user