n8n_node_librebooking/DOCKER-INTEGRATION.md

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

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

  1. Prüft Docker und Docker Compose Installation
  2. Prüft ob n8n Container läuft
  3. Kopiert custom-nodes/ Verzeichnis
  4. Erstellt/aktualisiert docker-compose.override.yml
  5. Setzt korrekte Berechtigungen (UID 1000)
  6. 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

  1. Öffnen Sie n8n im Browser (z.B. http://localhost:5678)
  2. Erstellen Sie einen neuen Workflow
  3. Fügen Sie einen neuen Node hinzu
  4. 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:

  1. Pfad prüfen:

    docker exec n8n ls -la /home/node/.n8n/custom/n8n-nodes-librebooking/
    
  2. Umgebungsvariablen prüfen:

    docker exec n8n env | grep -E "N8N_CUSTOM|COMMUNITY"
    
  3. Container komplett neu starten:

    docker-compose down
    docker-compose up -d
    
  4. 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:

  1. Berechtigungen setzen:

    sudo chown -R 1000:1000 custom-nodes/
    sudo chmod -R 755 custom-nodes/
    
  2. Volume mit korrektem User mounten:

    services:
      n8n:
        user: "1000:1000"
    
  3. 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:

  1. Logs prüfen:

    docker logs n8n
    
  2. Ohne Override starten (zum Testen):

    mv docker-compose.override.yml docker-compose.override.yml.bak
    docker-compose up -d
    
  3. 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:

  1. Build prüfen:

    docker exec n8n ls -la /home/node/.n8n/custom/n8n-nodes-librebooking/dist/
    
  2. Neu bauen:

    cd custom-nodes
    npm run rebuild
    docker-compose restart n8n
    
  3. 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:

  1. Node.js Version prüfen:

    node --version  # Sollte 18+ sein
    npm --version
    
  2. 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:

  1. WEBHOOK_URL Umgebungsvariable setzen:

    environment:
      - WEBHOOK_URL=https://ihre-domain.com/
    
  2. 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


Letzte Aktualisierung: Januar 2026