Revisado el 13 de diciembre de 2024.
Cambios realizados:
- Nuevas variables de entorno para la versión 1.71.2.
- Actualización de NodeJS v18 a v20.
- Sección de despliegue en local eliminada para evitar confusión.
- Configuración de Nginx actualizada.
- Sección para actualizar n8n añadida.
- Redacción revisada.
🗂️ Este artículo forma parte de una serie dedicada a n8n y las automatizaciones. Te invitamos a estar atento/a a futuras entregas para obtener una visión más completa y detallada de esta herramienta y su potencial.
En este post vamos a instalar n8n en un servidor Debian. Asumiremos que el servidor está recién creado y que viene con el sistema operativo base, sin nada adicional instalado.
✍️ Nota: la versión de n8n actual es 1.71.2, compatible con NodeJS v20, la última versión estable de la distribución Debian que usaremos en el servidor es Debian 12 (bookworm).
1. Requerimientos necesarios para seguir esta guía.
Todo usuario que siga esta guía debería tener los siguientes conocimientos:
Para crear el servidor y configurarlo:
- Comandos de consola en Linux (nivel básico, añadir/eliminar usuarios, instalar/eliminar paquetes, resolución de problemas o troubleshooting).
- Poder conectarse al servidor con SSH u otro protocolo.
Y para crear un flujo y probarlo:
- JavaScript (nivel básico, para hacer scripts en los nodos de código y para la configuración de variables).
- Python (nivel básico, también para los nodos de código, pero es opcional).
⚠️ Antes de instalar n8n o reportar un error a los desarrolladores, comprobaremos que el puerto 5678 está permitido en nuestro cortafuegos y en nuestro proveedor de servicios (Google Cloud, Azure, …).
⚠️ En caso de desplegar n8n en producción, nos aseguraremos de tener un dominio o subdominio a nuestra disposición, y apuntando a la IP de nuestro servidor. En esta guía, usaremos n8n.tudominio.com, que puede ser reemplazado por el dominio o subdominio conveniente.
2. Configuración inicial del servidor.
Para desplegar correctamente n8n en producción, vamos a tener que realizar configuraciones previas en nuestro servidor.
✍️ Nota: En caso de probarlo a nivel local (es decir, en tu propio ordenador), puedes saltarte toda esta configuración inicial.
2.1. Configuración de la fecha y hora del servidor.
Para configurar la fecha y hora del servidor, debemos ejecutar lo siguiente (por ejemplo, utilizaremos el huso horario de Madrid):
sudo ln -fs /usr/share/zoneinfo/Europe/Madrid /etc/localtime sudo dpkg-reconfigure --frontend noninteractive tzdata
2.2. Configuración del servicio de sistema para n8n.
Configuraremos un servicio de arranque para n8n en segundo plano, para iniciar n8n automáticamente cuando se reinicia el servidor o ocurre algún error inesperado.
Debemos ejecutar el siguiente comando:
sudo bash -c 'cat > /etc/systemd/system/n8n.service << "EOF" [Unit] Description=N8N process manager Documentation=https://n8n.io/ After=network.target [Service] Type=simple User=n8n LimitNOFILE=infinity LimitNPROC=infinity LimitCORE=infinity Environment=PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin:/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin PIDFile=/etc/n8n/n8n.pid Restart=on-failure ExecStart=/usr/bin/node /usr/bin/n8n ExecReload=/bin/kill -HUP $MAINPID ExecStop=/bin/kill -TERM $MAINPID [Install] WantedBy=multi-user.target EOF'
Los límites de memoria y velocidad (LimitNOFILE, LimitNPROC y LimitCORE) los hemos puesto muy laxos (sin límites), ya que n8n también puede tener procesos muy intensos de memoria, dependiendo siempre de la cantidad de datos que consultamos.
Como el servidor es dedicado y este es el único servicio importante que tendremos ejecutando en segundo plano, podemos permitir que n8n pueda utilizar lo máximo de CPU y memoria RAM.
✍️ Nota: Sólo el núcleo (o kernel) del sistema operativo será quién limitará el servicio de n8n en caso de utilización muy brusca de CPU o memoria, para no irrumpir el funcionamiento del sistema operativo a nivel básico.
Vemos que el usuario que ejecuta dicho servicio (en User=n8n) se llama n8n (lo vamos a crear más adelante). Es muy importante ejecutar n8n sin ser superusuario (o root), para minimizar los permisos y no otorgar demasiados privilegios de usuario.
Por supuesto, el usuario n8n no tiene ningún acceso a comandos de superusuario, es decir, no forma parte de los grupos wheel o sudoers ni tampoco tendrá ningún acceso especial en /etc/sudoers.d/.
2.3. Configuración de las variables de entorno.
Las variables de entorno ayudan a arrancar n8n con unas especificaciones en concreto. Para guardar las variables de entorno, lo haremos en otro archivo de configuración de este servicio.
Ejecutaremos el siguiente comando:
sudo mkdir -p "/etc/systemd/system/n8n.service.d" sudo bash -c 'cat > /etc/systemd/system/n8n.service.d/30-env.conf << "EOF" [Service] # Configuracion basica # Para configuracion avanzada, puedes revisar: # https://github.com/n8n-io/n8n/blob/2e97954/packages/cli/src/config/index.ts # https://github.com/n8n-io/n8n/blob/2e97954/packages/cli/src/config/schema.ts # https://github.com/n8n-io/n8n/blob/2e97954/packages/cli/src/config/types.ts # https://github.com/n8n-io/n8n/blob/2e97954/packages/cli/src/config/utils.ts # La API esta en https://n8n.tudominio.com/api/v1 por defecto Environment=N8N_HOST="n8n.tudominio.com" Environment=N8N_PORT="5678" Environment=N8N_PROTOCOL="http" Environment=NODE_ENV=production Environment=N8N_RELEASE_TYPE=stable # Acceso a webhooks y a la interfaz de edicion Environment=VUE_APP_URL_BASE_API="http://localhost:5678" Environment=N8N_EDITOR_BASE_URL="https://n8n.tudominio.com" Environment=WEBHOOK_URL="https://n8n.tudominio.com" # Habilitar notificaciones de nuevas versiones Environment=N8N_VERSION_NOTIFICATIONS_ENABLED=true # Deshabilitar la pagina de uso Environment=N8N_HIDE_USAGE_PAGE=true # Deshabilitar la seccion de plantillas de flujo de trabajo Environment=N8N_TEMPLATES_ENABLED=false # De https://www.thomasmartens.eu/n8n-disable-tracking # Util para desplegar en localhost sin Internet ## Deshabilitar el banner de contratacion Environment=N8N_HIRING_BANNER_ENABLED=false ## Deshabilitar diagnosticos del sistema Environment=N8N_DIAGNOSTICS_CONFIG_FRONTEND= Environment=N8N_DIAGNOSTICS_CONFIG_BACKEND= Environment=N8N_DIAGNOSTICS_ENABLED=false ## Deshabilitar eventos de estadisticas Environment=SKIP_STATISTICS_EVENTS=true ## Deshabilitar hooks externos Environment=EXTERNAL_FRONTEND_HOOKS_URLS= ## Deshabilitar el proceso de onboarding Environment=N8N_ONBOARDING_FLOW_DISABLED=true Environment=N8N_PERSONALIZATION_ENABLED=false # Establecer el nivel de LOGGING Environment=N8N_LOG_LEVEL=info # Configurar la salida de logs tanto a consola como a archivo Environment=N8N_LOG_OUTPUT=console,file # Establecer la ubicacion para guardar el archivo de logs Environment=N8N_LOG_FILE_LOCATION=/home/n8n/n8n-verbose.log # Establecer 10 MB como tamano maximo por archivo de log Environment=N8N_LOG_FILE_MAXSIZE=50 # Establecer 60 como el numero maximo de archivos de log a mantener Environment=N8N_LOG_FILE_MAXCOUNT=60 # Ver https://community.n8n.io/t/why-is-my-database-so-big/7981/13 Environment=EXECUTIONS_DATA_SAVE_ON_SUCCESS=none Environment=EXECUTIONS_DATA_SAVE_ON_ERROR=all Environment=EXECUTIONS_DATA_SAVE_ON_PROGRESS=true Environment=EXECUTIONS_DATA_SAVE_MANUAL_EXECUTIONS=false Environment=EXECUTIONS_DATA_MAX_AGE=168 Environment=DB_SQLITE_VACUUM_ON_STARTUP=true # Activar la limpieza de datos automatica Environment=EXECUTIONS_DATA_PRUNE=true # Numero de horas despues de la ejecucion a partir del cual se deben eliminar, por defecto 14 dias Environment=EXECUTIONS_DATA_MAX_AGE=336 # Numero de ejecuciones a almacenar Environment=EXECUTIONS_DATA_PRUNE_MAX_COUNT=100 # Establecer la aplicacion de permisos en el archivo de configuracion Environment=N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true # Establecer la zona horaria por defecto Environment=GENERIC_TIMEZONE=Europe/Madrid EOF'
Leeremos detenidamente los comentarios respecto a cada una de las variables, para saber el contexto. Es muy importante también leernos la documentación de variables de entorno para saber más variables útiles y el detalle de cada una de ellas.
⚠️ Recuerda reemplazar n8n.tudominio.com por el dominio a tu elección.
✍️ Nota: Hemos puesto la interfaz de n8n en el puerto 5678, ya que el puerto 443 (HTTPS) es un puerto privilegiado que sólo puede ejecutar el usuario root. En caso de configurarlo así, vamos a tener problemas para hacer login o logout.
2.4. Creación del usuario n8n.
Tal como hemos mencionado anteriormente, el usuario n8n no tendrá ningún tipo de privilegio a excepción del propio servicio de n8n. Por supuesto, podremos poner el nombre de usuario que queramos, pero en caso de cambiarlo debemos cerciorarnos que todo apunta a este nuevo usuario.
Ejecutaremos el siguiente comando:
sudo useradd -m n8n -s /bin/bash
2.5. Configuración del HTTPS para n8n.
Para comunicar la interfaz web de n8n (ubicada al puerto 5678) vamos configurar un servidor web que haga de proxy. En pocas palabras, ejecutaremos un servidor web (nginx, por ejemplo) como root en el puerto 443, que redirigirá la petición al puerto 5678, que es donde se ubica la interfaz de n8n.
Servidor web Nginx
NGINX es un software de servidor web de código abierto, similar a Apache.
Para instalarlo, ejecutaremos lo siguiente:
sudo apt-get install -yq nginx
Para configurar el proxy inverso con Nginx, escribiremos lo siguiente:
sudo bash -c 'cat > /etc/nginx/sites-available/n8n.conf << "EOF" # From https://github.com/sutidor/misc/blob/main/proxy-confs/n8n.subdomain.conf.sample server { server_name n8n.tudominio.com; listen 80; location / { proxy_pass http://localhost:5678;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $host; chunked_transfer_encoding off; proxy_buffering off; proxy_cache off;
proxy_read_timeout 86400;
# config to set HTTPOnly and Secure Cookie proxy_cookie_path / "/; HTTPOnly; Secure"; } location ~ ^/(webhook|webhook-test) { proxy_pass http://localhost:5678;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $host; chunked_transfer_encoding off; proxy_buffering off; proxy_cache off;
proxy_read_timeout 86400; # config to set HTTPOnly and Secure Cookie proxy_cookie_path / "/; HTTPOnly; Secure"; } } EOF' # Activamos el servicio web de n8n sudo ln -fs /etc/nginx/sites-available/n8n.conf /etc/nginx/sites-enabled/n8n.conf # Reiniciamos Nginx sudo service nginx reload
⚠️ Recuerda reemplazar n8n.tudominio.com por el dominio a tu elección.
Certbot
Para añadir un certificado seguro para la dirección de n8n, podemos utilizar Certbot, que creará un certificado seguro HTTPS mediante LetsEncrypt y lo renovará automáticamente cada cierto tiempo.
sudo apt-get -yq install python3-certbot-nginx sudo certbot -d n8n.tudominio.com
y contestaremos en la consola las preguntas pertinentes que nos pregunte Certbot.
Veremos que el fichero que tenemos en /etc/nginx/sites-available/n8n.conf está cambiado (Certbot ha añadido sus directivas), debería quedar algo así:
# From https://github.com/sutidor/misc/blob/main/proxy-confs/n8n.subdomain.conf.sample server { server_name n8n.tudominio.com;
listen 443 ssl; ssl_certificate /etc/letsencrypt/live/n8n.tudominio.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/n8n.tudominio.com/privkey.pem; include /etc/letsencrypt/options-ssl-nginx.conf; ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
location / { proxy_pass http://localhost:5678;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $host; chunked_transfer_encoding off; proxy_buffering off; proxy_cache off;
proxy_read_timeout 86400;
# config to set HTTPOnly and Secure Cookie proxy_cookie_path / "/; HTTPOnly; Secure"; }
location ~ ^/(webhook|webhook-test) { proxy_pass http://localhost:5678;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $host; chunked_transfer_encoding off; proxy_buffering off; proxy_cache off;
proxy_read_timeout 86400;
# config to set HTTPOnly and Secure Cookie proxy_cookie_path / "/; HTTPOnly; Secure"; } } server { if ($host = n8n.tudominio.com) { return 301 https://$host$request_uri; } # managed by Certbot server_name n8n.tudominio.com; listen 80; return 404; # managed by Certbot }
⚠️ En caso de utilizar directamente esta plantilla, recuerda reemplazar n8n.tudominio.com por el dominio a tu elección.
3. Instalación de n8n y primer arranque.
Ya que vamos a instalar n8n en un servidor dedicado a ello, utilizaremos la vía de instalación con npm. También lo podemos instalar y configurar mediante Docker, pero al tener un servidor a propósito no hace falta ningún tipo de contenerización, además de ahorrarnos memoria y recursos.
Para instalar n8n es tan fácil como introducir los siguientes comandos:
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo bash - sudo apt-get install -yq nodejs sudo npm install n8n -g
Y así instalamos la última versión en producción. n8n también ofrece versiones next (beta), pero no son recomendables para instalar en producción, ya que no están probadas tan rigurosamente.
Para arrancar n8n es tan fácil como:
sudo systemctl daemon-reload; # Este comando es opcional, sólamente es necesario ejecutarlo cuando se modifiquen las variables de entorno establecidas sudo service n8n start
A partir de aquí, nos saldrá un formulario inicial como este para rellenar nuestros datos:
✍️ Nota: En la versión actual de n8n (1.71.2), salvo que tengamos habilitado un método de recuperación de contraseñas (no contemplado en esta guía), no se utilizará el email introducido para campañas publicitarias de la empresa de n8n. También puedes poner cualquier email ([email protected]) ya que en ningún momento se verifica el email.
4. Actualizar n8n.
⚠️ Nota del autor: a causa de la configuración del servicio de sistema definida en el punto 2.2, las actualizaciones de n8n deben llevarse a cabo cuando ningún flujo esté ejecutándose.
Sin embargo, en caso que se estén ejecutando, siempre se pueden reiniciar (automáticamente o manualmente) en el menú de ejecuciones.
✍️ Nota: Antes de actualizar, nos aseguraremos que tenemos una copia de seguridad reciente. En nuestro caso, configuramos las copias de seguridad utilizando una plantilla muy similar extraída de este enlace.
No realizamos copias de las credenciales, y esto es intencional. Es recomendable que gestionemos las credenciales a través de un gestor de contraseñas, y por lo tanto no están incluidas. Es cierto que al restaurar desde una copia de seguridad tendríamos que introducir todas las credenciales nuevamente, pero preferimos este enfoque por razones de seguridad.
Si también deseamos utilizar comandos de consola para hacer la copia de seguridad, puedes consultar este enlace.
Para actualizar n8n con npm es un proceso bastante intuitivo y trivial. Es recomendable actualizar n8n almenos una vez al mes. En caso de actualizar, por ejemplo, a la versión 1.72.0:
sudo npm install -g [email protected] # Instalamos la nueva versión sudo npm -g cache clean --force # Limpiamos la caché de npm sudo service n8n restart # Reiniciamos el servicio
16 comentarios
Buenas noches, muchas gracias por las indicaciones.
¿Cuáles serían los comandos para las actualizaciones de versiones?
¿Cómo se podrían configurar backups?
Saludos
Buenos días Jose Ignacio,
> ¿Cuáles serían los comandos para las actualizaciones de versiones?
Para actualizar, por ejemplo, a la versión 1.38.0, utilizo esta serie de comandos:
sudo npm install -g [email protected]
sudo npm -g cache clean --force
sudo service n8n restart
Con esto de aquí, instalo la nueva versión de n8n, limpio la caché para eliminar archivos antiguos o redundantes y reinicio el servicio.
Personalmente, recomiendo actualizar a la última versión lo antes posible para evitar posibles sorpresas al saltar muchas versiones de una vez, y leer siempre las notas de la versión (Release Notes). También aconsejo tener dos entornos: un entorno de pruebas en local, para comprobar que la actualización ha sido exitosa; y el propio entorno de producción donde utilizas n8n habitualmente. Más detalles aquí: https://docs.n8n.io/hosting/installation/updating
Además, n8n aplica las actualizaciones y migraciones de forma incremental. Es decir, si actualizas de la versión 1.34.2 a la 1.38.0, se aplicarán también las migraciones de las versiones intermedias (1.35.0, 1.36.0 y 1.37.0). Las actualizaciones incrementales se aplicarán cuando se reinicie n8n (con el `sudo service n8n restart` que hemos visto anteriormente).
Por si acaso, debo recalcar que las versiones actuales de n8n (1.70.1 en el momento de escribir este comentario) ya no utilizan NodeJS 18, sino NodeJS 20, con lo que también habría que actualizar dicho entorno de ejecución.
> ¿Cómo se podrían configurar backups?
En nuestro caso, configuramos las copias de seguridad utilizando una plantilla muy similar a la siguiente, pero sustituyendo los nodos de Slack por Email: https://n8n.io/workflows/1534-back-up-your-n8n-workflows-to-github .
No realizamos copias de las credenciales, y esto es intencional. Es recomendable que las credenciales se gestionen mediante un gestor de contraseñas, y por lo tanto no están incluidas. Es cierto que al restaurar desde una copia de seguridad tendrás que introducir todas las credenciales nuevamente, pero preferimos este enfoque por razones de seguridad.
Si también deseas utilizar comandos de consola para hacer la copia de seguridad, puedes consultar lo siguiente: https://docs.n8n.io/hosting/cli-commands/#workflows
Espero haberte ayudado, un saludo.
Antoni Aloy Torrens
Muchas gracias por tu respuesta.
De todas formas siguiendo esos pasos, se ha instalado la versión de desarrollo, ¿cómo la puedo pasar a explotación?
También, no sería recomendable en un entorno de producción, instalarlo con postgress?
Buenos días Jose Ignacio,
> […] se ha instalado la versión de desarrollo, ¿cómo la puedo pasar a explotación?
Disculpa, pero creo que no he entendido bien tu pregunta, entiendo que te refieres a los pasos del servidor en producción que se deben configurar. Te explico los pasos que hay que hacer en el servidor a partir del punto 2.
Por otra parte, puedes consultar la última versión estable de n8n aquí: https://docs.n8n.io/release-notes/
Y en el recuadro azul verás dos versiones:
* Current
latest
(última versión estable)* Current
next
(versión en desarrollo)Simplemente asegúrate de instalar la versión que aparece en
latest
(última versión estable).Además, cuando tengas n8n desplegado en producción también te irá avisando sobre nuevas versiones y actualizaciones en la pantalla de inicio.
> También, ¿no sería recomendable en un entorno de producción instalarlo con PostgreSQL?
El creador de n8n recomienda cualquiera de ambas: https://community.n8n.io/t/database-recommendation/4017 .
SQLite es válido para entornos de producción pequeños o con bajo volumen de datos. En nuestro caso, usamos SQLite porque nuestro servidor es limitado (1GB RAM, 10GB de disco). Tenemos desplegados en producción (para uso interno) unos 40 flujos diarios y 30 flujos adicionales que se ejecutan cada tres días, junto con 4 usuarios simultáneos. Nunca hemos tenido problemas de base de datos.
Por otro lado, PostgreSQL ofrece mejor rendimiento en transacciones y escalabilidad, pero consume más memoria y requiere una configuración más compleja. Si tu entorno maneja un alto volumen de datos o usuarios, podría ser la opción más adecuada. Sin embargo, configurar Postgres para n8n está fuera del alcance de esta guía.
Espero que la información te sea útil, un saludo.
Antoni Aloy Torrens
Buenas tardes, con desarrollo me refiero a esto (adjunto imagen)
https://drive.google.com/file/d/17IPFeNKvAD_pHicP9IhqRJDkl2Ua2vDJ/view?usp=sharing
Muchas gracias
Buenos días Jose Ignacio,
> […] con desarrollo me refiero a esto (adjunto imagen)
Perfecto, lo entiendo mucho mejor ahora, gracias por el adjunto.
Nos ha pasado la misma situación, así que tras navegar en los foros oficiales de n8n parece ser que ocurre sin motivo aparente: Ver enlace.
He encontrado una posible solución para ese problema: si vas a la configuración de las variables de entorno, añades la variable de entorno Environment=N8N_RELEASE_TYPE=stable y reinicias el servicio (sudo systemctl daemon-reload && sudo service n8n restart) se soluciona dicha incidencia.
He respondido también al hilo correspondiente del enlace del foro, recomiendo que le eches un vistazo también.
Espero que te haya sido útil, un saludo.
Antoni Aloy Torrens
Solucionado. Muchas gracias !
Buenas noches Antoni, has probado a realizar una instalación siguiendo esos mismos pasos?
Yo diría que alguna variable de entorno no está definida correctamente.
Cualquier prueba de ejecución no finaliza hasta que se pulsa el stop (hasta lo más básico).
Agradecería una respuesta ya que estoy muy interesada.
Muchas gracias
Buenos días Mar,
He actualizado la guía y los pasos para instalar una versión de n8n más actualizada.
Una parte a revisar son las variables de entorno.
Si sigue ocurriendo el mismo error, abre la consola de desarrollo en tu navegador (con la tecla F12) y comprueba qué te sale justo cuando ejecutas una prueba de ejecución cualquiera.
Puedes subir una captura de pantalla y adjuntar el enlace por aquí también.
Un saludo,
Antoni Aloy Torrens
Buenas tardes, en primer lugar, muchas gracias por responder.
He realizado una nueva instalación con la nueva guía, y el problema persiste.
He accedido a la consola, veo errores, pero no sé cómo interpretarlos.
* Contenido adjunto ocultado por el autor
¿Me podrías decir cuál es el problema?
Muchas gracias por todo
Buenas noches Mar,
Muchas gracias por la información, me ha facilitado muchísimo depurar el error. He observado que el error es un 401 Unauthorized proveniente del WebSocket, muy similar a esta imagen de este post del foro oficial de n8n.
Cuando configuré el servidor por primera vez también me lo encontré, eso es debido a que el cortafuegos del proveedor de servicios que aprovisiona tu servidor (sea Google Cloud, Azure, AWS Cloud, DigitalOcean, etc.) no deja pasar las conexiones TCP del puerto 5678. No se puede resolver en el servidor, sino que debe hacerse en la propia interfaz del proveedor.
De momento, he configurado la siguiente variable de entorno en /etc/systemd/system/n8n.service.d/30-env.conf como arreglo temporal:
Environment=N8N_PUSH_BACKEND=sse
De esta manera, podrás crear y probar flujos sin ningún tipo de inconveniente. Sin embargo, cuando hayas configurado correctamente la regla del cortafuegos, elimina dicha variable de entorno, reinicia el servicio de n8n con el comando sudo systemctl daemon-reload && sudo service n8n restart y comprueba que ya no te sale el error.
Espero que haya resuelto tu problema.
Un saludo,
Antoni Aloy Torrens
Buenas noches y muchas gracias.
¿Ese arreglo temporal, podría ser definitivo?
Lo digo porque no acierto con el firewall.
Se me olvidaba, porque me pasa esto con la instalación en Debian, y no hay problema con otra en Docker?
Buenos días Mar,
He vuelto a revisar los archivos, ya que no me cuadraba el hecho de que te funcione en Docker y no con npm.
Me he dado cuenta de un error tipográfico en la configuración de Nginx de la guía, disculpa.
Ya debería funcionar mediante Websockets, elimina la variable de entorno anterior y reinicia el servicio de Nginx utilizando `sudo service nginx reload`.
Espero que haya resuelto tu duda.
Un saludo,
Antoni Aloy Torrens
Buenos días Antoni,
Muchísimas gracias por todo!
Un abrazo
Mar
Buenas, lo que me ocurre es que si tengo SSH en 443, pero no en 5678, esto es un problema que desde esta config no he sabido solucionar, si omito la parte que instalas n8n y levanto un docker con n8n y le paso las llaves SSH no tengo problema alguno. Como puedo dejar tu config pero con SSL en el puerto 5678.
Saludos y gracias por tu tiempo
Buenos días Max,
Entiendo que lo que quieres hacer es desplegar N8N en producción utilizando un puerto no-estándar para SSL. Eso sin descontar que efectivamente desplegándolo en local con un Docker es más sencillo porque no involucra despliegue de certificados, como bien dices.
En la guía utilizamos Let’s Encrypt para la generación y validación del certificado SSL para esta entidad certificadora, pero no admite puertos no estándar: https://community.letsencrypt.org/t/tls-alpn-challenge-on-non-standard-https-port-8080/88470/4.
Eso quiere decir que para validar SSL para esta autoridad de certificación en tu despliegue necesitas alguno de los siguientes puertos:
* Validación HTTP-01: necesitas el puerto 80 o 443 disponible para el protocolo HTTP (el que se utiliza para esta guía con Nginx).
* Validación TLS-ALPN-01: necesitas el puerto disponible 443 para el protocolo TLS.
* Validación DNS-01: necesitas colocar un registro TXT en la DNS de tu dominio y luego solicitar validación manual.
Aunque sea técnicamente posible habilitar alguno de estos puertos y luego deshabilitarlo otra vez (dicho procedimiento también se tendría que hacer para renovar el certificado cada vez), no lo recomendaría para nada utilizar un puerto no estándar directamente. En esta guía se utiliza Nginx como proxy inverso sobre un dominio/subdominio a propósito ya que evita dichos inconvenientes y tienes todos los puertos necesarios disponibles.
Espero haberte ayudado,
Antoni Aloy Torrens