n8n_node_librebooking/MANUELLE-INSTALLATION-CONTA...

329 lines
6.8 KiB
Markdown

# Manuelle Installation im Docker Container
Diese Anleitung beschreibt, wie Sie den LibreBooking Node manuell im Docker Container installieren, wenn die Dateien bereits kopiert wurden, aber der Node nicht in n8n erscheint.
---
## Situation
Sie haben die Dateien in den Container kopiert (z.B. nach `/opt/n8n/custom-nodes` oder `/home/node/.n8n/custom/n8n-nodes-librebooking`), aber:
- Der LibreBooking Node erscheint nicht in der n8n Node-Suche
- Die TypeScript-Dateien wurden nicht kompiliert
- Das `dist/` Verzeichnis fehlt oder ist leer
---
## Diagnose
### Schnell-Check mit einem Befehl
```bash
# Prüft Dateien und Status im Container
docker exec n8n sh -c "ls -la /home/node/.n8n/custom/*/dist/ 2>/dev/null || echo 'dist/ nicht gefunden'"
```
### Ausführlicher Check mit Skript
```bash
# Check-Skript in Container kopieren und ausführen
docker cp check-installation.sh n8n:/tmp/
docker exec n8n sh /tmp/check-installation.sh
```
### Manuell im Container prüfen
```bash
# In den Container einloggen
docker exec -it n8n sh
# Prüfen, was vorhanden ist
ls -la /home/node/.n8n/custom/
ls -la /home/node/.n8n/custom/n8n-nodes-librebooking/
# Umgebungsvariablen prüfen
env | grep N8N
# Container verlassen
exit
```
---
## Lösung 1: Automatisch mit Skript (empfohlen)
Das einfachste ist das All-in-One-Skript:
```bash
# Auf dem Host ausführen
./fix-node-installation.sh
```
Oder mit spezifischem Container-Namen:
```bash
./fix-node-installation.sh -c mein-n8n-container
```
### Alternative: Nur das Installations-Skript
```bash
# Skript in Container kopieren
docker cp install-in-container.sh n8n:/tmp/
# Skript im Container ausführen
docker exec -it n8n sh /tmp/install-in-container.sh
# Container neustarten
docker restart n8n
```
---
## Lösung 2: Manuelle Schritte im Container
### Schritt 1: In den Container einloggen
```bash
docker exec -it n8n sh
```
### Schritt 2: Zum Custom-Node-Verzeichnis wechseln
```bash
# Standard-Pfad (offizielles n8n Image)
cd /home/node/.n8n/custom/n8n-nodes-librebooking
# Oder falls an anderem Ort:
cd /opt/n8n/custom-nodes
# oder
cd /data/custom-nodes
```
### Schritt 3: Prüfen ob Dateien vorhanden sind
```bash
ls -la
# Sollte zeigen: package.json, tsconfig.json, nodes/, credentials/
```
### Schritt 4: Dependencies installieren
```bash
npm install
```
Erwartete Ausgabe:
```
added 50 packages in 10s
```
### Schritt 5: Node kompilieren
```bash
npm run build
```
Erwartete Ausgabe:
```
> n8n-nodes-librebooking@1.0.0 build
> tsc && npm run copy:icons
```
### Schritt 6: Prüfen ob Build erfolgreich war
```bash
ls -la dist/
ls -la dist/nodes/LibreBooking/
```
Sollte zeigen:
- `dist/nodes/LibreBooking/LibreBooking.node.js`
- `dist/nodes/LibreBookingTrigger/LibreBookingTrigger.node.js`
- `dist/credentials/LibreBookingApi.credentials.js`
### Schritt 7: Container verlassen und neustarten
```bash
# Container verlassen
exit
# Container neustarten (auf dem Host)
docker restart n8n
```
---
## Lösung 3: Direkt mit docker exec (Ein-Befehl-Lösung)
Wenn Sie schnell zum Ziel kommen wollen:
```bash
# Alles in einem Befehl
docker exec n8n sh -c "cd /home/node/.n8n/custom/n8n-nodes-librebooking && npm install && npm run build"
# Container neustarten
docker restart n8n
```
Für anderen Pfad:
```bash
docker exec n8n sh -c "cd /opt/n8n/custom-nodes && npm install && npm run build"
docker restart n8n
```
---
## Verifizierung
### 1. Logs prüfen
```bash
# Nach LibreBooking in den Logs suchen
docker logs n8n 2>&1 | grep -i "librebooking\|custom\|node"
```
### 2. In n8n prüfen
1. Öffnen Sie n8n im Browser (z.B. `http://localhost:5678`)
2. Erstellen Sie einen neuen Workflow oder öffnen Sie einen bestehenden
3. Klicken Sie auf `+` um einen neuen Node hinzuzufügen
4. Suchen Sie nach "LibreBooking"
5. Es sollten zwei Nodes erscheinen:
- **LibreBooking** - Hauptnode für alle Operationen
- **LibreBooking Trigger** - Trigger für Reservierungen
### 3. Node-Dateien im Container prüfen
```bash
# Prüfe ob .node.js Dateien existieren
docker exec n8n find /home/node/.n8n/custom -name "*.node.js" 2>/dev/null
```
---
## Troubleshooting
### Problem: npm nicht gefunden
**Symptom:**
```
sh: npm: not found
```
**Lösung:**
Das verwendete Docker-Image enthält kein npm. Verwenden Sie ein Image mit Node.js:
```bash
# Prüfen Sie das Image
docker inspect n8n --format='{{.Config.Image}}'
# Das offizielle n8n Image (n8nio/n8n) enthält npm
# Falls Sie ein minimales Image verwenden, wechseln Sie zu n8nio/n8n
```
### Problem: Permission denied
**Symptom:**
```
EACCES: permission denied
npm ERR! could not create a lockfile
```
**Lösung:**
n8n läuft als User `node` (UID 1000). Setzen Sie die Berechtigungen:
```bash
# Auf dem Host (vor dem Kopieren)
sudo chown -R 1000:1000 custom-nodes/
# Oder im Container als root
docker exec -u root n8n chown -R node:node /home/node/.n8n/custom/
```
### Problem: Build schlägt fehl
**Symptom:**
```
error TS2307: Cannot find module 'n8n-workflow'
```
**Lösung:**
```bash
# Im Container
cd /home/node/.n8n/custom/n8n-nodes-librebooking
rm -rf node_modules package-lock.json
npm install
npm run build
```
### Problem: Node erscheint nach Neustart immer noch nicht
**Mögliche Ursachen:**
1. **Falscher Pfad**: N8N_CUSTOM_EXTENSIONS zeigt nicht auf das richtige Verzeichnis
```bash
docker exec n8n env | grep N8N_CUSTOM
# Sollte zeigen: N8N_CUSTOM_EXTENSIONS=/home/node/.n8n/custom
```
2. **package.json n8n-Sektion fehlt**: Die `n8n` Konfiguration in package.json muss korrekt sein
```bash
docker exec n8n cat /home/node/.n8n/custom/n8n-nodes-librebooking/package.json | grep -A10 '"n8n"'
```
3. **Container-Cache**: Container komplett neu erstellen
```bash
docker compose down
docker compose up -d
```
4. **n8n Version zu alt**: Der Node benötigt n8n >= 1.0.0
```bash
docker exec n8n n8n --version
```
### Problem: Fehler bei npm install (Netzwerk)
**Symptom:**
```
npm ERR! network request failed
```
**Lösung:**
```bash
# DNS prüfen
docker exec n8n cat /etc/resolv.conf
# npm Registry prüfen
docker exec n8n npm config get registry
# Ggf. Registry setzen
docker exec n8n npm config set registry https://registry.npmjs.org/
```
---
## Schnellreferenz
| Aktion | Befehl |
|--------|--------|
| Status prüfen | `docker exec n8n sh /tmp/check-installation.sh` |
| Installieren | `docker exec n8n sh -c "cd /home/node/.n8n/custom/n8n-nodes-librebooking && npm install && npm run build"` |
| Neustarten | `docker restart n8n` |
| Logs prüfen | `docker logs n8n 2>&1 \| grep -i libre` |
| Im Container | `docker exec -it n8n sh` |
---
## Weiterführende Dokumentation
- [DOCKER-INTEGRATION.md](DOCKER-INTEGRATION.md) - Vollständige Docker-Anleitung
- [TROUBLESHOOTING.md](TROUBLESHOOTING.md) - Alle Troubleshooting-Themen
- [SCHNELLSTART-DOCKER.md](SCHNELLSTART-DOCKER.md) - Docker-Schnellstart
---
*Letzte Aktualisierung: Januar 2026*