3.6 KiB
Executable File
3.6 KiB
Executable File
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)
- Browser greift auf
doing-it.de/wikizu - Next.js Wiki-Seite (
app/wiki/page.tsx) zeigt das Wiki als iframe - iframe lädt
/api/wiki/*(Next.js API-Route) - API-Route (
app/api/wiki/[...path]/route.ts) leitet Requests an den internen Wiki-Service weiter - 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
exposestattports - 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
/wikiwurde 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.ymlgesetzt werden
Docker Compose
wiki:
expose:
- "8080" # Nur intern, nicht nach außen
Die Services kommunizieren automatisch über das Docker-Netzwerk.
Testing
Lokales Testen
- Services starten:
docker-compose up -d
- Wiki-Seite öffnen:
http://localhost:3001/wiki
- 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.tshinzufü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
- ✅ Wiki über Proxy erreichbar
- ✅ Port 8080 nicht mehr exponiert
- ✅ Einheitliche Domain (
doing-it.de/wiki) - Optional: Reverse Proxy (Nginx/Traefik) für HTTPS und Domain-Routing konfigurieren