Files
doing-it-website/WIKI-EXTERNAL-SETUP.md
2025-11-29 10:30:33 +01:00

121 lines
3.4 KiB
Markdown
Executable File

# Wiki Externe Instanz Setup
## Übersicht
Das Wiki läuft jetzt als separate Instanz auf Port 3033 und wird direkt im iframe eingebunden. Dies erfordert keine Docker-Compose-Integration mehr.
## Konfiguration
### Umgebungsvariable
Die Wiki-URL kann über die Umgebungsvariable `NEXT_PUBLIC_WIKI_URL` konfiguriert werden:
**Standard:** `http://localhost:3033`
### Lokale Entwicklung
In der lokalen Entwicklung wird automatisch `http://localhost:3033` verwendet.
### Produktion
Für die Produktion kann die URL in `docker-compose.yml` oder über eine `.env`-Datei gesetzt werden:
```yaml
environment:
- NEXT_PUBLIC_WIKI_URL=http://localhost:3033
```
Oder in einer `.env.local` Datei:
```
NEXT_PUBLIC_WIKI_URL=http://localhost:3033
```
## Docker-Netzwerk Setup
### Separate Quartz-Instanz auf dem Server
1. **Quartz-Instanz starten** auf Port 3033:
```bash
# Beispiel: Quartz auf Port 3033 starten
npx quartz build
npx serve -s public -l 3033
```
2. **Docker-Netzwerk verbinden** (optional):
```bash
# Netzwerk erstellen
docker network create wiki-network
# Quartz-Container an Netzwerk anhängen
docker network connect wiki-network your-quartz-container
# Next.js Container an Netzwerk anhängen
docker network connect wiki-network doing-it-web-container
```
3. **URL anpassen** falls nötig:
- Falls Quartz in einem Container läuft: `http://quartz-container-name:3033`
- Falls Quartz direkt auf dem Host läuft: `http://host.docker.internal:3033` (Docker Desktop)
- Falls Quartz extern läuft: `http://localhost:3033` oder absolute URL
## Docker Compose Anpassung
Der Wiki-Service in `docker-compose.yml` ist jetzt optional. Falls Sie die separate Instanz verwenden:
1. **Wiki-Service auskommentieren** (bereits erledigt in `depends_on`)
2. Oder **Wiki-Service komplett entfernen** aus docker-compose.yml, falls nicht mehr benötigt
### Optionale Wiki-Service Entfernung
Falls Sie den Wiki-Service komplett aus docker-compose.yml entfernen möchten:
```yaml
services:
web:
# ... bleibt gleich
# depends_on und WIKI_SERVICE_URL können entfernt werden
# wiki: Service kann komplett entfernt werden
```
## Testing
1. **Quartz-Instanz starten** auf Port 3033
2. **Next.js starten**:
```bash
docker-compose up -d web
```
3. **Wiki-Seite öffnen**: `http://localhost:3001/wiki`
4. **Prüfen**: iframe sollte das Wiki von `http://localhost:3033` laden
## Vorteile
✅ **Einfachere Wartung**: Quartz kann separat verwaltet werden
✅ **Unabhängige Skalierung**: Wiki und Website können unabhängig skaliert werden
✅ **Einfachere Updates**: Quartz kann ohne Neustart der Website aktualisiert werden
✅ **Flexibilität**: Wiki kann auch extern gehostet werden
## Troubleshooting
### Problem: iframe lädt nicht
**Lösung 1:** Prüfen ob Quartz auf Port 3033 läuft
```bash
curl http://localhost:3033
```
**Lösung 2:** CORS-Header prüfen
- Quartz sollte CORS-Header erlauben
- Oder Next.js als Proxy verwenden (alte Lösung)
**Lösung 3:** URL anpassen
- Prüfen ob `NEXT_PUBLIC_WIKI_URL` korrekt gesetzt ist
- Für Container: `host.docker.internal:3033` verwenden
### Problem: Wiki nicht erreichbar aus Container
**Lösung:**
- `host.docker.internal:3033` statt `localhost:3033` verwenden
- Oder Docker-Netzwerk verwenden