added quartz external wiki
This commit is contained in:
159
WIKI-404-FIX.md
Executable file
159
WIKI-404-FIX.md
Executable file
@@ -0,0 +1,159 @@
|
||||
# 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
|
||||
|
||||
Reference in New Issue
Block a user