Esta guía describe cómo configurar una instancia de n8n autoalojada utilizando Docker y Ngrok, permitiendo ejecutar n8n localmente sin necesidad de un servidor dedicado.
Para instalar Ngrok en macOS:
brew install ngrok
Autentica tu cuenta en Ngrok:
ngrok config add-authtoken <tu_authtoken>
Elige Static Domain para desplegar la aplicación online:
ngrok http --url=<tu_subdominio>.ngrok-free.app 80
Anota la URL proporcionada por Ngrok (por ejemplo, https://<subdominio>.ngrok-free.app
).
Crea un directorio para tu proyecto y entrar en él:
mkdir ~/n8n
cd ~/n8n
Descarga la imagen de n8n
desde Docker:
-
Abre Docker Desktop y ve a la pestaña Images.
-
Busca la imagen oficial de n8n (
n8nio/n8n
) y haz clic en Pull para descargarla. -
Crea, dentro del directorio del proyecto, la carpeta
volume
.mkdir ~/n8n/volume
Configura el contenedor con variables de entorno personalizadas:
-
Haz clic en Run para generar un contenedor basado en la imagen n8nio/n8n.
-
En la ventana de configuración avanzada, especifica las siguientes opciones:
-
Nombre del contenedor:
n8n-demo
(puedes cambiarlo por el nombre que prefieras) -
Puerto (Ports): Asocia el puerto 5555 del contenedor con el puerto 5555 de tu máquina local (esto permitirá acceder a la app a través de localhost:5555).
-
Volúmenes (Volumes):
- En Host path, selecciona la carpeta que has creado previamente (
~/n8n/volume
). - En Container path, ingresa la ruta
/home/node/.n8n
para que los datos de n8n se almacenen en el volumen.
- En Host path, selecciona la carpeta que has creado previamente (
-
Variables de entorno (Environment variables):
N8N_COMMUNITY_PACKAGES_ALLOW_TOOL_USAGE=true
N8N_EDITOR_BASE_URL=https://<tu_subdominio_ngrok>.ngrok-free.app
(Reemplaza<tu_subdominio_ngrok>
por el subdominio que Ngrok te proporciona)WEBHOOK_URL=https://<tu_subdominio_ngrok>.ngrok-free.app
WEEBHOOK_TUNNEL_URL=https://<tu_subdominio_ngrok>.ngrok-free.app
N8N_DEFAULT_BINARY_DATA_MODE=filesystem
> [!NOTE] > Es importante añadir `https://` al inicio de las URLs y asegurarte de poner el dominio proporcionado por Ngrok.
-
-
Haz clic en Run para crear el contenedor y ejecutarlo.
Si prefieres gestionar tu instancia de n8n utilizando Docker Compose, puedes optar por esta alternativa para simplificar la gestión de los contenedores. Docker Compose es una herramienta que permite definir y ejecutar aplicaciones multicontenedor, utilizando un archivo YAML que describe los servicios, redes y volúmenes involucrados.
En lugar de gestionar los contenedores de Docker manualmente mediante la interfaz gráfica de Docker Desktop, Docker Compose permite definir todos los parámetros de configuración (como puertos, volúmenes y variables de entorno) en un solo archivo docker-compose.yml
. Este archivo facilita la creación, inicio, detención y escalabilidad de los contenedores con un solo comando.
Uso de Docker Compose: Una vez que tengas docker-compose.yml
, puedes iniciar el contenedor de n8n con el siguiente comando desde el directorio donde se encuentra este archivo:
docker-compose up -d
Este comando descargará la imagen de n8n (si no la tienes), creará el contenedor según las configuraciones especificadas y lo iniciará en segundo plano.
Abre la terminal y ejecuta el siguiente comando para exponer el puerto 5555 (o el que hayas especificado) de tu máquina local a Internet a través de Ngrok:
ngrok http --url=<tu_subdominio_ngrok>.ngrok-free.app 5555
Note
Asegúrate de usar el mismo puerto que configuraste en el contenedor (en este caso, 5555).
Después de ejecutar el comando, Ngrok te proporcionará una URL (por ejemplo, https://<tu_subdominio_ngrok>.ngrok-free.app
):
Ahora, puedes acceder a tu instancia de n8n en el navegador utilizando la URL de Ngrok proporcionada:
https://<tu_subdominio_ngrok>.ngrok-free.app/home/workflows
Regístrate en n8n si es la primera vez que lo usas, y verás el panel de Workflows de n8n:
¡Genial! 🎉 Ahora tienes una instancia de n8n autoalojada gracias Docker y Ngrok. Puedes empezar a crear tus flujos de trabajo (workflows) y automatizar procesos directamente desde tu máquina local sin necesidad de un servidor externo o dominio.
¿Qué podemos hacer ahora? 🤔
- Explorar opciones de personalización de n8n para integrar más herramientas y servicios.
- Considerar migrar a un entorno de producción con un dominio fijo y un servidor dedicado.