Servicios GN

Cómo instalar N8N en VPS Ubuntu con Portainer (fácil)

Interfaz de N8N desplegada en VPS Ubuntu con Portainer y Docker

Después de instalar PostgreSQL en el Paso 3, es momento de completar tu entorno de automatización desplegando N8N. En este tutorial aprenderás a instalar N8N en VPS Ubuntu usando Portainer, conectándolo a Redis y PostgreSQL.

¿Por qué instalar N8N en VPS Ubuntu?

N8N es una plataforma open source para automatizar procesos y flujos de trabajo. Al instalarlo en tu propio servidor, obtienes control total, seguridad de datos y una interfaz visual para conectar APIs, servicios y aplicaciones.

Requisitos previos

  • Servidor VPS Ubuntu con Docker, Portainer y Traefik instalados
  • Redis y PostgreSQL configurados
  • Red Docker gruponegociaNet creada
  • Subdominios configurados (ej. workflow.tudominio.com)
  • Contraseña segura de 32 caracteres para PostgreSQL y N8N

Paso 1: Crear la base de datos para N8N

  1. Accede a Portainer
  2. Entra al contenedor de PostgreSQL
  3. Abre la consola como usuario postgres y ejecuta:
psql
CREATE DATABASE n8n_fila;

Paso 2: Crear el stack para instalar N8N en VPS Ubuntu desde Portainer

El siguiente paso es crear un stack desde Portainer para instalar N8N en VPS Ubuntu con una configuración YAML predefinida.

  1. En el menú de Portainer, ve a Stacks.
  2. Haz clic en Add stack.
  3. Escribe el nombre: postgres
  4. Pega el siguiente contenido YAML en el editor:
version: "3.8"

services:
  n8n_editor:
    image: n8nio/n8n:latest
    environment:
      DB_TYPE: postgresdb
      DB_POSTGRESDB_PORT: 5432
      DB_POSTGRESDB_HOST: postgres
      DB_POSTGRESDB_DATABASE: n8n_fila
      DB_POSTGRESDB_USER: postgres
      DB_POSTGRESDB_PASSWORD: tupasswordparapostgres
      N8N_ENCRYPTION_KEY: tupasswordparan8n
      N8N_HOST: workflow.n8negocia.xyz
      N8N_EDITOR_BASE_URL: https://workflow.n8negocia.xyz/
      N8N_PROTOCOL: https
      NODE_ENV: production
      WEBHOOK_URL: https://devwebhook.n8negocia.xyz/
      EXECUTIONS_MODE: queue
      QUEUE_BULL_REDIS_HOST: redis
      QUEUE_BULL_REDIS_PORT: 6379
      QUEUE_BULL_REDIS_DB: 2
      NODE_FUNCTION_ALLOW_EXTERNAL: moment,lodash,moment-with-locales
      EXECUTIONS_DATA_PRUNE: 'true'
      EXECUTIONS_DATA_MAX_AGE: 336
    deploy:
      mode: replicated
      replicas: 1
      placement:
        constraints:
          - node.role == manager
      resources:
        limits:
          cpus: '0.3'
          memory: 512M
      labels:
        - traefik.enable=true
        - traefik.http.routers.n8n_editor.rule=Host(`workflow.n8negocia.xyz`)
        - traefik.http.routers.n8n_editor.service=n8n_editor
        - traefik.http.routers.n8n_editor.entrypoints=websecure
        - traefik.http.routers.n8n_editor.tls.certresolver=le
        - traefik.http.routers.n8n_editor.tls=true
        - traefik.http.services.n8n_editor.loadbalancer.server.port=5678
    networks:
      - gruponegociaNet

  n8n_webhook:
    image: n8nio/n8n:latest
    command: webhook
    environment:
      DB_TYPE: postgresdb
      DB_POSTGRESDB_PORT: 5432
      DB_POSTGRESDB_HOST: postgres
      DB_POSTGRESDB_DATABASE: n8n_fila
      DB_POSTGRESDB_USER: postgres
      DB_POSTGRESDB_PASSWORD: tupasswordparapostgres
      N8N_ENCRYPTION_KEY: tupasswordparan8n
      N8N_HOST: workflow.n8negocia.xyz
      N8N_EDITOR_BASE_URL: https://workflow.n8negocia.xyz/
      N8N_PROTOCOL: https
      NODE_ENV: production
      WEBHOOK_URL: https://devwebhook.n8negocia.xyz/
      EXECUTIONS_MODE: queue
      QUEUE_BULL_REDIS_HOST: redis
      QUEUE_BULL_REDIS_PORT: 6379
      QUEUE_BULL_REDIS_DB: 2
      NODE_FUNCTION_ALLOW_EXTERNAL: moment,lodash,moment-with-locales
      EXECUTIONS_DATA_PRUNE: 'true'
      EXECUTIONS_DATA_MAX_AGE: 336
    deploy:
      mode: replicated
      replicas: 1
      placement:
        constraints:
          - node.role == manager
      resources:
        limits:
          cpus: '0.5'
          memory: 320M
      labels:
        - traefik.enable=true
        - traefik.http.routers.n8n_webhook.rule=Host(`devwebhook.n8negocia.xyz`)
        - traefik.http.routers.n8n_webhook.service=n8n_webhook
        - traefik.http.routers.n8n_webhook.entrypoints=websecure
        - traefik.http.routers.n8n_webhook.tls.certresolver=le
        - traefik.http.routers.n8n_webhook.tls=true
        - traefik.http.services.n8n_webhook.loadbalancer.server.port=5678
    networks:
      - gruponegociaNet

  n8n_worker:
    image: n8nio/n8n:latest
    command: worker --concurrency=3
    environment:
      DB_TYPE: postgresdb
      DB_POSTGRESDB_PORT: 5432
      DB_POSTGRESDB_HOST: postgres
      DB_POSTGRESDB_DATABASE: n8n_fila
      DB_POSTGRESDB_USER: postgres
      DB_POSTGRESDB_PASSWORD: tupasswordparapostgres
      N8N_ENCRYPTION_KEY: tupasswordparan8n
      N8N_HOST: workflow.n8negocia.xyz
      N8N_EDITOR_BASE_URL: https://workflow.n8negocia.xyz/
      N8N_PROTOCOL: https
      NODE_ENV: production
      WEBHOOK_URL: https://devwebhook.n8negocia.xyz/
      EXECUTIONS_MODE: queue
      QUEUE_BULL_REDIS_HOST: redis
      QUEUE_BULL_REDIS_PORT: 6379
      QUEUE_BULL_REDIS_DB: 2
      NODE_FUNCTION_ALLOW_EXTERNAL: moment,lodash,moment-with-locales
      EXECUTIONS_DATA_PRUNE: 'true'
      EXECUTIONS_DATA_MAX_AGE: 336
    deploy:
      mode: replicated
      replicas: 1
      placement:
        constraints:
          - node.role == manager
      resources:
        limits:
          cpus: '0.5'
          memory: 384M
    networks:
      - gruponegociaNet

networks:
  gruponegociaNet:
    external: true
  1. Confirma que el volumen y red sean externos
  2. Desactiva «Use limited resources» si aplica
  3. Haz clic en Deploy the stack

Paso 3: Verificar que N8N esté funcionando

  • Ve a la sección Containers y verifica que el servicio n8n esté en estado running
  • Abre https://workflow.tudominio.com en tu navegador
  • Regístrate con un correo electrónico y contraseña segura
  • Activa tu cuenta desde el correo recibido

Errores comunes y soluciones

  • Error de red: verifica que la red gruponegociaNet esté creada y activa
  • Fallo de conexión a PostgreSQL: revisa las credenciales y que la base de datos n8n_fila exista
  • Problemas de dominio: asegúrate de tener configurados los registros DNS correctamente

Conclusión y recursos adicionales

¡Felicidades! Ya has completado el proceso de instalación de N8N en VPS Ubuntu. Tu entorno ahora está listo para automatizar tareas con total control.

¿Te perdiste algún paso? Aquí tienes los anteriores:

¿Quieres que lo configuremos por ti? Visita nuestra página de automatización con n8n o contáctanos desde la página de contacto.