En este post quiero dejar documentado —para mí y para quien le sirva— cómo instalar n8n, una herramienta de automatización increíblemente potente y open source, en un servidor Linux en casa usando Docker. Es un proceso sencillo, pero conviene tener los pasos claros para evitar problemas.
Estos son los pasos a seguir:
1. Instalar Docker
Lo primero es instalar Docker en tu máquina Linux. En mi caso uso Ubuntu, pero este enlace sirve para cualquier distribución compatible:
Guía oficial de instalación: https://docs.docker.com/engine/install/ubuntu/
Ahí encontrarás las instrucciones actualizadas paso a paso.
2. Activar el servicio de Docker y comprobar que funciona
Una vez instalado Docker, activa su servicio para que arranque automáticamente y comprueba el estado:
|
sudo systemctl enable docker
sudo systemctl start docker
sudo systemctl status docker
|
Si todo está correcto, deberías ver el servicio como active (running).
3. Crear el volumen para persistencia de n8n
N8N necesita guardar datos (workflows, credenciales, configuraciones…). Para que no se pierdan al reiniciar el contenedor, creamos un volumen:
| docker volume create n8n_data |
Con esto Docker gestionará un directorio persistente donde n8n guardará toda su configuración.
4. Crear y ejecutar el contenedor de n8n
Ahora sí, lanzamos el contenedor de n8n con todos los parámetros necesarios.
Este comando expone el puerto 5678, define la zona horaria y habilita el acceso desde un dominio con HTTPS (ideal si usas un proxy inverso como Traefik o Nginx Proxy Manager):
|
docker run -it –rm \
–name n8n \
-p 5678:5678 \
-e GENERIC_TIMEZONE=»UTC+2″ \
-e TZ=»UTC+2″ \
-e N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true \
-e N8N_HOST=0.0.0.0 \
-e N8N_PORT=5678 \
-e N8N_EDITOR_BASE_URL=https://URL/ \
-e N8N_WEBHOOK_URL=https://URL/ \
-e N8N_SECURE_COOKIE=true \
-e N8N_RUNNERS_ENABLED=false \
-e N8N_PROTOCOL=https \
-e N8N_PROXY_HOPS=1 \
-v n8n_data:/home/node/.n8n \
docker.n8n.io/n8nio/n8n |
Explicación de las variables principales:
- N8N_HOST → Deja escuchar en cualquier interfaz.
- EDITOR_BASE_URL / WEBHOOK_URL → Tu dominio público (si quieres usarlo desde fuera).
- TZ / GENERIC_TIMEZONE → Ajuste de zona horaria.
- SECURE_COOKIE → Obligatorio si se usa HTTPS.
- n8n_data → Volumen persistente.
Una vez se levanta el contenedor, podrás acceder a n8n en tu navegador o si es local → http://TU_IP:5678
Conclusión
Con estos pasos tienes n8n funcionando mediante Docker, de forma persistente y preparado para integrarlo con tu ecosistema doméstico. Es una herramienta muy potente que te permite automatizar prácticamente todo.
Nota adicional: acceso desde fuera de casa
Si quieres que tu instalación de n8n sea accesible desde fuera de tu red local, ten en cuenta lo siguiente: Muchos proveedores de internet no permiten abrir puertos por defecto o no proporcionan una IP pública real (están detrás de CG-NAT).
En ese caso, tienes dos opciones:
- Pedir a tu proveedor que te habilite la apertura de puertos. Algunas operadoras lo activan gratuitamente y otras lo cobran. Sin esto, el acceso externo por puerto 5678 no funcionará.
- Usar Cloudflare Tunnel (recomendado). Con Cloudflare puedes exponer tu servicio sin abrir puertos, de forma segura y gratuita.
Te dejo un tutorial muy completo que explica cómo acceder a una Raspberry (o cualquier servidor local) desde cualquier lugar usando Cloudflare Zero Trust: https://medium.com/@mohsentaleb/how-to-access-your-raspberry-pi-via-ssh-orvnc-from-anywhere-in-the-world-using-cloudflares-zero-9dcd2e75a9d7