Ir al contenido

Levantando n8n con docker en local como un PRO

4 de septiembre de 2025 por
Levantando n8n con docker en local como un PRO
Dafktech
| Todavía no hay comentarios

¿Alguna vez intentaste levantar n8n con docker en tu máquina local? Seguramente te salieron muchos errores, y al final, te diste por vencido, ¿verdad?

Tranquilo, preparé este post para darte el paso a paso para levantar tu n8n con docker en local y no mueras en el intento. Levantaremos n8n con postgres

Para esto, necesitarás lo siguiente:

Manos a la obra

En una carpeta crea dos archivos

  • .env: Este archivo tendrá datos de conexión y datos sensibles
  • docker-compose.yml: Este archivo tendrá toda la configuración lista para levantar n8n y todos sus juguetes.

Antes de levantar n8n, necesitas hacer un tunnel para que tu ip local sea visible al mundo, además esta ip debe tener https. Tranquilo, para esto usaremos ngrok.

Descarga esta aplicación según su sistema operativo.

Luego de esto, ejecuta el comando, como te indica en la página de ngrok

ngrok config add-authtoken TU-TOKEN-AQUI

Luego de esto, ejecuta:

ngrok http localhost:5678

Este comando, generará una salida similar a la siguiente pantalla:


Copia esta dirección y debes pegarla en el archivo .env en las variables N8N_HOST y WEBHOOK_TUNNEL_URL.

Te dejo el contenido de estos dos archivos:

Archivo .env

DB_POSTGRES_USER=admin
DB_POSTGRES_PASSWORD=admin
DB_POSTGRES_DB=n8n_db
DB_POSTGRES_PORT=5432
TIMEZONE=America/Guayaquil
N8N_ENCRYPTION_KEY=blUE1nF0S2Hj6AW48FCyootJldZQJO5535sKKxHewJwX5TIdUDpWcu7oiIotukho
N8N_HOST=TU-DIRECCCION-DE-NGROK
WEBHOOK_TUNNEL_URL=TU-DIRECCCION-DE-NGROK

Si deseas, puedes crear otro valor para la variable N8N_ENCRYPTION_KEY desde la página random Keygen

Arhivo docker-compose.yml

services:
  n8n:
    image: n8nio/n8n
    restart: always
    ports:
      - "5678:5678"
    environment:
      - GENERIC_TIMEZONE=${TIMEZONE}
      - TZ=${TIMEZONE}
      - NODE_ENV=production

      - DB_TYPE=postgresdb
      - DB_POSTGRESDB_HOST=postgres
      - DB_POSTGRESDB_PORT=${DB_POSTGRES_PORT}
      - DB_POSTGRESDB_DATABASE=${DB_POSTGRES_DB}
      - DB_POSTGRESDB_USER=${DB_POSTGRES_USER}
      - DB_POSTGRESDB_PASSWORD=${DB_POSTGRES_PASSWORD}
      - N8N_ENCRYPTION_KEY=${N8N_ENCRYPTION_KEY}
      - N8N_BLOCK_ENV_ACCESS_IN_NODE=true
      - N8N_RUNNERS_ENABLED=true
      - N8N_HOST=${N8N_HOST}
      - WEBHOOK_URL=https://${WEBHOOK_TUNNEL_URL}/
    volumes:
      - ./n8n-data:/home/node/.n8n
    depends_on:
      - postgres

  postgres:
    image: postgres:16
    container_name: postgres
    restart: always
    environment:
      - POSTGRES_USER=${DB_POSTGRES_USER}
      - POSTGRES_PASSWORD=${DB_POSTGRES_PASSWORD}
      - POSTGRES_DB=${DB_POSTGRES_DB}
    volumes:
      - ./postgres-data:/var/lib/postgresql/data
    ports:
      - "${DB_POSTGRES_PORT}:5432"

volumes:
  postgres-data:
  n8n-data:

Levantando los contenedores

Una vez configurados estos archivos, estamos listos para levantar nuestros contenedores con n8n y postgres.

Ejecuta el siguiente comando; de acuerdo a tu versión del docker compose, puedes ejecutar cualquiera de los dos comandos:

docker compose up
docker-compose up

Si en la consola ves un error como:

Error: EACCES: permission denied, open '/home/node/.n8n/config'

Ejecuta:

sudo chown -R 1000:1000 n8n-data/

Si también en la consola se genera el siguiente mensaje:

Permissions 0644 for n8n settings file /home/node/.n8n/config are too wide.

Ejecutar:

sudo chmod 600 n8n-data/config

Luego de realizar estos pasos, puedes bajar los contenedores y volver a levantarlos:

docker compose down -v
docker compose up

Al final, deberás ver en la terminal el mensaje de que tu aplicación se está ejecutando con la dirección de ngrok que configuraste.


Ahora, ya puedes acceder desde tu navegador con la siguiente dirección

https://072299e01960.ngrok-free.app


Con estas configuraciones, tienes n8n completamente funcional corriendo en tu equipo local con base de datos postgres.

Recuerda: Ngrok te dará un tiempo limitado, con lo cual deberás volver a general la url de tunnel. De igual forma, si apagas tu equipo y quieres volver a levantar n8n, deberás generar la url ejecutando el comando de ngrok y reemplazar esta url en las variables N8N_HOST y WEBHOOK_TUNNEL_URL del archivo .env.

ngrok http localhost:5678

Luego de copiar este valor y reemplazar en las variables antes indicadas, vuelve a generar los contenedores. Tranquilo, tus datos y tus Flujos no se perderán.

docker compose down
docker compose up

Hora de probar y crear tus automatizaciones!!!

Buena suerte.

Levantando n8n con docker en local como un PRO
Dafktech 4 de septiembre de 2025
Compartir
Etiquetas
Nuestros blogs
Archivo
Iniciar sesión dejar un comentario