added quartz wiki
This commit is contained in:
119
WIKI-PROXY-SETUP.md
Executable file
119
WIKI-PROXY-SETUP.md
Executable file
@@ -0,0 +1,119 @@
|
||||
# Wiki Proxy Setup - Dokumentation
|
||||
|
||||
## Übersicht
|
||||
|
||||
Das Wiki ist jetzt so konfiguriert, dass es über die Domain `doing-it.de/wiki` erreichbar ist, ohne dass Port 8080 nach außen exponiert werden muss. Dies wird durch einen Next.js API-Route-Proxy erreicht.
|
||||
|
||||
## Architektur
|
||||
|
||||
```
|
||||
Browser → doing-it.de/wiki → Next.js (/wiki page) → iframe → /api/wiki/* → Wiki-Service (intern)
|
||||
```
|
||||
|
||||
1. **Browser** greift auf `doing-it.de/wiki` zu
|
||||
2. **Next.js Wiki-Seite** (`app/wiki/page.tsx`) zeigt das Wiki als iframe
|
||||
3. **iframe** lädt `/api/wiki/*` (Next.js API-Route)
|
||||
4. **API-Route** (`app/api/wiki/[...path]/route.ts`) leitet Requests an den internen Wiki-Service weiter
|
||||
5. **Wiki-Service** läuft nur im Docker-Netzwerk, Port 8080 ist nicht nach außen exponiert
|
||||
|
||||
## Änderungen
|
||||
|
||||
### 1. Docker Compose (`docker-compose.yml`)
|
||||
- Wiki-Service verwendet jetzt `expose` statt `ports`
|
||||
- Port 8080 ist nur im Docker-Netzwerk erreichbar, nicht von außen
|
||||
- Kommunikation zwischen Services erfolgt über Service-Namen (`wiki:8080`)
|
||||
|
||||
### 2. Next.js API-Route (`app/api/wiki/[...path]/route.ts`)
|
||||
- Proxied alle Requests an den Wiki-Service
|
||||
- Unterstützt alle HTTP-Methoden (GET, POST, PUT, DELETE)
|
||||
- Weiterleitung von Headers und Query-Parametern
|
||||
|
||||
### 3. Wiki-Seite (`app/wiki/page.tsx`)
|
||||
- Zeigt das Wiki als iframe
|
||||
- Lädt über `/api/wiki` (API-Route)
|
||||
- Enthält Navigation zurück zur Website
|
||||
|
||||
### 4. Navigation
|
||||
- Link zu `/wiki` wurde bereits hinzugefügt
|
||||
- Führt direkt zur Wiki-Seite mit eingebettetem Wiki
|
||||
|
||||
## Vorteile
|
||||
|
||||
✅ **Sicherheit**: Port 8080 ist nicht nach außen exponiert
|
||||
✅ **Einheitliche Domain**: Alles über `doing-it.de`
|
||||
✅ **Einfache Integration**: Wiki ist nahtlos in die Website eingebettet
|
||||
✅ **Proxy-Funktionalität**: Alle Wiki-Ressourcen (CSS, JS, Bilder) werden korrekt weitergeleitet
|
||||
|
||||
## Konfiguration
|
||||
|
||||
### Environment Variables
|
||||
|
||||
Die API-Route verwendet die Umgebungsvariable `WIKI_SERVICE_URL`:
|
||||
- **Standard**: `http://wiki:8080` (Docker-Service-Name)
|
||||
- **Anpassung**: Kann in `docker-compose.yml` gesetzt werden
|
||||
|
||||
### Docker Compose
|
||||
|
||||
```yaml
|
||||
wiki:
|
||||
expose:
|
||||
- "8080" # Nur intern, nicht nach außen
|
||||
```
|
||||
|
||||
Die Services kommunizieren automatisch über das Docker-Netzwerk.
|
||||
|
||||
## Testing
|
||||
|
||||
### Lokales Testen
|
||||
|
||||
1. Services starten:
|
||||
```powershell
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
2. Wiki-Seite öffnen:
|
||||
```
|
||||
http://localhost:3001/wiki
|
||||
```
|
||||
|
||||
3. API-Route direkt testen:
|
||||
```
|
||||
http://localhost:3001/api/wiki
|
||||
```
|
||||
|
||||
### Produktion
|
||||
|
||||
Nach dem Deployment hinter einem Reverse Proxy (z.B. Nginx):
|
||||
- Wiki ist erreichbar über `https://doing-it.de/wiki`
|
||||
- Kein direkter Zugriff auf Port 8080 erforderlich
|
||||
- Alle Requests gehen über die Next.js-Anwendung
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Problem: Wiki lädt nicht im iframe
|
||||
|
||||
**Lösung**:
|
||||
- Prüfen Sie die Browser-Konsole auf Fehler
|
||||
- Überprüfen Sie, ob der Wiki-Service läuft: `docker-compose ps`
|
||||
- Prüfen Sie die API-Route-Logs: `docker-compose logs web`
|
||||
|
||||
### Problem: CORS-Fehler
|
||||
|
||||
**Lösung**:
|
||||
- Die API-Route setzt bereits `Access-Control-Allow-Origin: *`
|
||||
- Falls weitere CORS-Header benötigt werden, in `route.ts` hinzufügen
|
||||
|
||||
### Problem: Wiki-Service nicht erreichbar
|
||||
|
||||
**Lösung**:
|
||||
- Überprüfen Sie, ob beide Services im gleichen Docker-Netzwerk sind
|
||||
- Prüfen Sie die Service-Namen in `docker-compose.yml`
|
||||
- Testen Sie die interne Kommunikation: `docker-compose exec web ping wiki`
|
||||
|
||||
## Nächste Schritte
|
||||
|
||||
1. ✅ Wiki über Proxy erreichbar
|
||||
2. ✅ Port 8080 nicht mehr exponiert
|
||||
3. ✅ Einheitliche Domain (`doing-it.de/wiki`)
|
||||
4. Optional: Reverse Proxy (Nginx/Traefik) für HTTPS und Domain-Routing konfigurieren
|
||||
|
||||
Reference in New Issue
Block a user