-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
104 lines (99 loc) · 2.96 KB
/
Copy pathdocker-compose.yml
File metadata and controls
104 lines (99 loc) · 2.96 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
name: w-agent
services:
postgres:
image: pgvector/pgvector:pg16
restart: unless-stopped
environment:
POSTGRES_USER: ${POSTGRES_USER:-w_agent}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-w_agent}
POSTGRES_DB: ${POSTGRES_DB:-w_agent}
ports:
- '${POSTGRES_PORT:-5432}:5432'
volumes:
- postgres_data:/var/lib/postgresql/data
- ./docker/postgres/init.sql:/docker-entrypoint-initdb.d/01-vector.sql:ro
networks:
- w-agent
healthcheck:
test: ['CMD-SHELL', 'pg_isready -U $$POSTGRES_USER -d $$POSTGRES_DB']
interval: 5s
timeout: 5s
retries: 10
start_period: 10s
redis:
image: redis:7
restart: unless-stopped
ports:
- '${REDIS_PORT:-6379}:6379'
networks:
- w-agent
healthcheck:
test: ['CMD', 'redis-cli', 'ping']
interval: 5s
timeout: 3s
retries: 10
start_period: 5s
app:
build:
context: .
dockerfile: Dockerfile
restart: unless-stopped
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
environment:
NODE_ENV: production
LOG_LEVEL: ${LOG_LEVEL:-info}
OPENAI_API_KEY: ${OPENAI_API_KEY:-sk-docker-dev-placeholder}
DATABASE_URL: postgres://${POSTGRES_USER:-w_agent}:${POSTGRES_PASSWORD:-w_agent}@postgres:5432/${POSTGRES_DB:-w_agent}
REDIS_URL: redis://redis:6379
MCP_PORT: ${MCP_PORT:-3100}
DASHBOARD_PORT: ${DASHBOARD_PORT:-3200}
HEALTHZ_PORT: ${HEALTHZ_PORT:-3099}
META_WEBHOOK_PORT: ${META_WEBHOOK_PORT:-3098}
WATCHDOG_INTERVAL_MS: ${WATCHDOG_INTERVAL_MS:-60000}
WATCHDOG_MAX_BRIDGE_RESTARTS: ${WATCHDOG_MAX_BRIDGE_RESTARTS:-3}
WHATSAPP_AUTH_DIR: /data/auth
MEDIA_DIR: /data/media
WHATSAPP_PROVIDER: ${WHATSAPP_PROVIDER:-baileys}
META_ACCESS_TOKEN: ${META_ACCESS_TOKEN:-}
META_PHONE_NUMBER_ID: ${META_PHONE_NUMBER_ID:-}
META_WEBHOOK_VERIFY_TOKEN: ${META_WEBHOOK_VERIFY_TOKEN:-}
META_APP_SECRET: ${META_APP_SECRET:-}
META_DISPLAY_PHONE_NUMBER: ${META_DISPLAY_PHONE_NUMBER:-}
META_GRAPH_API_VERSION: ${META_GRAPH_API_VERSION:-v21.0}
ports:
- '${MCP_PORT:-3100}:3100'
- '${DASHBOARD_PORT:-3200}:3200'
- '${HEALTHZ_PORT:-3099}:3099'
- '${META_WEBHOOK_PORT:-3098}:3098'
volumes:
- whatsapp_auth:/data/auth
- whatsapp_media:/data/media
networks:
- w-agent
healthcheck:
test:
[
'CMD',
'node',
'-e',
"fetch('http://127.0.0.1:' + (process.env.HEALTHZ_PORT || 3099) + '/healthz').then((r) => process.exit(r.ok ? 0 : 1)).catch(() => process.exit(1))",
]
interval: 10s
timeout: 5s
retries: 5
start_period: 20s
networks:
w-agent:
name: w-agent
driver: bridge
volumes:
postgres_data:
name: w-agent-postgres-data
whatsapp_auth:
name: w-agent-whatsapp-auth
whatsapp_media:
name: w-agent-whatsapp-media