Skip to main content

Configuration

Settings File Structure

Default Settings Location

  • Linux/macOS: ~/.node-red/settings.js

  • Windows: %HOMEPATH%.node-red\settings.js

  • Custom: Specified via --settings parameter

Core Configuration Options

Server Configuration

javascript


module.exports = {
// Server settings
uiPort: process.env.PORT || 1880,
uiHost: "0.0.0.0",
// HTTPS configuration
https: {
key: require("fs").readFileSync('privkey.pem'),
cert: require("fs").readFileSync('cert.pem')
},
// Cross-origin resource sharing
httpNodeCors: {
origin: "*",
methods: "GET,PUT,POST,DELETE"
}
}

Authentication & Security

javascript


module.exports = {
// Admin API security
adminAuth: {
type: "credentials",
users: [{
username: "admin",
password: "$2b$08$...", // bcrypt hash
permissions: "*"
}]
},
// HTTP node security
httpNodeAuth: {
user: "user",
pass: "$2b$08$..." // bcrypt hash
},
// Function node security
functionGlobalContext: {
// Global variables accessible to function nodes
env: process.env
}
}

Storage Configuration

javascript

module.exports = {
// Flow storage
storageModule: require("node-red-contrib-storage-plugin"),
// Context storage
contextStorage: {
default: {
module: "localfilesystem"
},
memoryOnly: {
module: "memory"
}
}
}

Environment Variables

Core Variables

bash


# Port configuration
export PORT=1880
# Node environment
export NODE_ENV=production
# Memory limits
export NODE_OPTIONS="--max_old_space_size=2048"
# User directory
export NODE_RED_HOME=/opt/node-red
# Flow file
export FLOWS=flows.json

Docker Environment Variables

bash


# Container configuration
docker run -e PORT=1880 \
-e NODE_ENV=production \
-e NODE_OPTIONS="--max_old_space_size=2048" \
-v node_red_data:/data \
nodered/node-red:4.0.3

Performance Tuning

Memory Management

javascript


module.exports = {
// Node.js memory settings
nodeOptions: "--max_old_space_size=2048",
// Flow execution settings
flowExecutionTimeout: 30000,
// Message limits
debugMaxLength: 1000,
mqttReconnectTime: 15000
}

Logging Configuration

javascript


module.exports = {
logging: {
console: {
level: "info",
metrics: false,
audit: false
},
file: {
level: "info",
filename: "/var/log/node-red/node-red.log",
maxFiles: 5,
maxSize: "10MB"
}
}
}