-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
216 lines (194 loc) · 6.52 KB
/
Copy pathdocker-compose.yml
File metadata and controls
216 lines (194 loc) · 6.52 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
name: vortex
services:
postgres:
image: postgres:16-alpine
environment:
POSTGRES_USER: vortex_user
POSTGRES_PASSWORD: 2l8)ngJEe99OZ(Um+shwOoVgk*4()JP
POSTGRES_DB: postgres
# ports: # internal only — Docker network access
volumes:
- postgres_data:/var/lib/postgresql/data
- ./init.sh:/docker-entrypoint-initdb.d/init.sh:ro
healthcheck:
test: ["CMD-SHELL", "pg_isready -U vortex_user -d postgres"]
interval: 5s
timeout: 5s
retries: 20
rabbitmq:
image: rabbitmq:3-management-alpine
environment:
RABBITMQ_DEFAULT_USER: vortex_user
RABBITMQ_DEFAULT_PASS: Cn4ygtlGcU9TOHH5zTgjHp6xwiidstdQ
RABBITMQ_DEFAULT_VHOST: vortex_vhost
# ports: # internal only
volumes:
- rabbitmq_data:/var/lib/rabbitmq
healthcheck:
test: ["CMD", "rabbitmq-diagnostics", "-q", "ping"]
interval: 10s
timeout: 10s
retries: 20
seaweedfs:
image: chrislusf/seaweedfs:3.94_large_disk
command: ["server", "-s3"]
# ports: # internal only
volumes:
- seaweed_data:/data
qdrant:
image: qdrant/qdrant:v1.17.0
# ports: # internal only
volumes:
- qdrant_data:/qdrant/storage
embedding-service:
build:
context: ./embedding-service
environment:
QDRANT_URL: http://qdrant:6333
SEAWEED_CONNECTION_URL: http://seaweedfs:8333
BUCKET_NAME: documents
EMBEDDING_MODEL: sentence-transformers/all-MiniLM-L6-v2
EMBEDDING_INTERNAL_SECRET: your-secret-key-here
depends_on:
qdrant:
condition: service_started
seaweedfs:
condition: service_started
guardian-migrate:
build:
context: ./guardian
command: sh -lc '/app/.venv/bin/alembic upgrade head'
environment:
PYTHONPATH: src
DATABASE_URL: postgresql+asyncpg://vortex_user:2l8)ngJEe99OZ(Um+shwOoVgk*4()JP@postgres:5432/guardian
depends_on:
postgres:
condition: service_healthy
rabbitmq:
condition: service_healthy
guardian:
build:
context: ./guardian
environment:
PYTHONPATH: src
DATABASE_URL: postgresql+asyncpg://vortex_user:2l8)ngJEe99OZ(Um+shwOoVgk*4()JP@postgres:5432/guardian
JWT_SECRET_KEY: oW7moRbNvb_6cw0NUNged2I8J_DoVUZVfKIwGfqhHaM
ACCESS_TOKEN_EXPIRE_MINUTES: 360
RABBITMQ_URL: amqp://vortex_user:Cn4ygtlGcU9TOHH5zTgjHp6xwiidstdQ@rabbitmq:5672/vortex_vhost
AUTH_INTERNAL_SECRET: your-secret-key-here
OAUTH_CLIENT_ID: your-client-here
# ports: # internal only
healthcheck:
test: ["CMD-SHELL", "curl -fsS http://localhost:8003/auth/health || exit 1"]
interval: 5s
timeout: 3s
retries: 20
start_period: 20s
depends_on:
postgres:
condition: service_healthy
rabbitmq:
condition: service_healthy
guardian-migrate:
condition: service_completed_successfully
vortex-migrate:
build:
context: ./vortex
target: migrator
environment:
DATABASE_URL: postgres://vortex_user:2l8)ngJEe99OZ(Um+shwOoVgk*4()JP@postgres:5432/vortex
depends_on:
postgres:
condition: service_healthy
vortex:
build:
context: ./vortex
environment:
SERVER__HOST: 0.0.0.0
SERVER__PORT: 3000
RUST_LOG: info,vortex=debug
RABBITMQ_URL: amqp://vortex_user:Cn4ygtlGcU9TOHH5zTgjHp6xwiidstdQ@rabbitmq:5672/vortex_vhost
EMBEDDING_SERVICE__BASE_URL: http://proxy-gateway:8080/embedding
EMBEDDING_SERVICE__TIMEOUT_SECS: 30
EMBEDDING_SERVICE__INTERNAL_SECRET: your-secret-key-here
DATABASE_URL: postgres://vortex_user:2l8)ngJEe99OZ(Um+shwOoVgk*4()JP@postgres:5432/vortex
VORTEX_INTERNAL_SECRET: your-secret-key-here
JWT_SECRET: oW7moRbNvb_6cw0NUNged2I8J_DoVUZVfKIwGfqhHaM
STORAGE__ENDPOINT_URL: http://seaweedfs:8333
STORAGE__PUBLIC_ENDPOINT_URL: https://app.vortexnote.com
STORAGE__BUCKET_NAME: documents
STORAGE__ACCESS_KEY: admin
STORAGE__SECRET_KEY: key
STORAGE__REGION: us-east-1
# ports: # internal only — proxied through proxy-gateway
depends_on:
postgres:
condition: service_healthy
rabbitmq:
condition: service_healthy
seaweedfs:
condition: service_started
vortex-migrate:
condition: service_completed_successfully
healthcheck:
test: ["CMD-SHELL", "curl -fsS http://localhost:3000/health || exit 1"]
interval: 5s
timeout: 3s
retries: 20
start_period: 20s
proxy-gateway:
build:
context: ./proxy-gateway
environment:
PORT: 8080
JWT_SECRET: oW7moRbNvb_6cw0NUNged2I8J_DoVUZVfKIwGfqhHaM
TRUSTED_PROXIES: 127.0.0.1,172.16.0.0/12
VORTEX_API_URL: http://vortex:3000
AUTH_API_URL: http://guardian:8003
EMBEDDING_API_URL: http://embedding-service:8000
VORTEX_UI_URL: http://vortex-ui:4321
STORAGE_API_URL: http://seaweedfs:8333
RATE_LIMIT_RPM: 600
VORTEX_INTERNAL_SECRET: your-secret-key-here
AUTH_INTERNAL_SECRET: your-secret-key-here
EMBEDDING_INTERNAL_SECRET: your-secret-key-here
depends_on:
guardian:
condition: service_healthy
vortex:
condition: service_healthy
embedding-service:
condition: service_started
vortex-ui:
build:
context: ./vortex-ui
args:
PUBLIC_AUTH_API_BASE_URL: http://proxy-gateway:8080
PUBLIC_API_BASE_URL: http://proxy-gateway:8080
OAUTH_CLIENT_ID: [you're client here]
environment:
PORT: 4321
HOSTNAME: 0.0.0.0
STORAGE_PUBLIC_HOST: app.vortexnote.com
STORAGE_INTERNAL_ORIGIN: http://proxy-gateway:8080
depends_on:
proxy-gateway:
condition: service_started
seaweedfs:
condition: service_started
cloudflared:
image: cloudflare/cloudflared:latest
command: tunnel --config /etc/cloudflared/config.yml run
environment:
TUNNEL_TOKEN: ${TUNNEL_TOKEN}
volumes:
- ./cloudflared/config.yml:/etc/cloudflared/config.yml:ro
depends_on:
proxy-gateway:
condition: service_started
restart: unless-stopped
volumes:
postgres_data:
rabbitmq_data:
seaweed_data:
qdrant_data: