# Wiki 404 Error - Fix Dokumentation ## Problem Beim Klick auf den Wiki-Link in der Navbar erscheint ein 404-Fehler auf https://doing-it.de/wiki ## Implementierte Fixes ### 1. Root-API-Route hinzugefügt - **Datei**: `app/api/wiki/route.ts` - Behandelt direkte Aufrufe zu `/api/wiki` ohne weiteren Pfad - Wichtig für das iframe, das `/api/wiki/` lädt ### 2. Verbessertes Error-Handling - Logging für alle Requests - 10 Sekunden Timeout für Wiki-Service-Requests - Bessere Fehlermeldungen mit Status-Codes ### 3. URL-Handling verbessert - Keine doppelten Slashes mehr - Korrekte Query-Parameter-Weiterleitung ### 4. Next.js 15 Compatibility - Async params in Catch-All-Route - Verbesserte Type-Sicherheit ### 5. Fehleranzeige in Wiki-Seite - Zeigt Fehlermeldung, falls Wiki nicht lädt - Button zum Neuladen der Seite ## Mögliche Ursachen des 404-Fehlers ### 1. Wiki-Service läuft nicht **Prüfung:** ```bash docker-compose ps docker-compose logs wiki ``` **Lösung:** ```bash docker-compose up -d wiki ``` ### 2. Wiki-Service nicht erreichbar über Docker-Netzwerk **Prüfung:** ```bash docker-compose exec web curl http://wiki:8080/ ``` **Lösung:** - Stelle sicher, dass beide Services im gleichen Docker-Netzwerk sind - Prüfe `docker-compose.yml` - beide Services sollten dort definiert sein ### 3. Environment-Variable falsch gesetzt **Prüfung:** ```bash docker-compose exec web printenv WIKI_SERVICE_URL ``` **Sollte sein:** `http://wiki:8080` **Lösung:** In `docker-compose.yml` hinzufügen: ```yaml web: environment: - WIKI_SERVICE_URL=http://wiki:8080 ``` ### 4. API-Route nicht deployed **Prüfung:** - Prüfe, ob `app/api/wiki/route.ts` im Deployment vorhanden ist - Prüfe Next.js Build-Logs **Lösung:** - Stelle sicher, dass die Datei committed ist - Rebuild des Next.js Images: `docker-compose build web` ### 5. Production Dockerfile verwendet **Prüfung:** ```bash # Prüfe, welches Dockerfile verwendet wird cat docker-compose.yml | grep dockerfile ``` **Lösung:** - Stelle sicher, dass in Produktion auch die richtige Dockerfile verwendet wird - Oder passe die Production-Dockerfile an ## Debugging-Schritte ### Schritt 1: Services prüfen ```bash docker-compose ps ``` Sollte zeigen: - `web` - Status: Up - `wiki` - Status: Up ### Schritt 2: Wiki-Service-Logs prüfen ```bash docker-compose logs wiki --tail=50 ``` Suche nach Fehlermeldungen oder "Build complete" ### Schritt 3: API-Route direkt testen ```bash curl https://doing-it.de/api/wiki/ ``` Oder im Browser: `https://doing-it.de/api/wiki/` Sollte HTML zurückgeben, nicht 404. ### Schritt 4: Internen Service-Zugriff testen ```bash docker-compose exec web curl http://wiki:8080/ ``` Sollte HTML zurückgeben. ### Schritt 5: Next.js Logs prüfen ```bash docker-compose logs web --tail=100 | grep -i wiki ``` Suche nach Fehlermeldungen wie "Wiki proxy error" ## Quick Fix Falls das Problem weiterhin besteht, versuche: ```bash # 1. Alle Services neu starten docker-compose down docker-compose up -d --build # 2. Logs beobachten docker-compose logs -f # 3. Prüfen ob beide Services laufen docker-compose ps ``` ## Wichtig für Produktion 1. **Stelle sicher, dass beide Services im docker-compose.yml sind** 2. **Stelle sicher, dass WIKI_SERVICE_URL gesetzt ist** 3. **Stelle sicher, dass die API-Routes im Build enthalten sind** 4. **Prüfe die Next.js Build-Logs auf Warnungen** ## Alternative: Direkter Link (Fallback) Falls das iframe weiterhin Probleme macht, kann die Wiki-Seite so geändert werden, dass sie direkt auf `/api/wiki` verlinkt statt ein iframe zu verwenden. Dies erfordert eine Änderung in `app/wiki/page.tsx`. ## Nächste Schritte nach Deployment 1. ✅ API-Routes aktualisiert 2. ✅ Error-Handling verbessert 3. ⏳ Services neu starten 4. ⏳ Logs prüfen 5. ⏳ Testen auf https://doing-it.de/wiki