-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcompose.production.yaml
More file actions
98 lines (93 loc) · 2.65 KB
/
Copy pathcompose.production.yaml
File metadata and controls
98 lines (93 loc) · 2.65 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
x-app: &app
image: l4dstats:local
build:
context: .
dockerfile: Dockerfile.production
init: true
restart: unless-stopped
read_only: true
security_opt:
- no-new-privileges:true
cap_drop:
- ALL
stop_grace_period: 10s
tmpfs:
- /tmp:rw,noexec,nosuid,nodev,size=64m
x-environment: &environment
NODE_ENV: production
NODE_OPTIONS: --conditions=production
L4DSTATS_DB: /var/lib/l4dstats/workbench.sqlite
L4DSTATS_UPLOAD_ROOT: /var/lib/l4dstats/uploads
L4DSTATS_ARTIFACT_ROOT: /var/lib/l4dstats
L4DSTATS_GEOMETRY_ROOT: /var/lib/l4dstats/geometry
L4DSTATS_WORKER_HEARTBEAT: /var/lib/l4dstats/worker-heartbeat.json
L4DSTATS_LOCAL_ROOTS: /data/inbox
L4DSTATS_ALLOWED_HOSTS: cedapug.com
L4DSTATS_API_TOKEN: ${L4DSTATS_API_TOKEN:?set L4DSTATS_API_TOKEN}
L4DSTATS_MUTATION_RATE_LIMIT: "120"
L4DSTATS_MUTATION_RATE_WINDOW_MS: "60000"
L4DSTATS_AUTH_FAILURE_LIMIT: "20"
L4DSTATS_AUTH_FAILURE_WINDOW_MS: "300000"
L4DSTATS_SEED_EXAMPLE: "false"
services:
api:
<<: *app
command: ["node", "apps/api/dist/main.js"]
environment: *environment
healthcheck:
test: ["CMD", "curl", "--fail", "http://localhost:8787/health"]
interval: 5s
timeout: 2s
retries: 20
cpus: 1
mem_limit: 1g
pids_limit: 128
volumes:
- workbench-data:/var/lib/l4dstats
- ./data/sprint-1-corpus/extracted:/data/inbox:ro
worker:
<<: *app
command: ["node", "apps/worker/dist/main.js"]
depends_on:
api:
condition: service_healthy
environment:
<<: *environment
L4DSTATS_PSEUDONYM_KEY: ${L4DSTATS_PSEUDONYM_KEY:?set L4DSTATS_PSEUDONYM_KEY}
healthcheck:
test:
- CMD
- node
- -e
- "const s=require('node:fs').statSync(process.env.L4DSTATS_WORKER_HEARTBEAT);if(Date.now()-s.mtimeMs>15000)process.exit(1)"
interval: 5s
timeout: 2s
retries: 3
start_period: 10s
cpus: 2
mem_limit: 6g
pids_limit: 256
volumes:
- workbench-data:/var/lib/l4dstats
- ./data/sprint-1-corpus/extracted:/data/inbox:ro
web:
<<: *app
command: ["node", "apps/web/server.mjs"]
depends_on:
api:
condition: service_healthy
environment:
NODE_ENV: production
L4DSTATS_API_URL: http://api:8787
L4DSTATS_API_TOKEN: ${L4DSTATS_API_TOKEN:?set L4DSTATS_API_TOKEN}
L4DSTATS_WEB_USERNAME: ${L4DSTATS_WEB_USERNAME:-}
L4DSTATS_WEB_PASSWORD: ${L4DSTATS_WEB_PASSWORD:-}
L4DSTATS_WEB_USERS_JSON: ${L4DSTATS_WEB_USERS_JSON:-}
L4DSTATS_REQUIRE_AUTH: "true"
ports:
- "0.0.0.0:5173:5173"
cpus: 1
mem_limit: 512m
pids_limit: 128
volumes:
workbench-data: