Levantar varias instancias de Node-Red en windows
Utilizar varias instancias de Node-red te permite trabajar en diferentes proyectos sin que se afecten los flows de cada uno. Para crear varias instancias de Node-red en windows puedes hacer los siguientes pasos.
Por ejemplo, crear 4 instancias:
1- Crea 4 carpetas
c:\node-red-1880 c:\node-red-1881 c:\node-red-1882 c:\node-red-1883
2- Abre 4 cmd windows
Start >> Run >> cmd >> {enter}
node-red -p 1880 -u c:/node-red-1880
Start >> Run >> cmd >> {enter}
node-red -p 1881 -u c:/node-red-1881
Start >> Run >> cmd >> {enter}
node-red -p 1882 -u c:/node-red-1882
Start >> Run >> cmd >> {enter}
node-red -p 1883 -u c:/node-red-1883
Con la instrucción -p indicas el puerto donde se ejecuta y con -u la ubicación.
Así tendrás las 4 instancias en:
- http://localhost:1880
- http://localhost:1881
- http://localhost:1882
- http://localhost:1883
Contenido
Gestionar la nueva instancia de node-red con pm2
Como ya os comente en otro post, me gusta gestionar los procesos con pm2 porque es una forma rápida de poder reiniciar, parar, ver logs, etc..
Organizar un poco los datos para hacerlos más portables
Podríamos meter el nuevo node-red dentro de un directorio con una carpeta data (totalmente opcional).
Así tendríamos un archivo node-red.config.js y en data incluiríamos:
- package.json
- settings.js
- edítalo y pon la propiedad flowFile: ‘flows.json’ para que coja correctamente el archivo de flows
- flows.js (el archivo con tus flujos de node-red)
Quedaría así, por ejemplo:
Archivo configuración para lanzar pm2
El archivo de configuración (node-red.config.js) lo crearemos indicando los argumentos para levantar la instancia, con este contenido:
module.exports = { apps : [{ name : "node-red-1881", script : "C:/Users/amedina/AppData/Roaming/npm/node_modules/node-red/red.js", args :"-u C:/nr1881/data/ -s C:/nr1881/data/settings.js -p 1881", env: { } }] }
Y de esta forma solo quedaría hacer un:
cd C:/nr1881/ pm2 start node-red.config.js
Y ya podríamos ver la nueva instancia con pm2 status: