Acceder a Node-RED
- Abre tu navegador y visita:
https://<SERVER_IP> - Es normal ver un aviso de SSL en el navegador (certificado autofirmado)
- Se requiere autenticación (ventana emergente de Basic Auth)
- Método de autenticación: HTTP Basic Auth
- Las credenciales se almacenan de forma segura en:
/root/.cloudzy-creds
Archivos y directorios importantes
- El directorio de instalación principal es
/root/node-red. - El archivo de orquestación Docker es
/root/node-red/docker-compose.yml. - Los datos persistentes de Node-RED se almacenan en
/var/lib/docker/volumes/node-red_node-red-data/_data. - El archivo de configuración de Nginx se encuentra en
/etc/nginx/sites-available/node-red. - Las credenciales de autenticación básica se almacenan en
/etc/nginx/auth/node-red.htpasswd. - Los certificados TLS se almacenan en
/etc/nginx/ssl.
Gestión del servicio
Comprobar el estado del contenedor:
docker ps
Ver registros:
docker compose -f /root/node-red/docker-compose.yml logs -f
Reiniciar Node-RED:
docker compose -f /root/node-red/docker-compose.yml restart
Reiniciar Nginx:
systemctl restart nginx
Usuario administrador de Node-RED (alternativa a la autenticación básica)
Node-RED cuenta con su propio sistema de autenticación interno, que puede reemplazar a la autenticación básica de HTTP.
1. Localizar settings.js
El archivo de configuración principal se encuentra dentro del volumen Docker de Node-RED: /var/lib/docker/volumes/node-red_node-red-data/_data/settings.js
2. Habilitar adminAuth
Abre settings.js y descomenta (o añade) la sección adminAuth La sección debería tener este aspecto:
adminAuth: {
type: "credentials",
users: [
{
username: "admin",
password: "<HASHED_PASSWORD>",
permissions: "*"
}]
},
3. Generar un hash de contraseña
Puedes generar el hash desde dentro del contenedor de Node-RED:
docker exec -it node-red-node-red-1 node-red admin hash-pw
Se te pedirá que introduzcas tu contraseña en texto plano.
Copia el hash resultante y pégalo como valor de password en settings.js.
4. Reiniciar Node-RED
Tras editar settings.js:
docker compose -f /root/node-red/docker-compose.yml restart
5. Deshabilitar la autenticación básica de HTTP en Nginx (opcional)
Editar el archivo de sitio de Nginx: /etc/nginx/sites-available/node-red
Eliminar o comentar estas líneas:
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/auth/node-red.htpasswd;
Recarga Nginx:
systemctl restart nginx
Habilitar SSL con un dominio
1. Apunta tu dominio a la IP del servidor.
2. Edita la configuración de Nginx y reemplaza los dos server_name <IP>; con tu dominio («<your-domain>) para los bloques HTTP (puerto 80) y HTTPS (puerto 443):
vim /etc/nginx/sites-available/node-red
3. Instala Certbot:
apt install -y certbot python3-certbot-nginx
4. Ejecuta el siguiente comando para generar un certificado Let's Encrypt válido:
certbot certonly --nginx --non-interactive --agree-tos --email [email protected] -d yourdomain.com
5. Reemplaza las rutas SSL en la configuración de Nginx:
vim /etc/apache2/sites-available/node-red
# Before:
# ssl_certificate /etc/nginx/ssl/fullchain.pem;
# ssl_certificate_key /etc/nginx/ssl/privkey.pem;
# After:
# ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
# ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;
6. Reinicia Nginx para aplicar los cambios:
systemctl restart nginx
7. Abre el navegador y visita: https://yourdomain.com