Eigene npm-Pakete in n8n auf Sliplane nutzen
Jonas ScholzManchmal 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:
- Klicke in Sliplane auf New Service und wähle Repository (Github).
- Verbinde dein GitHub-Repo und wähle den Branch mit deinem Dockerfile.
- 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)
- Mount ein Volume zu
/home/node/.n8n(du kannst es beliebig benennen, z. B.n8n-data). - 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.