Compare commits

..

2 commits

Author SHA1 Message Date
1afbbfeee8
[IMPROVED] Actualización de README con instrucciones para proyectos Node-RED
🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-04-01 18:33:37 -05:00
2848ef8f87
[IMPROVED] Configuración de Node-RED con proyectos habilitados
🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-04-01 18:30:10 -05:00
8 changed files with 2850 additions and 309 deletions

View file

@ -3,7 +3,7 @@
"name": "node-red",
"version": "4.0.9-git",
"local": false,
"user": false,
"user": true,
"nodes": {
"junction": {
"name": "junction",
@ -427,306 +427,6 @@
}
}
},
"node-red-contrib-aedes": {
"name": "node-red-contrib-aedes",
"version": "0.6.0",
"local": false,
"user": false,
"nodes": {
"aedes-mqtt-broker": {
"name": "aedes-mqtt-broker",
"types": [
"aedes broker"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red-contrib-aedes",
"file": "/home/mrosero/devs/projects/webservices/node_modules/node-red-contrib-aedes/aedes.js"
}
}
},
"node-red-contrib-mqtt-broker": {
"name": "node-red-contrib-mqtt-broker",
"version": "0.2.9",
"local": false,
"user": false,
"nodes": {
"mosca-mqtt-broker": {
"name": "mosca-mqtt-broker",
"types": [
"mosca in"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red-contrib-mqtt-broker",
"file": "/home/mrosero/devs/projects/webservices/node_modules/node-red-contrib-mqtt-broker/mosca.js"
}
}
},
"node-red-dashboard": {
"name": "node-red-dashboard",
"version": "3.6.5",
"local": false,
"user": false,
"nodes": {
"ui_base": {
"name": "ui_base",
"types": [
"ui_base"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red-dashboard",
"file": "/home/mrosero/devs/projects/webservices/node_modules/node-red-dashboard/nodes/ui_base.js"
},
"ui_button": {
"name": "ui_button",
"types": [
"ui_button"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red-dashboard",
"file": "/home/mrosero/devs/projects/webservices/node_modules/node-red-dashboard/nodes/ui_button.js"
},
"ui_dropdown": {
"name": "ui_dropdown",
"types": [
"ui_dropdown"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red-dashboard",
"file": "/home/mrosero/devs/projects/webservices/node_modules/node-red-dashboard/nodes/ui_dropdown.js"
},
"ui_switch": {
"name": "ui_switch",
"types": [
"ui_switch"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red-dashboard",
"file": "/home/mrosero/devs/projects/webservices/node_modules/node-red-dashboard/nodes/ui_switch.js"
},
"ui_slider": {
"name": "ui_slider",
"types": [
"ui_slider"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red-dashboard",
"file": "/home/mrosero/devs/projects/webservices/node_modules/node-red-dashboard/nodes/ui_slider.js"
},
"ui_numeric": {
"name": "ui_numeric",
"types": [
"ui_numeric"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red-dashboard",
"file": "/home/mrosero/devs/projects/webservices/node_modules/node-red-dashboard/nodes/ui_numeric.js"
},
"ui_text_input": {
"name": "ui_text_input",
"types": [
"ui_text_input"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red-dashboard",
"file": "/home/mrosero/devs/projects/webservices/node_modules/node-red-dashboard/nodes/ui_text_input.js"
},
"ui_date_picker": {
"name": "ui_date_picker",
"types": [
"ui_date_picker"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red-dashboard",
"file": "/home/mrosero/devs/projects/webservices/node_modules/node-red-dashboard/nodes/ui_date_picker.js"
},
"ui_colour_picker": {
"name": "ui_colour_picker",
"types": [
"ui_colour_picker"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red-dashboard",
"file": "/home/mrosero/devs/projects/webservices/node_modules/node-red-dashboard/nodes/ui_colour_picker.js"
},
"ui_form": {
"name": "ui_form",
"types": [
"ui_form"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red-dashboard",
"file": "/home/mrosero/devs/projects/webservices/node_modules/node-red-dashboard/nodes/ui_form.js"
},
"ui_text": {
"name": "ui_text",
"types": [
"ui_text"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red-dashboard",
"file": "/home/mrosero/devs/projects/webservices/node_modules/node-red-dashboard/nodes/ui_text.js"
},
"ui_gauge": {
"name": "ui_gauge",
"types": [
"ui_gauge"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red-dashboard",
"file": "/home/mrosero/devs/projects/webservices/node_modules/node-red-dashboard/nodes/ui_gauge.js"
},
"ui_chart": {
"name": "ui_chart",
"types": [
"ui_chart"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red-dashboard",
"file": "/home/mrosero/devs/projects/webservices/node_modules/node-red-dashboard/nodes/ui_chart.js"
},
"ui_audio": {
"name": "ui_audio",
"types": [
"ui_audio"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red-dashboard",
"file": "/home/mrosero/devs/projects/webservices/node_modules/node-red-dashboard/nodes/ui_audio.js"
},
"ui_toast": {
"name": "ui_toast",
"types": [
"ui_toast"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red-dashboard",
"file": "/home/mrosero/devs/projects/webservices/node_modules/node-red-dashboard/nodes/ui_toast.js"
},
"ui_ui_control": {
"name": "ui_ui_control",
"types": [
"ui_ui_control"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red-dashboard",
"file": "/home/mrosero/devs/projects/webservices/node_modules/node-red-dashboard/nodes/ui_ui_control.js"
},
"ui_template": {
"name": "ui_template",
"types": [
"ui_template"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red-dashboard",
"file": "/home/mrosero/devs/projects/webservices/node_modules/node-red-dashboard/nodes/ui_template.js"
},
"ui_link": {
"name": "ui_link",
"types": [
"ui_link"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red-dashboard",
"file": "/home/mrosero/devs/projects/webservices/node_modules/node-red-dashboard/nodes/ui_link.js"
},
"ui_tab": {
"name": "ui_tab",
"types": [
"ui_tab"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red-dashboard",
"file": "/home/mrosero/devs/projects/webservices/node_modules/node-red-dashboard/nodes/ui_tab.js"
},
"ui_group": {
"name": "ui_group",
"types": [
"ui_group"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red-dashboard",
"file": "/home/mrosero/devs/projects/webservices/node_modules/node-red-dashboard/nodes/ui_group.js"
},
"ui_spacer": {
"name": "ui_spacer",
"types": [
"ui_spacer"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red-dashboard",
"file": "/home/mrosero/devs/projects/webservices/node_modules/node-red-dashboard/nodes/ui_spacer.js"
}
}
},
"node-red-node-serialport": {
"name": "node-red-node-serialport",
"version": "2.0.3",
"local": false,
"user": false,
"nodes": {
"serialport": {
"name": "serialport",
"types": [
"serial in",
"serial out",
"serial request",
"serial-port",
"serial control"
],
"enabled": true,
"local": false,
"user": false,
"module": "node-red-node-serialport",
"file": "/home/mrosero/devs/projects/webservices/node_modules/node-red-node-serialport/25-serial.js"
}
}
},
"@nickcuper/node-red-contrib-html-pro": {
"name": "@nickcuper/node-red-contrib-html-pro",
"version": "1.0.1",

View file

@ -0,0 +1,8 @@
{
"projects": {
"webservices": {
"credentialSecret": false
}
},
"activeProject": "webservices"
}

View file

@ -15,6 +15,19 @@
"tours": {
"welcome": "4.0.9-git"
}
},
"git": {
"globalUser": {
"name": "Mauro Rosero P.",
"email": "mauro@rosero.one"
},
"user": {
"name": "Mauro Rosero P.",
"email": "mauro@rosero.one"
},
"workflow": {
"mode": "manual"
}
}
}
}

View file

@ -7,6 +7,14 @@
"info": "",
"env": []
},
{
"id": "ae43dc9d802ec4d9",
"type": "tab",
"label": "Flow 1",
"disabled": false,
"info": "",
"env": []
},
{
"id": "772316e0710af934",
"type": "inject",

File diff suppressed because it is too large Load diff

View file

@ -5,6 +5,7 @@
"private": true,
"dependencies": {
"@nickcuper/node-red-contrib-html-pro": "~1.0.1",
"node-red": "~4.0.9",
"node-red-contrib-google-sheets-advance": "~0.0.7",
"node-red-contrib-json2csv": "~0.0.3"
}

View file

@ -420,7 +420,7 @@ module.exports = {
projects: {
/** To enable the Projects feature, set this value to true */
enabled: false,
enabled: true,
workflow: {
/** Set the default projects workflow mode.
* - manual - you must manually commit changes

View file

@ -28,9 +28,8 @@ webservices/
├── docs/ # Documentación del proyecto
├── .node-red/ # Directorio de configuración de Node-RED
│ ├── flows.json # Definición principal de flujos
│ └── flows_cred.json # Credenciales de flujos (no incluido en el repositorio)
│ └── settings.js # Configuración de Node-RED
├── node-red # Script para iniciar/detener el servicio
├── nodes/ # Nodos personalizados para Node-RED
├── public/ # Archivos estáticos para la interfaz de usuario
└── tests/ # Pruebas unitarias y de integración
```
@ -40,18 +39,26 @@ webservices/
### Instalación Inicial
1. Instale las dependencias: `npm install`
2. Configure las variables de entorno en `.env`
3. Cree el directorio de flujos: `mkdir -p flows`
2. Configure las variables de entorno en `.env` (si aplica)
### Iniciar el Servicio
#### Modo Desarrollo
```bash
# Iniciar Node-RED en modo desarrollo (interactivo)
node-red --userDir ./flows
node-red
# Para especificar un puerto diferente
node-red --userDir ./flows -p 1881
node-red -p 1881
```
#### Modo con Proyectos (Recomendado)
```bash
# Iniciar Node-RED con soporte para proyectos
node-red
# Acceder a la interfaz y seleccionar el proyecto "webservices"
# en el menú de gestión de proyectos
```
#### Modo Servicio (Producción)
@ -60,7 +67,7 @@ node-red --userDir ./flows -p 1881
npm install -g pm2
# Iniciar Node-RED como servicio
pm2 start node-red -- --userDir ./flows -p 1880
pm2 start node-red -- -p 1880
# Ver estado del servicio
pm2 status