OVHserver/opt/02-core/evolution-api/docker-compose.yml
SamoilenkoVadym a987d45fbc chore: initial infrastructure setup with Syncthing, Git and documentation
Set up three-tier synchronization: Syncthing (real-time), GitHub (version control), rsync (disaster recovery). Includes complete documentation for future Claude sessions.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-05 16:41:12 +00:00

44 lines
1.6 KiB
YAML

version: '3.8'
services:
evolution-api:
image: atendai/evolution-api:latest
container_name: evolution-api
restart: unless-stopped
networks:
- traefik-public
- database-internal
env_file:
- .env
environment:
DATABASE_PROVIDER: postgresql
DATABASE_CONNECTION_URI: postgresql://evolution_user:${DB_PASSWORD}@postgres-main:5432/evolution
AUTHENTICATION_API_KEY: ${API_KEY}
SERVER_URL: https://wpp.ai-impress.com
volumes:
- evolution-data:/evolution/instances
labels:
- "traefik.enable=true"
- "traefik.docker.network=traefik-public"
# API router without Authelia (higher priority)
- "traefik.http.routers.evolution-api.rule=Host(`wpp.ai-impress.com`) && (PathPrefix(`/instance`) || PathPrefix(`/message`) || PathPrefix(`/chat`) || PathPrefix(`/webhook`) || PathPrefix(`/settings`))"
- "traefik.http.routers.evolution-api.entrypoints=websecure"
- "traefik.http.routers.evolution-api.tls.certresolver=cloudflare"
- "traefik.http.routers.evolution-api.priority=100"
# Web UI router with Authelia (lower priority)
- "traefik.http.routers.evolution.rule=Host(`wpp.ai-impress.com`)"
- "traefik.http.routers.evolution.entrypoints=websecure"
- "traefik.http.routers.evolution.tls.certresolver=cloudflare"
- "traefik.http.routers.evolution.middlewares=authentik@file"
- "traefik.http.routers.evolution.priority=50"
# Service
- "traefik.http.services.evolution.loadbalancer.server.port=8080"
volumes:
evolution-data:
networks:
traefik-public:
external: true
database-internal:
external: true