-
Notifications
You must be signed in to change notification settings - Fork 193
Expand file tree
/
Copy pathdocker-compose-full.yml
More file actions
167 lines (158 loc) · 5.13 KB
/
docker-compose-full.yml
File metadata and controls
167 lines (158 loc) · 5.13 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
# This compose definition pulls the latest images from the GitHub Container Registry.
# This is the best and fastest for self-hosting, as the images are already built and ready to go.
# If you want to build images locally, you can use the docker-compose-local-build.yml file instead.
name: lmnr
services:
rabbitmq:
image: rabbitmq
pull_policy: always
environment:
RABBITMQ_DEFAULT_USER: ${RABBITMQ_DEFAULT_USER}
RABBITMQ_DEFAULT_PASS: ${RABBITMQ_DEFAULT_PASS}
healthcheck:
test: rabbitmq-diagnostics -q check_running && rabbitmq-diagnostics -q check_local_alarms
interval: 10s
timeout: 10s
retries: 3
clickhouse:
# Version 26.3 will break queries on the spans_v0 view, if they are
# not filtered by trace_id and/or ordered by start_time. This is a
# known bug, tracking https://github.com/ClickHouse/ClickHouse/pull/101218.
# We will pin to the earliest stable version once this is fixed
image: clickhouse/clickhouse-server:latest
pull_policy: always
container_name: clickhouse
volumes:
- type: volume
source: clickhouse-data
target: /var/lib/clickhouse/
- type: volume
source: clickhouse-logs
target: /var/log/clickhouse-server/
- type: bind
source: ./clickhouse-profiles-config.xml
target: /etc/clickhouse-server/users.d/lmnr.xml
environment:
CLICKHOUSE_USER: ${CLICKHOUSE_USER}
CLICKHOUSE_PASSWORD: ${CLICKHOUSE_PASSWORD}
cap_add:
- SYS_NICE
- NET_ADMIN
- IPC_LOCK
ulimits:
nofile:
soft: 262144
hard: 262144
postgres:
image: postgres:16
pull_policy: always
volumes:
- postgres-data:/var/lib/postgresql/data
environment:
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
POSTGRES_DB: ${POSTGRES_DB}
healthcheck:
test:
["CMD", "pg_isready", "-U", "${POSTGRES_USER}", "-d", "${POSTGRES_DB}"]
interval: 2s
timeout: 5s
retries: 5
query-engine:
image: ghcr.io/lmnr-ai/query-engine
pull_policy: always
ports:
- "${QUERY_ENGINE_HOST_PORT:-8903}:8903"
environment:
PORT: 8903
healthcheck:
test: ["CMD", "sleep", "5"]
interval: 10s
timeout: 6s
retries: 3
quickwit:
image: quickwit/quickwit:v0.8.2
pull_policy: always
ports:
- "7280:7280" # REST API and UI
- "7281:7281" # OTLP / gRPC
environment:
QW_DATA_DIR: /quickwit/qwdata
command: ["run"]
volumes:
- quickwit-data:/quickwit/qwdata
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:7280/health/livez"]
interval: 10s
timeout: 5s
retries: 3
app-server:
image: ghcr.io/lmnr-ai/app-server
pull_policy: always
ports:
- "${APP_SERVER_HOST_PORT:-8000}:8000"
- "${APP_SERVER_GRPC_HOST_PORT:-8001}:8001"
- "${APP_SERVER_RT_HOST_PORT:-8002}:8002"
depends_on:
postgres:
condition: service_healthy
rabbitmq:
condition: service_healthy
clickhouse:
condition: service_started
query-engine:
condition: service_started
quickwit:
condition: service_healthy
environment:
PORT: 8000
GRPC_PORT: 8001
DATABASE_URL: postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@postgres:5432/${POSTGRES_DB}
RABBITMQ_URL: amqp://${RABBITMQ_DEFAULT_USER}:${RABBITMQ_DEFAULT_PASS}@rabbitmq:5672/%2f
CLICKHOUSE_URL: http://clickhouse:8123
CLICKHOUSE_USER: ${CLICKHOUSE_USER}
CLICKHOUSE_PASSWORD: ${CLICKHOUSE_PASSWORD}
CLICKHOUSE_RO_USER: ${CLICKHOUSE_RO_USER}
CLICKHOUSE_RO_PASSWORD: ${CLICKHOUSE_RO_PASSWORD}
SHARED_SECRET_TOKEN: ${SHARED_SECRET_TOKEN}
ENVIRONMENT: FULL
AEAD_SECRET_KEY: ${AEAD_SECRET_KEY}
QUERY_ENGINE_URL: http://query-engine:8903
QUICKWIT_SEARCH_URL: http://quickwit:7280
QUICKWIT_INGEST_URL: http://quickwit:7281
QUICKWIT_SPANS_INDEX_ID: spans_v2
GOOGLE_GENERATIVE_AI_API_KEY: ${GOOGLE_GENERATIVE_AI_API_KEY}
frontend:
image: ghcr.io/lmnr-ai/frontend
ports:
- "${FRONTEND_HOST_PORT:-5667}:5667"
pull_policy: always
depends_on:
postgres:
condition: service_healthy
clickhouse:
condition: service_started
quickwit:
condition: service_healthy
environment:
PORT: 5667
BACKEND_URL: http://app-server:8000
BACKEND_RT_URL: http://app-server:8002
SHARED_SECRET_TOKEN: ${SHARED_SECRET_TOKEN}
DATABASE_URL: postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@postgres:5432/${POSTGRES_DB}
NEXTAUTH_URL: http://localhost:5667
NEXTAUTH_SECRET: some_secret
NEXT_PUBLIC_URL: http://localhost:5667
ENVIRONMENT: FULL
CLICKHOUSE_URL: http://clickhouse:8123
CLICKHOUSE_USER: ${CLICKHOUSE_USER}
CLICKHOUSE_PASSWORD: ${CLICKHOUSE_PASSWORD}
OPENAI_API_KEY: ${OPENAI_API_KEY}
AEAD_SECRET_KEY: ${AEAD_SECRET_KEY}
QUICKWIT_SEARCH_URL: http://quickwit:7280
GOOGLE_GENERATIVE_AI_API_KEY: ${GOOGLE_GENERATIVE_AI_API_KEY}
volumes:
clickhouse-data:
clickhouse-logs:
postgres-data:
quickwit-data: