Repository navigation
Expand file tree
/
Copy pathcompose.yml
More file actions
114 lines (109 loc) · 3.7 KB
/
Copy pathcompose.yml
File metadata and controls
114 lines (109 loc) · 3.7 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
name: openplotva
services:
openplotva:
build:
context: .
target: runtime
environment:
WEBAPP_HOST: 0.0.0.0
WEBAPP_PORT: 8080
WEBAPP_URL: ${WEBAPP_URL:-http://127.0.0.1:8080}
DB_POSTGRES_HOST: postgres
DB_POSTGRES_PORT: 5432
DB_POSTGRES_USER: ${DB_POSTGRES_USER:-plotva}
DB_POSTGRES_PASSWORD: ${DB_POSTGRES_PASSWORD:-plotva}
DB_POSTGRES_DB: ${DB_POSTGRES_DB:-plotva}
DB_POSTGRES_SSL_MODE: disable
REDIS_HOST: dragonfly
REDIS_PORT: 6379
REDIS_DB: ${REDIS_DB:-0}
UPDATE_QUEUE_BACKEND: ${UPDATE_QUEUE_BACKEND:-stream}
UPDATE_STREAM_REDIS_URL: redis://redis-ingress:6379/0
UPDATE_STREAM_APPEND_CONNECTIONS: ${UPDATE_STREAM_APPEND_CONNECTIONS:-4}
UPDATE_MATERIALIZER_BATCH_MAX_ROWS: ${UPDATE_MATERIALIZER_BATCH_MAX_ROWS:-512}
UPDATE_MATERIALIZER_BATCH_MAX_BYTES: ${UPDATE_MATERIALIZER_BATCH_MAX_BYTES:-8388608}
UPDATE_MATERIALIZER_BATCH_MAX_WAIT_MS: ${UPDATE_MATERIALIZER_BATCH_MAX_WAIT_MS:-50}
UPDATE_MATERIALIZER_DB_TIMEOUT_MS: ${UPDATE_MATERIALIZER_DB_TIMEOUT_MS:-5000}
UPDATE_PROJECTION_FLUSH_INTERVAL_MS: ${UPDATE_PROJECTION_FLUSH_INTERVAL_MS:-10000}
UPDATE_PROJECTION_FLUSH_MAX_MUTATIONS: ${UPDATE_PROJECTION_FLUSH_MAX_MUTATIONS:-10000}
UPDATE_PROJECTION_STAGE_HARD_LIMIT_ROWS: ${UPDATE_PROJECTION_STAGE_HARD_LIMIT_ROWS:-1000000}
OPENPLOTVA_CONNECT_SERVICES: "true"
OPENPLOTVA_RUN_MIGRATIONS: "true"
OPENPLOTVA_CONSUME_UPDATES: "false"
OPENPLOTVA_PRODUCE_UPDATES: "false"
BOT_KEY: ${BOT_KEY:-}
BOT_API_BASE_URL: ${BOT_API_BASE_URL:-}
RUNTIME_API_ENABLED: ${RUNTIME_API_ENABLED:-false}
RUNTIME_API_HOST: 0.0.0.0
RUNTIME_API_PORT: 9091
RUNTIME_API_CERT_FILE: ${RUNTIME_API_CERT_FILE:-}
RUNTIME_API_KEY_FILE: ${RUNTIME_API_KEY_FILE:-}
RUNTIME_API_TLS_PUBLIC_KEY_PIN: ${RUNTIME_API_TLS_PUBLIC_KEY_PIN:-}
ports:
- "${OPENPLOTVA_DEV_APP_PORT:-8080}:8080"
- "${OPENPLOTVA_DEV_RUNTIME_API_PORT:-9091}:9091"
depends_on:
postgres:
condition: service_healthy
dragonfly:
condition: service_started
redis-ingress:
condition: service_healthy
healthcheck:
test: ["CMD", "curl", "-fsS", "http://127.0.0.1:8080/api/health"]
interval: 10s
timeout: 3s
retries: 12
start_period: 20s
postgres:
image: pgvector/pgvector:pg17
environment:
POSTGRES_USER: ${DB_POSTGRES_USER:-plotva}
POSTGRES_PASSWORD: ${DB_POSTGRES_PASSWORD:-plotva}
POSTGRES_DB: ${DB_POSTGRES_DB:-plotva}
ports:
- "${OPENPLOTVA_DEV_POSTGRES_PORT:-55432}:5432"
healthcheck:
test:
[
"CMD-SHELL",
"pg_isready -U \"$${POSTGRES_USER}\" -d \"$${POSTGRES_DB}\"",
]
interval: 2s
timeout: 5s
retries: 30
volumes:
- postgres-data:/var/lib/postgresql/data
dragonfly:
image: docker.dragonflydb.io/dragonflydb/dragonfly:v1.38.1
command: ["--logtostderr", "--cache_mode=false"]
ports:
- "${OPENPLOTVA_DEV_REDIS_PORT:-56379}:6379"
volumes:
- dragonfly-data:/data
redis-ingress:
image: valkey/valkey:8.1-alpine
command:
- valkey-server
- --appendonly
- "yes"
- --appendfsync
- always
- --maxmemory
- ${UPDATE_STREAM_MAXMEMORY:-716mb}
- --maxmemory-policy
- noeviction
mem_limit: ${UPDATE_STREAM_CONTAINER_MEMORY:-1g}
ports:
- "${OPENPLOTVA_DEV_UPDATE_STREAM_REDIS_PORT:-56380}:6379"
volumes:
- redis-ingress-data:/data
healthcheck:
test: ["CMD", "valkey-cli", "ping"]
interval: 2s
timeout: 3s
retries: 30
volumes:
postgres-data:
dragonfly-data:
redis-ingress-data: