Instalar Node-Red en un miniVps Debian8 (openVz)
Instalar node-red en Debian puede ser costoso. ya que el tipico apt-get install node-red
no funciona.
Antes hay que hacer varios retoques. Y desde que debian8 a pasado a archive varios articulos y scripts se han quedado desactualizados.
Despues de varios intentos. Aqui dejo un resumen de los pasos a seguir.
Para los Impacientes.
(copiar y pegar codigo nodejsV8) (Nota: Mejor ejecutar los comandos de uno en uno)
curl -sSL https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add -
echo "deb https://deb.nodesource.com/node_8.x $(lsb_release -sc) main" > /etc/apt/sources.list.d/nodesource.list
apt-get -o Acquire::Check-Valid-Until=false install -y apt-transport-https --force-yes
apt-get -o Acquire::Check-Valid-Until=false update -y
apt-get -o Acquire::Check-Valid-Until=false upgrade -y
apt-get -o Acquire::Check-Valid-Until=false install -y nodejs
apt-get -o Acquire::Check-Valid-Until=false install -y npm --force-yes
apt-get -o Acquire::Check-Valid-Until=false install -y node --force-yes
nodejs --max_old_space_size=64 $(which npm) install -g --unsafe-perm node-red
node --max_old_space_size=64 $(which npm) install -g --unsafe-perm node-red
Ojo puede tardar mucho. Mejor ejecutar los comandos de uno en uno.
si la version de nodejs de tu debian es muy antigua puede fallar a la primera. intentalo 2 veces
Si no ha funcionado: (o tienes mas curiosidad) sigue leyendo.
Correccion:2019-10: La version 1 de node-red parece no funcionar del todo bien en algunos MiniVps.
Para instalar la anterior:
node --max_old_space_size=80 $(which npm) install -g --unsafe-perm node-red@0.20.8
Correccion:2019-12: Con la 1.0.3 Se soluciona el problema.
Nota: si tenias instalada la version anterior de nodejs. tendras que desistalarla.
apt-get remove nodejs -Y
Indice:
1) Actualizo
2) Intento1 (fallido)
3) Intento2
4) workarround Intento2
5) Instalacion nodejs
6) Instalacion node-red
Notas de seguridad
Apendice1: instalacion “a mano”
Apendice2: instalacion nodejs v10
Referencias
1. Actualizo
apt-get update -y
apt-get upgrade -y
apt-get update -y
apt-get dist-upgrade -y
Nota: (desde 2019 lo backports han pasado a archive) echo "deb http://archive.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list
Nota: (desde el 2019 a veces hay que añadir -o Acquire::Check-Valid-Until=false
)
Salida Comando: apt-get -o Acquire::Check-Valid-Until=false update -y
root@em50l:/# apt-get -o Acquire::Check-Valid-Until=false update -y Ign http://ftp.debian.org jessie InRelease Hit http://ftp.debian.org jessie-updates InRelease Hit http://archive.debian.org jessie-backports InRelease Get:1 http://security.debian.org jessie/updates InRelease [44.9 kB] .......
Salida Comando: apt-get -o Acquire::Check-Valid-Until=false update -y
root@em50l:/# apt-get -o Acquire::Check-Valid-Until=false upgrade -y Reading package lists... Done Building dependency tree Reading state information... Done Calculating upgrade... Done The following packages will be upgraded: ........
Intento1 (fallido)
Si la instalacion es muy simple es posible que no tengamos node ni npm.
root@em50l:/# npm install -g --unsafe-perm node-red bash: npm: command not found
npm: command not found => tengo que instalar npm (node se instalaria automaticamente para satisfacer las dependencias).
root@em50l:/# apt-get -o Acquire::Check-Valid-Until=false install npm Reading package lists... Done Building dependency tree Reading state information... Done The following extra packages will be installed: node binutils build-essential bzip2 cpp g++ g++-4.9 gcc .....
Intento instalar node-red
root@em50l:/# npm install -g --unsafe-perm node-red npm WARN engine node-red@0.20.8: wanted: {"node":">=8"} (current: {"node":"0.10.29","npm":"1.4.21"}) npm ERR! Error: Method Not Allowed
La version de node que viene con debian 8 es muy vieja.
hay que instalar minimo nodejs v8
Intento2
Instrucciones Para instalar nodejs:
https://github.com/nodesource/distributions
En teoria solo hay que ejecutar:
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
Pero no funciona desde el 2019 (falta añadir -o Acquire::Check-Valid-Until=false
a apt-get.
Workarround:
Descargo corrijo y ejecuto el script de configuracion (copiar y pegar codigo)
wget https://deb.nodesource.com/setup_8.x
sed -i 's/apt-get/apt-get -o Acquire::Check-Valid-Until=false/g' setup_8.x
#explicacion: sed -i 's/texto-a-buscar/texto-a-reemplazar/g' "Fichero o directorio"
bash setup_8.x
Aqui dejo parte de la salida:
root@em50l:/# bash setup_8.x ... ## Installing the NodeSource Node.js 8.x LTS Carbon repo... ## Populating apt-get cache... + apt-get -o Acquire::Check-Valid-Until=false update ## Run `sudo apt-get install -y nodejs` to install Node.js 8.x LTS Carbon and npm ## Run `sudo apt-get -o Acquire::Check-Valid-Until=false install -y nodejs` to install Node.js
Ya puedo instalar nodejs
(copiar y pegar comando)
apt-get install -y nodejs -o Acquire::Check-Valid-Until=false
Aqui dejo parte de la salida:
root@em50l:/# apt-get install -y nodejs -o Acquire::Check-Valid-Until=false Reading package lists... Done Building dependency tree Reading state information... Done The following packages will be upgraded: nodejs ... ... ...
Ya puedo instalar node-red
(copiar y pegar comando)
npm install -g --unsafe-perm node-red
Aqui dejo parte de la salida:
root@em50l:/# npm install -g --unsafe-perm node-red /usr/bin/node-red -> /usr/lib/node_modules/node-red/red.js /usr/bin/node-red-pi -> /usr/lib/node_modules/node-red/bin/node-red-pi + node-red@0.20.8 added 369 packages from 352 contributors in 40.722s
Si la maquina es un MiniVps con solo 128Mb de RAM es posible que no tenga recursos suficientes para la instalacion.
No hay problema. limitamos la memoria. (copiar y pegar comando)
node --max_old_space_size=80 $(which npm) install -g --unsafe-perm node-red
Para mas info ver: actualizar node-red con recursos limitados
Correccion:2019-10: La version 1 de node-red parece no funcionar del todo bien en algunos MiniVps.
Para instalar la anterior:
node --max_old_space_size=80 $(which npm) install -g --unsafe-perm node-red@0.20.8
ya tendriamos node-red funcionando.
root@em50l:/# node-red 22 Sep 17:27:12 - [info] Welcome to Node-RED =================== 22 Sep 17:27:12 - [info] Node-RED version: v0.20.8 22 Sep 17:27:12 - [info] Node.js version: v8.16.1 22 Sep 17:27:12 - [info] Linux 2.6.32-042stab133.2 x64 LE ... 22 Sep 17:27:14 - [info] Server now running at http://127.0.0.1:1880/ 22 Sep 17:27:14 - [info] Starting flows 22 Sep 17:27:14 - [info] Started flows
Notas de seguridad.
Recuerda que node-red es bastante Inseguro para exponerlo desde una IP publica
- La interfaz de administracion no tiene password
- No se deberia ejecutar como root. (aunque lo quieras lanzar desde el puerto 80)
Para asegurarlo deberias:
- Poner usuario y password a la administracion.
- Cambiar la url de administracion.
- Lanzarlo como un usuario limitado.
- cifrar el trafico mediante un certificado ssl
A1 Instalacion “a mano”
curl -sSL https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add -
echo "deb https://deb.nodesource.com/node_8.x $(lsb_release -sc) main" > /etc/apt/sources.list.d/nodesource.list
apt-get -o Acquire::Check-Valid-Until=false update -y
apt-get -o Acquire::Check-Valid-Until=false upgrade -y
apt-get -o Acquire::Check-Valid-Until=false install -y apt-transport-https
apt-get -o Acquire::Check-Valid-Until=false install -y nodejs
node --max_old_space_size=64 $(which npm) install -g --unsafe-perm node-red
A2 Instalacion nodejs v10
curl -sSL https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add -
echo "deb https://deb.nodesource.com/node_10.x $(lsb_release -sc) main" > /etc/apt/sources.list.d/nodesource.list
apt-get -o Acquire::Check-Valid-Until=false update -y
apt-get -o Acquire::Check-Valid-Until=false upgrade -y
apt-get -o Acquire::Check-Valid-Until=false install -y apt-transport-https
apt-get -o Acquire::Check-Valid-Until=false install -y nodejs
node --max_old_space_size=64 $(which npm) install -g --unsafe-perm node-red
Referencias
https://github.com/nodesource/distributions
https://nodered.org/docs/getting-started/local