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"
}
}
}