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
environment:
- REDIS_URI=redis://redis:6379
volumes:
- evolution_store:/evolution/store
- evolution_instances:/evolution/instances
depends_on:
- redis
volumes:
evolution_store:
evolution_instances:
redis_data:
3. Archivo .env
Tu archivo .env
debe quedar así:
AUTHENTICATION_API_KEY=superseguro123
# Configuración PostgreSQL local
DATABASE_ENABLED=true
DATABASE_PROVIDER=postgresql
DATABASE_CONNECTION_URI=postgresql://postgres:tucontrasña@192.168.1.1:5432/evolution?schema=public
DATABASE_CONNECTION_CLIENT_NAME=evolution_exchange
# Configuración Redis
REDIS_URI=redis://redis:6379
REDIS_ENABLED=true
# Guardar datos en la DB
DATABASE_SAVE_DATA_INSTANCE=true
DATABASE_SAVE_DATA_NEW_MESSAGE=true
DATABASE_SAVE_MESSAGE_UPDATE=true
DATABASE_SAVE_DATA_CONTACTS=true
DATABASE_SAVE_DATA_CHATS=true
DATABASE_SAVE_DATA_LABELS=true
DATABASE_SAVE_DATA_HISTORIC=true
CONFIG_SESSION_PHONE_VERSION=2.3000.1023204200
WEBSOCKET_ENABLED=true
4. Configurar PostgreSQL para múltiples usuarios
Para que todos los usuarios puedan usar la base de datos:
psql -h 192.168.100.99 -U postgres
-- Crear base de datos
CREATE DATABASE evolution;
-- Crear usuario con permisos completos
CREATE USER evolution_user WITH PASSWORD 'usuario_password';
GRANT ALL PRIVILEGES ON DATABASE evolution TO evolution_user;
-- Otorgar acceso a futuras tablas
\c evolution
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL ON TABLES TO evolution_user;
5. Levantar los contenedores
docker compose up -d
docker ps
Deberías ver evolution_api
y evolution_redis
activos.
6. Acceder al contenedor en caso necesario
docker exec -it evolution_api /bin/sh
Te permite ejecutar comandos dentro del contenedor como si estuvieras en otra máquina. Es útil para inspeccionar archivos, revisar configuraciones o ejecutar scripts internos. No hace nada automáticamente; solo te da acceso al entorno interno del contenedor.
7. Probar y administrar la base de datos
psql -h tu_ip -U evolution_user -d evolution
Esto permite que todos los usuarios conectados puedan guardar datos de sesiones, mensajes, contactos y chats de manera centralizada.
8. Consejos finales
- Ver logs del API:
docker logs -f evolution_api
- Reiniciar un contenedor:
docker restart evolution_api
- Redis y PostgreSQL aseguran persistencia aunque reinicies los contenedores.
Con esto tienes Evolution API corriendo en Docker, con Redis para sesiones y PostgreSQL local para múltiples usuarios, listo para integraciones y automatizaciones.
Comentarios
Publicar un comentario