-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathdocker-compose.yaml
More file actions
216 lines (206 loc) · 6.61 KB
/
Copy pathdocker-compose.yaml
File metadata and controls
216 lines (206 loc) · 6.61 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
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
---
services:
inference-gateway:
image: ghcr.io/inference-gateway/inference-gateway:latest
pull_policy: always
environment:
ANTHROPIC_API_KEY: ${ANTHROPIC_API_KEY}
CLOUDFLARE_API_KEY: ${CLOUDFLARE_API_KEY}
COHERE_API_KEY: ${COHERE_API_KEY}
GROQ_API_KEY: ${GROQ_API_KEY}
OPENAI_API_KEY: ${OPENAI_API_KEY}
DEEPSEEK_API_KEY: ${DEEPSEEK_API_KEY}
GOOGLE_API_KEY: ${GOOGLE_API_KEY}
MISTRAL_API_KEY: ${MISTRAL_API_KEY}
SERVER_READ_TIMEOUT: 230s
SERVER_WRITE_TIMEOUT: 230s
SERVER_IDLE_TIMEOUT: 230s
CLIENT_TIMEOUT: 230s
restart: unless-stopped
networks:
- a2a-network
cli:
profiles:
- manual
image: ghcr.io/inference-gateway/cli:latest
pull_policy: always
tty: true
volumes:
- ./downloads:/home/infer/.infer/tmp
environment:
INFER_GATEWAY_URL: http://inference-gateway:8080
INFER_AGENT_MODEL: deepseek/deepseek-v4-pro
INFER_A2A_ENABLED: true
INFER_A2A_AGENTS: |
http://mock-agent:8080
http://google-calendar-agent:8080
http://n8n-agent:8080
http://documentation-agent:8080
http://browser-agent:8080
INFER_TOOLS_WEB_FETCH_ALLOWED_DOMAINS: |
mock-agent
google-calendar-agent
n8n-agent
documentation-agent
browser-agent
demo-site
command:
- chat
networks:
- a2a-network
mock-agent:
image: ghcr.io/inference-gateway/mock-agent:latest
pull_policy: always
environment:
A2A_AGENT_URL: http://mock-agent:8080
A2A_AGENT_CLIENT_PROVIDER: ""
A2A_AGENT_CLIENT_MODEL: ""
A2A_AGENT_CLIENT_BASE_URL: ""
A2A_AGENT_CLIENT_TIMEOUT: 120s
A2A_AGENT_CLIENT_TOOLS_CREATE_ARTIFACT: true
A2A_SERVER_READ_TIMEOUT: 120s
A2A_SERVER_WRITE_TIMEOUT: 120s
A2A_SERVER_IDLE_TIMEOUT: 120s
A2A_QUEUE_CLEANUP_INTERVAL: 500s
A2A_ARTIFACTS_ENABLE: true
A2A_ARTIFACTS_SERVER_HOST: localhost
A2A_ARTIFACTS_SERVER_PORT: 8081
A2A_ARTIFACTS_STORAGE_PROVIDER: filesystem
A2A_ARTIFACTS_STORAGE_BASE_PATH: /tmp/artifacts
A2A_ARTIFACTS_STORAGE_BASE_URL: http://mock-agent:8081
A2A_ARTIFACTS_RETENTION_MAX_ARTIFACTS: 10
A2A_ARTIFACTS_RETENTION_MAX_AGE: 24h
A2A_ARTIFACTS_RETENTION_CLEANUP_INTERVAL: 24h
restart: unless-stopped
networks:
- a2a-network
google-calendar-agent:
image: ghcr.io/inference-gateway/google-calendar-agent:latest
pull_policy: always
environment:
A2A_AGENT_URL: http://google-calendar-agent:8080
A2A_AGENT_CLIENT_PROVIDER: deepseek
A2A_AGENT_CLIENT_MODEL: deepseek-v4-pro
A2A_AGENT_CLIENT_BASE_URL: http://inference-gateway:8080/v1
A2A_AGENT_CLIENT_TIMEOUT: 120s
A2A_SERVER_READ_TIMEOUT: 120s
A2A_SERVER_WRITE_TIMEOUT: 120s
A2A_SERVER_IDLE_TIMEOUT: 120s
A2A_QUEUE_CLEANUP_INTERVAL: 500s
GOOGLE_MOCK_MODE: false
GOOGLE_CALENDAR_ID: ${GOOGLE_CALENDAR_ID}
GOOGLE_CALENDAR_TIMEZONE: CET
GOOGLE_SERVICE_ACCOUNT_JSON: ${GOOGLE_SERVICE_ACCOUNT_JSON}
GOOGLE_APPLICATION_CREDENTIALS: /tmp/google-credentials.json
restart: unless-stopped
networks:
- a2a-network
documentation-agent:
image: ghcr.io/inference-gateway/documentation-agent:latest
pull_policy: always
environment:
A2A_AGENT_URL: http://documentation-agent:8080
A2A_AGENT_CLIENT_PROVIDER: deepseek
A2A_AGENT_CLIENT_MODEL: deepseek-v4-pro
A2A_AGENT_CLIENT_BASE_URL: http://inference-gateway:8080/v1
A2A_AGENT_CLIENT_TIMEOUT: 120s
A2A_SERVER_READ_TIMEOUT: 120s
A2A_SERVER_WRITE_TIMEOUT: 120s
A2A_SERVER_IDLE_TIMEOUT: 120s
A2A_QUEUE_CLEANUP_INTERVAL: 500s
CONTEXT7_API_KEY: ${CONTEXT7_API_KEY}
restart: unless-stopped
networks:
- a2a-network
n8n-agent:
image: ghcr.io/inference-gateway/n8n-agent:latest
pull_policy: always
environment:
A2A_AGENT_URL: http://n8n-agent:8080
A2A_AGENT_CLIENT_PROVIDER: deepseek
A2A_AGENT_CLIENT_MODEL: deepseek-v4-pro
A2A_AGENT_CLIENT_BASE_URL: http://inference-gateway:8080/v1
A2A_AGENT_CLIENT_TOOLS_CREATE_ARTIFACT: true
A2A_AGENT_CLIENT_TIMEOUT: 120s
A2A_SERVER_READ_TIMEOUT: 120s
A2A_SERVER_WRITE_TIMEOUT: 120s
A2A_SERVER_IDLE_TIMEOUT: 120s
A2A_QUEUE_CLEANUP_INTERVAL: 500s
A2A_ARTIFACTS_ENABLE: true
A2A_ARTIFACTS_SERVER_HOST: n8n-agent
A2A_ARTIFACTS_SERVER_PORT: 8081
A2A_ARTIFACTS_STORAGE_PROVIDER: filesystem
A2A_ARTIFACTS_STORAGE_BASE_PATH: /tmp/artifacts
volumes:
- ./agents/n8n-agent:/tmp/artifacts
restart: unless-stopped
networks:
- a2a-network
browser-agent:
image: ghcr.io/inference-gateway/browser-agent:latest
pull_policy: always
environment:
BROWSER_DATA_DIR: /tmp/playwright
BROWSER_HEADLESS: false
BROWSER_XVFB_ENABLED: true
BROWSER_XVFB_DISPLAY: ":99"
BROWSER_XVFB_SCREEN_RESOLUTION: "1920x1080x24"
BROWSER_XVFB_ALLOW_TCP: "true"
A2A_AGENT_URL: http://browser-agent:8080
A2A_AGENT_CLIENT_PROVIDER: deepseek
A2A_AGENT_CLIENT_MODEL: deepseek-v4-pro
A2A_AGENT_CLIENT_BASE_URL: http://inference-gateway:8080/v1
A2A_AGENT_CLIENT_TOOLS_CREATE_ARTIFACT: true
A2A_AGENT_CLIENT_TIMEOUT: 120s
A2A_SERVER_READ_TIMEOUT: 120s
A2A_SERVER_WRITE_TIMEOUT: 120s
A2A_SERVER_IDLE_TIMEOUT: 120s
A2A_QUEUE_CLEANUP_INTERVAL: 500s
A2A_ARTIFACTS_ENABLE: true
A2A_ARTIFACTS_SERVER_HOST: localhost
A2A_ARTIFACTS_SERVER_PORT: 8081
A2A_ARTIFACTS_STORAGE_PROVIDER: filesystem
A2A_ARTIFACTS_STORAGE_BASE_PATH: /tmp/artifacts
A2A_ARTIFACTS_STORAGE_BASE_URL: http://browser-agent:8081
A2A_ARTIFACTS_RETENTION_MAX_ARTIFACTS: 10
A2A_ARTIFACTS_RETENTION_MAX_AGE: 24h
A2A_ARTIFACTS_RETENTION_CLEANUP_INTERVAL: 24h
volumes:
- ./agents/browser-agent:/tmp/artifacts
restart: unless-stopped
networks:
- a2a-network
browser-vnc:
build:
context: .
dockerfile: Dockerfile.vnc
environment:
X_HOST: browser-agent
X_DISPLAY: 99
ports:
- "5900:5900"
depends_on:
- browser-agent
restart: unless-stopped
networks:
- a2a-network
demo-site:
image: nginx:alpine
volumes:
- ./demo-site:/usr/share/nginx/html:ro
networks:
- a2a-network
a2a-debugger:
image: ghcr.io/inference-gateway/a2a-debugger:latest
pull_policy: always
entrypoint:
- /a2a
- --server-url
- http://browser-agent:8080
networks:
- a2a-network
profiles:
- manual
networks:
a2a-network:
driver: bridge