Eigene npm-Pakete in n8n auf Sliplane nutzen

Jonas Scholz - Co-Founder von sliplane.ioJonas Scholz
3 min

Manchmal brauchen n8n-Workflows zusätzliche Node.js-Bibliotheken, die im Standard-Image nicht enthalten sind. Vielleicht willst du eine spezialisierte Library für Datenverarbeitung, ein bestimmtes SDK oder Utilities für deine Function-Nodes. Das Standard-n8n-Image enthält diese nicht, daher musst du dein eigenes Docker-Image mit den Paketen drin erstellen.

Die gute Nachricht: Es ist unkompliziert. Erstelle ein GitHub-Repo mit einem Dockerfile, richte Sliplane darauf aus, fertig. Deine Pakete bleiben über Deployments hinweg erhalten, und du behältst alle Annehmlichkeiten von Sliplane — automatische Volume-Backups, Logs und One-Click-Redeploys.

Schritt 1 — Dockerfile in einem GitHub-Repo erstellen

Starte mit einem neuen GitHub-Repository (öffentlich oder privat) und füge ein Dockerfile hinzu. Hier ist ein einfaches Beispiel, das ein paar npm-Pakete hinzufügt:

FROM n8nio/n8n:1.93.0

USER root
RUN npm install -g luxon uuid
USER node

Das Dockerfile startet mit einer bestimmten n8n-Version, wechselt zu root, um die Pakete global via npm zu installieren, und wechselt dann zurück zum regulären User.

Commit und push das zu GitHub. Du kannst jeden Branch verwenden - merk dir nur, welchen du für den nächsten Schritt brauchst.

Wenn du eine fixe Version verwendest (wie 1.93.0), bleiben Updates vorhersehbar. Für ein n8n-Upgrade änderst du einfach die Version im Dockerfile und pushst neu.

Schritt 2 — Als Sliplane-Service deployen

Erstelle einen neuen Service in Sliplane, der auf dein GitHub-Repo zeigt:

  1. Klicke in Sliplane auf New Service und wähle Repository (Github).
  2. Verbinde dein GitHub-Repo und wähle den Branch mit deinem Dockerfile.
  3. Füge diese vier Umgebungsvariablen hinzu:
    • HOST="0.0.0.0"
    • WEBHOOK_URL="https://$SLIPLANE_DOMAIN"
    • N8N_ENCRYPTION_KEY="randomsecurekey" (ersetze das mit einem starken, zufälligen Key)
    • NODE_FUNCTION_ALLOW_EXTERNAL="*" (erlaubt deine Pakete in Function-Nodes)
  4. Mount ein Volume zu /home/node/.n8n (du kannst es beliebig benennen, z. B. n8n-data).
  5. Speichere den Service.

Sliplane baut dein Dockerfile und startet den Service. Dein Image läuft genau wie das offizielle, mit denselben Volume-Backups und Logs.

Schritt 3 — Eigene Pakete in Workflows nutzen

Mit deinem Image kannst du jetzt die installierten Pakete in jedem Function- oder Code-Node verwenden. Hier ist ein Beispiel mit der luxon-Library für Datum-Handling:

const { DateTime } = require('luxon');
const now = DateTime.now();
return { formatted: now.toISO() };

Der Vorteil: Die Pakete bleiben dauerhaft im Image. Restarts, Redeploys und sogar n8n-Versions-Upgrades (wenn du dein Dockerfile aktualisierst) verlieren deine Pakete nicht. Alles bleibt an Ort und Stelle, weil es Teil des Images selbst ist.

Das war's. Drei Schritte: Dockerfile in GitHub, Sliplane-Service, der darauf zeigt, und die Umgebungsvariablen, die n8n braucht (inklusive NODE_FUNCTION_ALLOW_EXTERNAL). Deine Workflows haben jetzt Zugriff auf alle npm-Pakete, die du brauchst.

CLI-Tools gesucht? Schau dir Eigene Pakete in n8n auf Sliplane nutzen an, um Systempakete wie FFmpeg oder Python zu installieren.

Willkommen in der Container-Cloud

Sliplane macht es einfach, Container in der Cloud zu deployen und bei Bedarf zu skalieren. Probier es jetzt aus!