settings.js Referenz
Die settings.js ist die zentrale Konfigurationsdatei von Node-RED und damit auch von LowCode. Sie steuert alle Aspekte der Runtime, des Editors und des Node-Verhaltens. LowCode liefert eine vorkonfigurierte settings.js aus, die ueber Umgebungsvariablen und die NODERED_CUSTOM_SETTINGS-Datei erweitert werden kann.
Flow-Dateien und Verzeichnisse
| Eigenschaft | Beschreibung | Standard |
|---|---|---|
flowFile | Name der Flow-Datei | flows.json |
flowFilePretty | Formatiert die Flow-JSON-Datei ueber mehrere Zeilen (besser fuer Versionskontrolle) | true |
userDir | Benutzerverzeichnis fuer alle Daten. Kann per NODERED_USERDIR ueberschrieben werden. | /data/ |
nodesDir | Zusaetzliches Verzeichnis fuer lokale Node-Dateien. Wird per NODERED_NODES_DIR gesetzt. | /usr/src/node-red |
Sicherheit
| Eigenschaft | Beschreibung | Standard |
|---|---|---|
adminAuth | Admin-Authentifizierung. Wird automatisch ueber die Authority-Umgebungsvariablen gesetzt. | - |
https | HTTPS-Konfiguration mit Key und Zertifikat (Objekt oder Funktion) | - |
httpNodeAuth | Basic-Auth fuer HTTP-Node-Endpunkte (Username + bcrypt-Hash) | - |
credentialSecret | Schluessel zur Verschluesselung von Node-Credentials. Wird per NODERED_CREDENTIAL_SECRET gesetzt. | no-secret |
module.exports = {
// HTTPS aktivieren
https: {
key: require("fs").readFileSync('/path/to/privkey.pem'),
cert: require("fs").readFileSync('/path/to/cert.pem'),
},
// Basic-Auth fuer HTTP-Nodes
// Hash erzeugen: node -e "console.log(require('bcryptjs').hashSync('password', 8))"
httpNodeAuth: {
user: "api-user",
pass: "$2a$08$zZWtXTja0fB1pzD4sHCMyOCMYz2Z6dNbM6tl8sJogENOMcxWV9DN.",
},
};Server
| Eigenschaft | Beschreibung | Standard |
|---|---|---|
uiPort | TCP-Port. Wird per PORT oder NODERED_PORT ueberschrieben. | 1880 |
uiHost | Interface ("::" fuer IPv6, "127.0.0.1" nur lokal) | Alle IPv4 |
apiMaxLength | Maximale Groesse von HTTP-Requests an die Runtime-API | 5mb |
httpAdminRoot | Root-Pfad fuer den Editor und die Admin-API | / |
httpNodeRoot | Root-Pfad fuer http in-Nodes | / |
httpStatic | Verzeichnis fuer statische Dateien. Wird per NODERED_HTTP_STATIC ueberschrieben. | <userDir>/static/ |
Runtime
Logging
Das Logging wird ueber die Eigenschaft logging konfiguriert. Verfuegbare Level:
| Level | Beschreibung |
|---|---|
fatal | Nur Fehler, die die Anwendung unbenutzbar machen |
error | Request-kritische Fehler + fatal |
warn | Nicht-fatale Probleme + error + fatal |
info | Allgemeine Laufzeitinformationen + warn + error + fatal |
debug | Ausfuehrlichere Informationen + info + warn + error + fatal |
trace | Sehr detailliertes Logging + alle darueberliegenden Level |
off | Logging komplett deaktiviert |
module.exports = {
logging: {
console: {
level: "info",
metrics: false, // Metriken im Log ausgeben
audit: true, // Audit-Events im Log ausgeben
},
},
};Context Storage, Diagnose und externe Module
module.exports = {
// Persistenter Context-Speicher
contextStorage: {
default: { module: "localfilesystem" },
},
exportGlobalContextKeys: true,
// Externe Module im Editor und in Function-Nodes erlauben
externalModules: {
autoInstall: false,
palette: { allowInstall: true, allowUpdate: true, allowUpload: true },
modules: { allowInstall: true },
},
// Diagnose-Endpunkte
diagnostics: { enabled: true, ui: true },
runtimeState: { enabled: false, ui: false },
};Editor
LowCode verwendet standardmaessig das processcube-Theme mit aktiviertem Multiplayer-Modus.
module.exports = {
editorTheme: {
theme: "processcube",
header: {
title: "LowCode",
image: "/path/to/logo.jpg",
url: "https://www.processcube.io",
},
palette: {
// Reihenfolge der Kategorien in der Node-Palette
categories: [
"Allgemein", "ProcessCube", "ProcessCube Events",
"ProcessCube UI", "dashboard 2", "ProcessCube AI Chat",
"ProcessCube AI", "ProcessCube Tools", "ProcessCube DevOps",
],
},
projects: { enabled: false, workflow: { mode: "manual" } },
codeEditor: { lib: "monaco" },
multiplayer: { enabled: true },
},
// disableEditor: false, // Editor komplett deaktivieren (nur API-Betrieb)
};Kategorien, die nicht in palette.categories aufgefuehrt sind, werden automatisch am Ende angehaengt.
Node-Einstellungen
| Eigenschaft | Beschreibung | Standard |
|---|---|---|
functionExternalModules | Erlaubt Function-Nodes, npm-Module direkt zu laden | true |
functionTimeout | Standard-Timeout fuer Function-Nodes in Sekunden (0 = kein Timeout) | 0 |
functionGlobalContext | Vordefinierte Werte im Global Context | {} |
debugMaxLength | Maximale Laenge von Debug-Nachrichten in Zeichen | 1000 |
mqttReconnectTime | Wiederverbindungsintervall fuer MQTT in Millisekunden | 15000 |
Dashboard
| Eigenschaft | Beschreibung | Standard |
|---|---|---|
dashboard.maxHttpBufferSize | Maximale Groesse von HTTP-Nachrichten zum Dashboard (Bytes) | 20000000 (20 MB) |
Custom Settings (NODERED_CUSTOM_SETTINGS)
Ueber die Umgebungsvariable NODERED_CUSTOM_SETTINGS kann eine zusaetzliche Konfigurationsdatei eingebunden werden. Diese wird per lodash.merge in die bestehende Konfiguration integriert.
Auswertungsreihenfolge:
- Basis-
settings.jswird geladen - Umgebungsvariablen ueberschreiben einzelne Werte
- Custom-Settings-Datei wird per Deep-Merge integriert (hoechste Prioritaet)
Beispiel: Datenbank-Migration
// /etc/processcube/nodered/custom_settings.js
module.exports = {
dbMigration: {
enabled: true,
driver: 'pg',
migrationPattern: '/migrations/*',
connection: {
host: process.env.POSTGRES_HOST,
port: process.env.POSTGRES_PORT || 5432,
database: process.env.POSTGRES_DB,
user: process.env.POSTGRES_USER,
password: process.env.POSTGRES_PASSWORD,
},
},
};Verwendung mit Docker Compose
services:
lowcode:
image: marketplace.processcube.io/processcube-io/processcube_lowcode:latest
environment:
NODERED_CUSTOM_SETTINGS: "/etc/processcube/nodered/custom_settings.js"
volumes:
- ./custom_settings.js:/etc/processcube/nodered/custom_settings.js:roWeiterführende Dokumentation
- Konfiguration (Uebersicht) — Ueberblick ueber alle Konfigurationsansaetze
- Umgebungsvariablen — Vollstaendige Referenz aller NODERED_* Parameter
- Node-RED Konfigurationsdokumentation — Offizielle Node-RED-Dokumentation