-
Notifications
You must be signed in to change notification settings - Fork 123
Expand file tree
/
Copy pathdocker-compose.proxy.yml
More file actions
114 lines (110 loc) · 4.53 KB
/
docker-compose.proxy.yml
File metadata and controls
114 lines (110 loc) · 4.53 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
# ============================================================================
# EvoNexus — docker-compose para instalações atrás de reverse proxy
#
# Use este arquivo em vez de docker-compose.hub.yml quando o host já tiver um
# reverse proxy na frente cuidando do TLS e do roteamento externo — por
# exemplo: Coolify, Dokploy, Traefik, Caddy, Nginx Proxy Manager.
#
# Diferença principal: as portas do dashboard e do terminal-server são
# declaradas como `expose` (só alcançáveis dentro da rede Docker) em vez de
# `ports` (mapeadas no host). Isso evita conflito com o proxy que já ocupa
# 80/443/8080 no host e mantém toda a comunicação externa sob controle do
# proxy.
#
# Requisitos:
# - Seu reverse proxy precisa estar na mesma rede Docker que os serviços
# abaixo (ou ter acesso a ela). A maioria das ferramentas (Coolify,
# Dokploy, Traefik) faz isso automaticamente.
# - Roteie 2 rotas públicas pro container `dashboard`:
# 1. `/` → porta 8080 (UI + API HTTP)
# 2. `/terminal` → porta 32352 (terminal-server, HTTP + WebSocket upgrade)
# Alternativamente, publique o terminal em subdomínio separado e use a
# env var VITE_TERMINAL_URL (veja README.md) no build do frontend.
#
# Uso:
# $ curl -O https://raw.githubusercontent.com/EvolutionAPI/evo-nexus/main/docker-compose.proxy.yml
# $ docker compose -f docker-compose.proxy.yml up -d
#
# Para instalações simples em localhost ou VPS sem reverse proxy,
# continue usando docker-compose.hub.yml.
# ============================================================================
services:
# Dashboard — Flask + React + terminal embutido + Claude CLI.
# Portas expostas apenas dentro da rede Docker; o reverse proxy é quem
# publica para o mundo externo.
dashboard:
image: evoapicloud/evo-nexus-dashboard:latest
container_name: evonexus-dashboard
expose:
- "8080" # Dashboard (UI + API)
- "32352" # Terminal server (WebSocket)
environment:
- TZ=America/Sao_Paulo
- EVONEXUS_PORT=8080
- TERMINAL_SERVER_PORT=32352
- FORWARDED_ALLOW_IPS=*
volumes:
- evonexus_config:/workspace/config
- evonexus_workspace:/workspace/workspace
- evonexus_dashboard_data:/workspace/dashboard/data
- evonexus_memory:/workspace/memory
- evonexus_adw_logs:/workspace/ADWs/logs
- evonexus_agent_memory:/workspace/.claude/agent-memory
restart: unless-stopped
healthcheck:
test: ["CMD", "curl", "-fsS", "http://localhost:8080/api/version"]
interval: 30s
timeout: 10s
retries: 3
start_period: 30s
# Telegram — bot que escuta mensagens e delega para agentes.
# Opcional: remova este serviço se não for usar Telegram.
telegram:
image: evoapicloud/evo-nexus-runtime:latest
container_name: evonexus-telegram
command: ["claude", "--channels", "plugin:telegram@claude-plugins-official", "--dangerously-skip-permissions"]
environment:
- TZ=America/Sao_Paulo
- REQUIRE_ANTHROPIC_KEY=1
volumes:
- evonexus_config:/workspace/config
- evonexus_workspace:/workspace/workspace
- evonexus_memory:/workspace/memory
- evonexus_adw_logs:/workspace/ADWs/logs
- evonexus_agent_memory:/workspace/.claude/agent-memory
stdin_open: true
tty: true
restart: unless-stopped
depends_on:
dashboard:
condition: service_healthy
# Scheduler — executa rotinas automáticas (daily, weekly, monthly).
# Opcional: remova este serviço se não for usar rotinas automatizadas.
scheduler:
image: evoapicloud/evo-nexus-runtime:latest
container_name: evonexus-scheduler
command: ["uv", "run", "python", "scheduler.py"]
environment:
- TZ=America/Sao_Paulo
- REQUIRE_ANTHROPIC_KEY=1
volumes:
- evonexus_config:/workspace/config
- evonexus_workspace:/workspace/workspace
- evonexus_memory:/workspace/memory
- evonexus_adw_logs:/workspace/ADWs/logs
- evonexus_agent_memory:/workspace/.claude/agent-memory
restart: unless-stopped
depends_on:
dashboard:
condition: service_healthy
# ----------------------------------------------------------------------------
# Volumes nomeados — mesmos de docker-compose.hub.yml. Você pode migrar de um
# arquivo para o outro sem perder dados: os volumes são resolvidos por nome.
# ----------------------------------------------------------------------------
volumes:
evonexus_config:
evonexus_workspace:
evonexus_dashboard_data:
evonexus_memory:
evonexus_adw_logs:
evonexus_agent_memory: