12 KiB
Docker-Integration für LibreBooking n8n Node
Diese Anleitung beschreibt die Integration des LibreBooking Nodes in eine bestehende n8n Docker-Installation.
Inhaltsverzeichnis
- Voraussetzungen
- Methode 1: Automatische Integration mit Skript
- Methode 2: Manuelle Integration
- Methode 3: Integration in bestehende docker-compose.yml
- Methode 4: Dockerfile erweitern
- Verifizierung der Installation
- Troubleshooting
- Updates und Wartung
Voraussetzungen
System-Anforderungen
- Docker Version 20.10 oder höher
- Docker Compose v2.0+ (Plugin) oder docker-compose v1.29+
- Laufende n8n Docker-Installation
- Zugriff auf das Dateisystem des Docker-Hosts
Prüfen der Voraussetzungen
# Docker Version prüfen
docker --version
# Docker version 24.0.x, build xxxxx
# Docker Compose Version prüfen
docker compose version
# Docker Compose version v2.x.x
# Oder für ältere Versionen:
docker-compose --version
# docker-compose version 1.29.x, build xxxxx
# n8n Container Status prüfen
docker ps | grep n8n
Methode 1: Automatische Integration mit Skript
Die einfachste Methode für die Integration in eine bestehende Installation.
Schritt 1: Skript ausführbar machen
chmod +x install-docker.sh
Schritt 2: Skript ausführen
# Im aktuellen Verzeichnis (wenn dort n8n läuft)
./install-docker.sh
# Oder mit Pfad zur n8n Installation
./install-docker.sh -p /pfad/zu/n8n
# Mit Überschreiben bestehender Dateien
./install-docker.sh -f -p /pfad/zu/n8n
Skript-Optionen
| Option | Beschreibung |
|---|---|
-p, --path PATH |
Pfad zur n8n Docker-Installation |
-b, --build |
Node im Container bauen |
-f, --force |
Bestehende Installation überschreiben |
-h, --help |
Hilfe anzeigen |
Was das Skript tut
- Prüft Docker und Docker Compose Installation
- Prüft ob n8n Container läuft
- Kopiert
custom-nodes/Verzeichnis - Erstellt/aktualisiert
docker-compose.override.yml - Setzt korrekte Berechtigungen (UID 1000)
- Startet Container bei Bedarf neu
Methode 2: Manuelle Integration
Für mehr Kontrolle oder spezielle Setups.
Schritt 1: Custom Nodes Verzeichnis kopieren
# Zum n8n Verzeichnis wechseln
cd /pfad/zu/ihrer/n8n/installation
# Custom Nodes kopieren
cp -r /pfad/zu/librebooking_n8n_node/custom-nodes ./custom-nodes
Schritt 2: Dependencies installieren und bauen
cd custom-nodes
# Node.js Dependencies installieren
npm install
# TypeScript kompilieren
npm run build
Schritt 3: docker-compose.override.yml erstellen
Erstellen Sie eine docker-compose.override.yml Datei:
version: '3.8'
services:
n8n:
volumes:
# LibreBooking Custom Node einbinden
- ./custom-nodes:/home/node/.n8n/custom/n8n-nodes-librebooking:ro
environment:
# Custom Nodes Pfad
- N8N_CUSTOM_EXTENSIONS=/home/node/.n8n/custom
# Community Nodes aktivieren
- N8N_COMMUNITY_NODES_ENABLED=true
Schritt 4: Berechtigungen setzen
# n8n läuft als "node" User mit UID 1000
sudo chown -R 1000:1000 custom-nodes/
Schritt 5: Container neustarten
# Mit docker-compose
docker-compose restart n8n
# Oder mit Docker Compose Plugin
docker compose restart n8n
# Bei Problemen: Container komplett neu erstellen
docker-compose down && docker-compose up -d
Methode 3: Integration in bestehende docker-compose.yml
Wenn Sie keine Override-Datei verwenden möchten.
Bestehende docker-compose.yml erweitern
Fügen Sie folgende Einträge zu Ihrem n8n Service hinzu:
version: '3.8'
services:
n8n:
image: n8nio/n8n:latest
# ... Ihre bestehende Konfiguration ...
volumes:
# Bestehende Volumes beibehalten
- n8n_data:/home/node/.n8n
# LibreBooking Node hinzufügen
- ./custom-nodes:/home/node/.n8n/custom/n8n-nodes-librebooking:ro
environment:
# Bestehende Umgebungsvariablen beibehalten
- N8N_HOST=0.0.0.0
- N8N_PORT=5678
# Custom Nodes Konfiguration hinzufügen
- N8N_CUSTOM_EXTENSIONS=/home/node/.n8n/custom
- N8N_COMMUNITY_NODES_ENABLED=true
Vollständiges Beispiel
Siehe docker-compose.example.yml für eine vollständige Konfiguration mit:
- PostgreSQL Datenbank (optional)
- Redis Queue (optional)
- Health Checks
- Alle Umgebungsvariablen
Methode 4: Dockerfile erweitern
Für produktive Deployments oder wenn Sie ein eigenes Image benötigen.
Einfaches Dockerfile
# Dockerfile.custom-nodes
ARG N8N_VERSION=latest
FROM n8nio/n8n:${N8N_VERSION}
USER root
# Custom Node Verzeichnis erstellen
RUN mkdir -p /home/node/.n8n/custom/n8n-nodes-librebooking && \
chown -R node:node /home/node/.n8n/custom
WORKDIR /home/node/.n8n/custom/n8n-nodes-librebooking
# Dateien kopieren
COPY --chown=node:node custom-nodes/ ./
# Dependencies installieren und bauen
RUN npm install && npm run build
USER node
WORKDIR /home/node
ENV N8N_CUSTOM_EXTENSIONS=/home/node/.n8n/custom
ENV N8N_COMMUNITY_NODES_ENABLED=true
EXPOSE 5678
CMD ["n8n", "start"]
Image bauen und verwenden
# Image bauen
docker build -f Dockerfile.custom-nodes -t n8n-librebooking .
# Container starten
docker run -d \
--name n8n \
-p 5678:5678 \
-v n8n_data:/home/node/.n8n \
n8n-librebooking
Mit docker-compose
version: '3.8'
services:
n8n:
build:
context: .
dockerfile: Dockerfile.custom-nodes
args:
N8N_VERSION: latest
# ... weitere Konfiguration
Multi-Stage Build (Optimiert)
# Build Stage
FROM node:18-alpine AS builder
WORKDIR /build
COPY custom-nodes/ ./
RUN npm install && npm run build
# Production Stage
ARG N8N_VERSION=latest
FROM n8nio/n8n:${N8N_VERSION}
USER root
RUN mkdir -p /home/node/.n8n/custom/n8n-nodes-librebooking && \
chown -R node:node /home/node/.n8n/custom
# Nur gebaute Dateien kopieren
COPY --from=builder --chown=node:node /build/dist /home/node/.n8n/custom/n8n-nodes-librebooking/dist
COPY --from=builder --chown=node:node /build/package.json /home/node/.n8n/custom/n8n-nodes-librebooking/
USER node
ENV N8N_CUSTOM_EXTENSIONS=/home/node/.n8n/custom
ENV N8N_COMMUNITY_NODES_ENABLED=true
CMD ["n8n", "start"]
Verifizierung der Installation
1. Container-Logs prüfen
# Logs anzeigen
docker logs n8n 2>&1 | grep -i "librebooking\|custom\|node"
# Live Logs verfolgen
docker logs -f n8n
2. In n8n prüfen
- Öffnen Sie n8n im Browser (z.B.
http://localhost:5678) - Erstellen Sie einen neuen Workflow
- Fügen Sie einen neuen Node hinzu
- Suchen Sie nach "LibreBooking" - zwei Nodes sollten erscheinen:
- LibreBooking - Hauptnode für alle Operationen
- LibreBooking Trigger - Trigger für neue Reservierungen
3. Node-Verzeichnis im Container prüfen
# In Container einloggen
docker exec -it n8n /bin/sh
# Custom Nodes Verzeichnis prüfen
ls -la /home/node/.n8n/custom/
# LibreBooking Node prüfen
ls -la /home/node/.n8n/custom/n8n-nodes-librebooking/dist/
4. Umgebungsvariablen prüfen
docker exec n8n env | grep N8N_CUSTOM
# N8N_CUSTOM_EXTENSIONS=/home/node/.n8n/custom
docker exec n8n env | grep COMMUNITY
# N8N_COMMUNITY_NODES_ENABLED=true
Troubleshooting
Problem: Node wird nicht erkannt
Symptom: LibreBooking Node erscheint nicht in der Node-Suche
Lösungen:
-
Pfad prüfen:
docker exec n8n ls -la /home/node/.n8n/custom/n8n-nodes-librebooking/ -
Umgebungsvariablen prüfen:
docker exec n8n env | grep -E "N8N_CUSTOM|COMMUNITY" -
Container komplett neu starten:
docker-compose down docker-compose up -d -
Logs auf Fehler prüfen:
docker logs n8n 2>&1 | grep -i error
Problem: Permissions-Fehler
Symptom: EACCES: permission denied oder ähnliche Fehler
Lösungen:
-
Berechtigungen setzen:
sudo chown -R 1000:1000 custom-nodes/ sudo chmod -R 755 custom-nodes/ -
Volume mit korrektem User mounten:
services: n8n: user: "1000:1000" -
SELinux Context (falls aktiviert):
sudo chcon -R -t svirt_sandbox_file_t custom-nodes/
Problem: Container startet nicht
Symptom: Container crashed oder startet nicht
Lösungen:
-
Logs prüfen:
docker logs n8n -
Ohne Override starten (zum Testen):
mv docker-compose.override.yml docker-compose.override.yml.bak docker-compose up -d -
Volume-Konflikte prüfen:
docker volume ls docker volume inspect n8n_data
Problem: Node wird geladen aber Fehler bei Ausführung
Symptom: Node ist sichtbar aber Ausführung schlägt fehl
Lösungen:
-
Build prüfen:
docker exec n8n ls -la /home/node/.n8n/custom/n8n-nodes-librebooking/dist/ -
Neu bauen:
cd custom-nodes npm run rebuild docker-compose restart n8n -
Dependencies prüfen:
docker exec -it n8n /bin/sh cd /home/node/.n8n/custom/n8n-nodes-librebooking npm ls
Problem: TypeScript Build schlägt fehl
Symptom: tsc Fehler beim Bauen
Lösungen:
-
Node.js Version prüfen:
node --version # Sollte 18+ sein npm --version -
Clean Build:
cd custom-nodes rm -rf node_modules dist package-lock.json npm install npm run build
Problem: Webhook URL nicht erreichbar
Symptom: LibreBooking kann Webhooks nicht senden
Lösungen:
-
WEBHOOK_URL Umgebungsvariable setzen:
environment: - WEBHOOK_URL=https://ihre-domain.com/ -
Netzwerk-Konfiguration prüfen:
docker network inspect $(docker network ls -q)
Updates und Wartung
Node aktualisieren
# Neue Version herunterladen
cd /pfad/zu/neuem/librebooking_n8n_node
# Custom Nodes ersetzen
rm -rf /pfad/zu/n8n/custom-nodes
cp -r custom-nodes /pfad/zu/n8n/custom-nodes
# Neu bauen
cd /pfad/zu/n8n/custom-nodes
npm install
npm run build
# Container neustarten
cd /pfad/zu/n8n
docker-compose restart n8n
n8n Version aktualisieren
# Image aktualisieren
docker pull n8nio/n8n:latest
# Container neu erstellen
docker-compose down
docker-compose up -d
Backup erstellen
# Docker Volumes sichern
docker run --rm \
-v n8n_data:/source:ro \
-v $(pwd)/backup:/backup \
alpine tar cvzf /backup/n8n_data_backup.tar.gz -C /source .
# Custom Nodes sichern
tar cvzf custom-nodes-backup.tar.gz custom-nodes/
Logs rotieren
services:
n8n:
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
Erweiterte Konfiguration
Kubernetes Deployment
Für Kubernetes-Umgebungen kann ein ConfigMap oder PersistentVolume verwendet werden:
apiVersion: v1
kind: ConfigMap
metadata:
name: librebooking-node
data:
# Node-Dateien als ConfigMap
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: n8n
spec:
template:
spec:
containers:
- name: n8n
volumeMounts:
- name: custom-nodes
mountPath: /home/node/.n8n/custom/n8n-nodes-librebooking
volumes:
- name: custom-nodes
configMap:
name: librebooking-node
Mit Reverse Proxy (Nginx)
Siehe nginx.conf für eine vollständige Nginx-Konfiguration mit:
- SSL/TLS Termination
- WebSocket Support
- Optimierte Timeouts für Webhooks
Hilfe und Support
- GitHub Issues: Repository Issues
- n8n Community: community.n8n.io
- LibreBooking Dokumentation: LibreBooking Wiki
Letzte Aktualisierung: Januar 2026