Skip to Content
Low-CodeConfigurationsettings.js Referenz

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

EigenschaftBeschreibungStandard
flowFileName der Flow-Dateiflows.json
flowFilePrettyFormatiert die Flow-JSON-Datei ueber mehrere Zeilen (besser fuer Versionskontrolle)true
userDirBenutzerverzeichnis fuer alle Daten. Kann per NODERED_USERDIR ueberschrieben werden./data/
nodesDirZusaetzliches Verzeichnis fuer lokale Node-Dateien. Wird per NODERED_NODES_DIR gesetzt./usr/src/node-red

Sicherheit

EigenschaftBeschreibungStandard
adminAuthAdmin-Authentifizierung. Wird automatisch ueber die Authority-Umgebungsvariablen gesetzt.-
httpsHTTPS-Konfiguration mit Key und Zertifikat (Objekt oder Funktion)-
httpNodeAuthBasic-Auth fuer HTTP-Node-Endpunkte (Username + bcrypt-Hash)-
credentialSecretSchluessel 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

EigenschaftBeschreibungStandard
uiPortTCP-Port. Wird per PORT oder NODERED_PORT ueberschrieben.1880
uiHostInterface ("::" fuer IPv6, "127.0.0.1" nur lokal)Alle IPv4
apiMaxLengthMaximale Groesse von HTTP-Requests an die Runtime-API5mb
httpAdminRootRoot-Pfad fuer den Editor und die Admin-API/
httpNodeRootRoot-Pfad fuer http in-Nodes/
httpStaticVerzeichnis fuer statische Dateien. Wird per NODERED_HTTP_STATIC ueberschrieben.<userDir>/static/

Runtime

Logging

Das Logging wird ueber die Eigenschaft logging konfiguriert. Verfuegbare Level:

LevelBeschreibung
fatalNur Fehler, die die Anwendung unbenutzbar machen
errorRequest-kritische Fehler + fatal
warnNicht-fatale Probleme + error + fatal
infoAllgemeine Laufzeitinformationen + warn + error + fatal
debugAusfuehrlichere Informationen + info + warn + error + fatal
traceSehr detailliertes Logging + alle darueberliegenden Level
offLogging 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

EigenschaftBeschreibungStandard
functionExternalModulesErlaubt Function-Nodes, npm-Module direkt zu ladentrue
functionTimeoutStandard-Timeout fuer Function-Nodes in Sekunden (0 = kein Timeout)0
functionGlobalContextVordefinierte Werte im Global Context{}
debugMaxLengthMaximale Laenge von Debug-Nachrichten in Zeichen1000
mqttReconnectTimeWiederverbindungsintervall fuer MQTT in Millisekunden15000

Dashboard

EigenschaftBeschreibungStandard
dashboard.maxHttpBufferSizeMaximale 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:

  1. Basis-settings.js wird geladen
  2. Umgebungsvariablen ueberschreiben einzelne Werte
  3. 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:ro

Weiterführende Dokumentation