Init: Evolution API para WhatsApp - configuración simplificada

- docker-compose.yml con Evolution API (sin PostgreSQL/Redis)
- Almacenamiento local en volúmenes Docker
- Traefik labels con Authentik para /manager
- API endpoints protegidos por API Key
This commit is contained in:
2025-12-02 15:11:13 -06:00
commit ec81c5b0f5
3 changed files with 69 additions and 0 deletions

5
.env.example Normal file
View File

@@ -0,0 +1,5 @@
# Dominio
APP_DOMAIN=whatsapp.nucleoriofrio.com
# Evolution API - Genera una key segura
EVOLUTION_API_KEY=tu-api-key-segura-aqui

1
.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
.env

63
docker-compose.yml Normal file
View File

@@ -0,0 +1,63 @@
version: '3.8'
services:
evolution-api:
image: atendai/evolution-api:latest
container_name: evolution-api
restart: unless-stopped
environment:
# Configuración básica
- SERVER_URL=https://${APP_DOMAIN}
- AUTHENTICATION_TYPE=apikey
- AUTHENTICATION_API_KEY=${EVOLUTION_API_KEY}
- AUTHENTICATION_EXPOSE_IN_FETCH_INSTANCES=true
# Base de datos deshabilitada (usa almacenamiento local)
- DATABASE_ENABLED=false
# Redis deshabilitado
- CACHE_REDIS_ENABLED=false
# Webhooks globales (deshabilitado por ahora)
- WEBHOOK_GLOBAL_ENABLED=false
# Integraciones (deshabilitadas)
- CHATWOOT_ENABLED=false
- TYPEBOT_ENABLED=false
volumes:
- evolution_instances:/evolution/instances
- evolution_store:/evolution/store
networks:
- principal
labels:
- traefik.enable=true
- traefik.docker.network=principal
- traefik.http.services.evolution-api.loadbalancer.server.port=8080
# Router: Manager UI protegido con Authentik
- traefik.http.routers.evolution-ui.rule=Host(`${APP_DOMAIN}`) && PathPrefix(`/manager`)
- traefik.http.routers.evolution-ui.entrypoints=websecure
- traefik.http.routers.evolution-ui.tls.certresolver=letsencrypt
- traefik.http.routers.evolution-ui.service=evolution-api
- traefik.http.routers.evolution-ui.middlewares=authentik-forward-auth@file,evolution-headers
# Router: API endpoints (autenticación por API Key, sin Authentik)
- traefik.http.routers.evolution-api.rule=Host(`${APP_DOMAIN}`)
- traefik.http.routers.evolution-api.entrypoints=websecure
- traefik.http.routers.evolution-api.tls.certresolver=letsencrypt
- traefik.http.routers.evolution-api.service=evolution-api
- traefik.http.routers.evolution-api.middlewares=evolution-headers
# Middleware: Headers
- traefik.http.middlewares.evolution-headers.headers.customrequestheaders.X-Forwarded-Proto=https
volumes:
evolution_instances:
name: evolution_instances
evolution_store:
name: evolution_store
networks:
principal:
external: true