automatizacion

Cómo instalar n8n con Docker paso a paso

Guía para instalar n8n con Docker Compose en tu propio servidor: configuración, persistencia de datos, primeros pasos y seguridad básica.

17 de septiembre de 2026·10 min de lectura

n8n es una herramienta de automatización de código abierto que conecta aplicaciones y servicios mediante workflows visuales. En lugar de instalar paquetes en tu sistema, en este tutorial lo ejecutamos dentro de un contenedor Docker, lo que lo mantiene aislado y fácil de actualizar o eliminar.

Qué vamos a instalar

n8n ofrece un editor visual con el que se construyen procesos de automatización conectando nodos: leer un correo, consultar una API, escribir en una base de datos o enviar una notificación. Cada flujo se compone de nodos que representan un paso.

Al ejecutarlo con Docker, el entorno queda encapsulado: la aplicación y sus dependencias viven dentro del contenedor, y los datos se guardan en un volumen. El resultado es una instancia de n8n accesible desde el navegador en tu propia máquina o servidor.

Requisitos previos

Antes de empezar necesitas:

  • Un servidor o PC con Linux.
  • Docker instalado en el sistema.
  • Docker Compose disponible (docker compose version lo confirma).
  • Acceso a un terminal.
  • El puerto 5678 libre, que es el que usa n8n por defecto.

Esta guía usa los comandos clásicos de Docker. Si tu usuario no está en el grupo docker, deberás prefijarlos con sudo.

Crear el directorio de trabajo

Crea una carpeta donde vivirán la configuración y los datos de n8n:

mkdir -p ~/n8n
cd ~/n8n

Trabajar dentro de una carpeta propia del servicio te facilita localizar su archivo de configuración, realizar backups y saber qué volumen pertenece a qué aplicación.

Crear el archivo compose.yml

Docker Compose permite definir el servicio en un solo archivo y arrancarlo con un comando. Crea un archivo compose.yml en la carpeta ~/n8n con este contenido:

services:
  n8n:
    image: docker.n8n.io/n8nio/n8n
    container_name: n8n
    restart: unless-stopped
    ports:
      - "5678:5678"
    volumes:
      - n8n-data:/home/node/.n8n

volumes:
  n8n-data:

Cada línea tiene una función:

  • image: la imagen oficial de n8n publicada por el equipo del proyecto.
  • container_name: fija un nombre de contenedor legible (n8n) para usar en los comandos.
  • restart: unless-stopped: política de reinicio del contenedor. Con ella, n8n se inicia solo al arrancar el servidor, salvo que lo detengas explícitamente. Puedes profundizar en cómo reiniciar automáticamente contenedores Docker.
  • ports: expone el puerto 5678 del contenedor en el host. El primero es el puerto del host y el segundo el del contenedor.
  • volumes: monta el volumen n8n-data en la ruta de datos interna de n8n.

Actualiza el puerto si el 5678 ya está ocupado en tu sistema.

Persistencia de datos

n8n guarda sus datos en el directorio /home/node/.n8n, dentro del contenedor. Sin un volumen persistente, esos datos quedan ligados a la capa escribible del contenedor y pueden perderse cuando el contenedor se elimina o se recrea.

El volumen n8n-data monta ese directorio en un espacio gestionado por Docker, independiente del ciclo de vida del contenedor. Puedes eliminar el contenedor y recrearlo con el mismo compose.yml sin perder workflows, credenciales ni configuración. Detener o reiniciar el contenedor no borra los datos: estos solo se pierden si el contenedor se elimina o se recrea sin un volumen que los conserve.

Iniciar n8n

Desde la carpeta donde está tu compose.yml, arranca el servicio:

docker compose up -d

Este comando hace dos cosas:

  • up: crea y arranca los servicios definidos en el archivo. La primera vez descarga la imagen de n8n, así que puede tardar unos segundos.
  • -d (de detached): ejecuta los contenedores en segundo plano, sin bloquear el terminal.

Cuando termine, el contenedor queda corriendo y puedes cerrar el terminal con tranquilidad.

Comprobar que el contenedor funciona

Para ver el estado del servicio:

docker compose ps

Deberías ver el contenedor n8n con estado Up y el puerto mapeado. Si prefieres la vista general de todos los contenedores:

docker ps

En la columna STATUS debe aparecer Up (o un tiempo de actividad) y en PORTS el 0.0.0.0:5678->5678/tcp. Si en su lugar ves Restarting o Exited, consulta la sección de problemas frecuentes.

Acceder a n8n

Abre el navegador y entra en:

http://localhost:5678

La primera vez, n8n te pedirá crear la cuenta de administrador local: un correo, una contraseña y el nombre de la instancia. Esa cuenta vive en el volumen, así que la conservarás aunque reinicies el contenedor.

Si la instalación es en un servidor remoto, sustituye localhost por la dirección de tu servidor (http://IP_DEL_SERVIDOR:5678). Ten en cuenta que, tal como se explica en la sección de seguridad, exponer n8n a internet sin protección previa no es recomendable.

Ver los logs

Para comprobar que n8n arranca sin errores o diagnosticar un fallo:

docker logs n8n

Con docker compose logs desde la carpeta del proyecto puedes ver los logs de todos los servicios configurados. Añade -f para seguirlos en tiempo real. Si quieres dominar estas opciones, en el blog tienes la guía de cómo ver los logs de un contenedor Docker.

Detener n8n

Para parar el servicio sin borrar sus datos:

docker compose stop

El contenedor se detiene, pero el volumen con tu configuración y workflows se conserva intacto. Para continuar más tarde, usa docker compose start.

Reiniciar n8n

Si haces cambios de configuración o simplemente quieres reiniciar el servicio:

docker compose restart

docker compose restart detiene el proceso del contenedor y lo vuelve a lanzar, sin eliminarlo. Reinicia el servicio o contenedor existente tal y como está: no aplica necesariamente los cambios realizados en compose.yml. Para que los cambios del archivo surtan efecto lo indicado es docker compose up -d. Distingue bien los dos casos:

  • docker compose start: inicia un servicio que estaba detenido.
  • docker compose restart: reinicia un servicio que ya estaba en marcha, sin recrear el contenedor.

Actualizar n8n

Actualizar con Docker consiste en descargar la imagen más reciente y hacer que el servicio la utilice:

docker compose pull
docker compose up -d

pull descarga la imagen más reciente y up -d aplica la configuración y recrea el servicio cuando sea necesario para utilizar la nueva imagen. Antes de actualizar, ten en cuenta dos cosas:

  • Las actualizaciones pueden incluir cambios que requieran migrar los datos. Revisa las notas de la versión cuando salte de una versión mayor o menor importante.
  • No es seguro actualizar siempre: una versión nueva puede introducir incompatibilidades con tu configuración. Por eso, haz backup de los datos antes de actualizaciones relevantes.

Si algo falla tras la actualización, docker logs n8n es el primer lugar donde mirar.

Backup

Lo que merece respaldo es el volumen n8n-data: ahí se guardan los workflows, la configuración y las credenciales de las integraciones. El procedimiento general de copia de volúmenes sirve igual para este caso; puedes seguirlo en cómo hacer backup de volúmenes Docker.

Dos apuntes prácticos:

  • Detén el contenedor antes de copiar el volumen para que el backup sea consistente.
  • Haz copias periódicas en una ubicación fuera del servidor. Un volumen soluciona los reinicios, pero no un fallo de disco o un borrado accidental.

Problemas frecuentes

El puerto ya está ocupado

Si al ejecutar docker compose up -d aparece un error indicando que el puerto ya está en uso, cambia el mapeo en compose.yml a otro puerto del host, por ejemplo "5679:5678". Después accede por http://localhost:5679.

El contenedor no arranca o se reinicia en bucle

Comprueba su estado con docker compose ps y revisa los logs. Un contenedor en Restarting casi siempre deja pistas en su salida:

docker logs n8n

No se puede acceder a la interfaz

Verifica que el contenedor está en marcha con docker ps y que el puerto aparece mapeado. Si la instalación es remota, comprueba también que el firewall del servidor permite el tráfico entrante en ese puerto.

Permisos o volumen mal configurado

El contenedor corre como el usuario node (UID 1000) y espera sus datos en /home/node/.n8n. Si cambias la ruta de montaje del volumen, n8n creará un entorno nuevo y no verás tus workflows anteriores. Mantén la ruta tal y como aparece en el compose.yml de esta guía.

Seguridad

Una advertencia importante: no publiques esta instancia de n8n directamente en internet sin protección. Publicar directamente el puerto 5678 aumenta innecesariamente la superficie de exposición y no es una configuración recomendable para producción.

Para publicar n8n de forma segura necesitas, como mínimo:

  • HTTPS mediante un certificado válido.
  • Un proxy inverso que enrute el tráfico hacia el contenedor.
  • La configuración de autenticación correspondiente de n8n para entornos de producción.
  • Un firewall que limite qué puertos quedan abiertos.

Este tutorial cubre la instalación local. Lo relativo a exponer n8n de forma segura se tratará en un artículo específico más adelante.

Conclusión

Con Docker Compose tienes n8n funcionando en tu propia máquina o servidor: un archivo define el servicio, un volumen conserva tus datos y unos pocos comandos gestionan el ciclo de vida completo.

El siguiente paso natural es crear tu primer workflow desde el editor: conectar un nodo de entrada, añadir una acción y ver cómo se ejecuta. A partir de ahí, automatizarás tareas repetitivas sin tocar más el contenedor.