Ir al contenido principal

Instalar n8n, Supabase, Evolution API y Portainer

Cómo instalar n8n, Supabase, Evolution API y Portainer en contenedores Docker separados con red compartida

En este tutorial aprenderás a desplegar n8n, Supabase, Evolution API y Portainer en contenedores independientes, todos conectados entre sí mediante una red Docker común. Este enfoque mantiene cada servicio modular y fácil de administrar, sin perder comunicación interna entre ellos.


1. Objetivo del entorno

El objetivo es contar con los siguientes servicios corriendo en el mismo servidor:

  • n8n – Automatización de flujos.
  • Supabase – Base de datos PostgreSQL utilizada por n8n.
  • Evolution API – API para integrar modelos de IA o bots.
  • Portainer – Panel web para administración de contenedores Docker.

Todos se comunicarán dentro de la red local mi_red_local, sin necesidad de exponer internamente las bases de datos o servicios entre sí.


2. Crear la red compartida

Ejecuta este comando una sola vez. La red servirá para que todos los servicios puedan comunicarse por nombre dentro del entorno Docker:

sudo docker network create mi_red_local

3. Estructura recomendada de carpetas

/home/docker/
├── n8n/
│   └── docker-compose.yml
├── supabase/
│   └── docker-compose.yml
├── evolution/
│   └── docker-compose.yml
└── portainer/
    └── docker-compose.yml

Cada servicio tiene su propio archivo docker-compose.yml para facilitar su mantenimiento y actualizaciones.


4. Archivos de configuración

n8n

version: "3.9"

services:
  n8n:
    image: n8nio/n8n:latest
    container_name: n8n
    ports:
      - "5678:5678"
    environment:
      - N8N_BASIC_AUTH_ACTIVE=false
      - N8N_SECURE_COOKIE=false
      - DB_TYPE=postgresdb
      - DB_POSTGRESDB_HOST=supabase-db
      - DB_POSTGRESDB_PORT=5432
      - DB_POSTGRESDB_DATABASE=n8n
      - DB_POSTGRESDB_USER=postgres
      - DB_POSTGRESDB_PASSWORD=postgres
    volumes:
      - n8n_data:/home/node/.n8n
    restart: always
    networks:
      - mi_red_local

volumes:
  n8n_data:

networks:
  mi_red_local:
    external: true

Supabase (PostgreSQL)

services:
  supabase-db:
    image: supabase/postgres:14.1.0
    container_name: supabase-db
    ports:
      - "5433:5432"
    command: postgres -c config_file=/etc/postgresql/postgresql.conf
    environment:
      POSTGRES_PASSWORD: postgres
      POSTGRES_USER: postgres
      POSTGRES_DB: n8n
    volumes:
      - supabase_data:/var/lib/postgresql/data
    restart: always
    networks:
      - mi_red_local

volumes:
  supabase_data:

networks:
  mi_red_local:
    external: true

Evolution API

services:
  redis:
    container_name: evolution_redis
    image: redis:7-alpine
    restart: unless-stopped
    ports:
      - "6379:6379"
    volumes:
      - redis_data:/data
    command: redis-server --save 60 1 --loglevel warning
    networks:
      - mi_red_local

  evolution-api:
    container_name: evolution_api
    image: atendai/evolution-api
    restart: unless-stopped
    ports:
      - "8085:8080"
    env_file:
      - .env
    environment:
      - REDIS_URI=redis://redis:6379
    volumes:
      - evolution_store:/evolution/store
      - evolution_instances:/evolution/instances
    depends_on:
      - redis
    networks:
      - mi_red_local

volumes:
  evolution_store:
  evolution_instances:
  redis_data:

networks:
  mi_red_local:
    external: true

Portainer

services:
  portainer:
    image: portainer/portainer-ce:latest
    container_name: portainer
    restart: unless-stopped
    ports:
      - "9444:9443"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - portainer_data:/data
    networks:
      - mi_red_local

volumes:
  portainer_data:

networks:
  mi_red_local:
    external: true

5. Iniciar los contenedores

Inicia cada servicio por separado con los siguientes comandos:

cd /home/docker/supabase && sudo docker compose up -d
cd /home/docker/n8n && sudo docker compose up -d
cd /home/docker/evolution && sudo docker compose up -d
cd /home/docker/portainer && sudo docker compose up -d

Verifica el estado general:

sudo docker ps

Deberías ver todos los contenedores en ejecución: n8n, supabase-db, evolution_api, evolution_redis y portainer.


6. Accesos web

ServicioURL de acceso
n8nhttp://localhost:5678
Portainerhttps://localhost:9444
Evolution APIhttp://localhost:8085
Supabase (DB interna)supabase-db:5432

Si accedes desde otra computadora dentro de la red local, reemplaza localhost por la IP del servidor.


7. Comunicación interna entre servicios

  • n8n → Supabase: usa supabase-db:5432
  • n8n → Evolution API: usa http://evolution-api:8080
  • Evolution API → Redis: usa redis://redis:6379

Gracias a la red mi_red_local, los servicios pueden comunicarse por nombre sin necesidad de conocer direcciones IP reales.


8. Comprobación rápida

Dentro de n8n puedes crear un flujo simple con un nodo de tipo “PostgreSQL” y configurar la conexión de esta forma:

  • Host: supabase-db
  • Base de datos: n8n
  • Usuario: postgres
  • Contraseña: postgres
  • Puerto: 5432

Al probar la conexión, deberías obtener una respuesta exitosa.


Conclusión

Este enfoque modular te permite desplegar un entorno de automatización profesional totalmente aislado, con administración visual mediante Portainer y comunicación interna segura entre contenedores. La red compartida mi_red_local simplifica las integraciones sin comprometer la estructura de tus servicios.

Comentarios

Entradas populares de este blog

Instalación y Configuración de MySQL 5.7 en Ubuntu 24.04 LTS

Instalar MySQL 5.7 en Ubuntu 24.04 1. Descargar e instalar MySQL Copiar mkdir ~/mysql57 cd ~/mysql57 wget https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz tar -zxvf mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz sudo mv mysql-5.7.44-linux-glibc2.12-x86_64 /usr/local/mysql sudo ln -s /usr/local/mysql/bin/mysql /usr/local/bin/mysql 2. Instalar dependencias necesarias IMPORTANTE: Se descargan las versiones nuevas de las librerías y se las vincula con las librerías que necesita MySQL. Copiar sudo apt update # Reemplazo de libaio sudo apt install libaio1t64 # Reemplazo de libtinfo y ncurses sudo apt install libtinfo6 libncurses6 Copiar # Crear los enlaces simbólicos sudo ln -sf /usr/lib/x86_64-linux-gnu/libaio.so.1t64 /usr/lib/libaio.so.1 sudo ln -sf /usr/lib/x86_64-linux-gnu/libtinfo.so.6 /usr/lib/x86_64-linux-gnu/libtinfo.so.5 sudo ln -sf /usr/lib/x86_64-linux-gnu/libncurses.so.6 /usr/lib/x86_64...

Instalar Evolution API en Docker con Redis y PostgreSQL Local

Instalar Evolution API en Docker con Redis y PostgreSQL Local En este tutorial vamos a levantar Evolution API usando Docker , con soporte de Redis para sesiones y PostgreSQL local para almacenar datos de manera persistente y compartida entre varios usuarios. 1. Estructura del proyecto Crea una carpeta para tu proyecto y colócate en ella: mkdir -p ~/docker/evolution-api cd ~/docker/evolution-api 2. Archivo docker-compose.yml Este compose levanta Redis y Evolution API : version: "3.9" services: # ✅ SERVICIO REDIS redis: container_name: evolution_redis image: redis:7-alpine restart: unless-stopped ports: - "6379:6379" volumes: - redis_data:/data command: redis-server --save 60 1 --loglevel warning # ✅ SERVICIO EVOLUTION API evolution-api: container_name: evolution_api image: atendai/evolution-api restart: unless-stopped ports: - "8085:8080" env_file: - .env ...

Instalar Jasper Studio 6.21 para Ubuntu 24.04

Instalar js-studiocomm_6.21.3 en Ubuntu 24.4 Para instalar Jaspersoft Studio en Ubuntu 24.4, sigue estos pasos: 1. Descargar Jasper Studio Descarga la versión js-studiocomm_6.21.3 desde el siguiente enlace: Jaspersoft Studio 6.21.3 2. Crear el directorio de instalación mkdir /opt/jasperstudio 3. Mover el archivo descargado mv /dir_descarga/js-studiocomm_6.21.3_linux_x86_64.tgz /opt/jasperstudio/ cd /opt/jasperstudio 4. Extraer el archivo tar -xvzf js-studiocomm_6.21.3_linux_x86_64.tgz cd js-studiocomm_6.21.3 5. Ejecutar Jaspersoft Studio ./Jaspersoft\ Studio 6. Crear acceso directo en el escritorio Para facilitar el acceso, crea un archivo .desktop en el escritorio: gedit ~/Escritorio/jaspersoft-studio.desktop En el archivo jaspersoft-studio.desktop , agrega lo siguiente: [Desktop Entry] Version=1.0 Ty...