Repository navigation
Expand file tree
/
Copy pathcompose.yaml
More file actions
80 lines (79 loc) · 3.75 KB
/
Copy pathcompose.yaml
File metadata and controls
80 lines (79 loc) · 3.75 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
name: relayapi
services:
relayapi:
build:
context: .
dockerfile: Dockerfile
restart: unless-stopped
ports:
- "${RELAYAPI_PORT:-6722}:6722"
extra_hosts:
- "host.docker.internal:host-gateway"
environment:
TZ: ${TZ:-Asia/Shanghai}
HOST: 0.0.0.0
PORT: 6722
DATA_DIR: /app/data
INSTALL_TRACKER_HOST: 127.0.0.1
INSTALL_TRACKER_PORT: 6723
INSTALL_TRACKER_DATA_DIR: /app/data/install-tracker
INSTALL_TRACKER_TIME_ZONE: ${INSTALL_TRACKER_TIME_ZONE:-Asia/Shanghai}
INSTALL_REPORT_TRUST_PRIVATE_PROXY: ${INSTALL_REPORT_TRUST_PRIVATE_PROXY:-true}
INSTALL_TRACKER_TRUST_PROXY: ${INSTALL_TRACKER_TRUST_PROXY:-true}
DETECTOR_API_KEYS: ${DETECTOR_API_KEYS:-}
HISTORY_ENCRYPTION_KEY: ${HISTORY_ENCRYPTION_KEY:-VaHJ60Zvd+szpeL+fHCDHKcuml3ha7NtBJ750ukG4T8=}
SQLITE_PATH: ${SQLITE_PATH:-}
WEB_SESSION_SECRET: ${WEB_SESSION_SECRET:-}
ATTACHMENT_ORPHAN_RETENTION_HOURS: ${ATTACHMENT_ORPHAN_RETENTION_HOURS:-24}
ATTACHMENT_AUTO_PRUNE_ORPHANS: ${ATTACHMENT_AUTO_PRUNE_ORPHANS:-false}
DETECTION_MAX_CONCURRENCY: ${DETECTION_MAX_CONCURRENCY:-2}
DETECTION_SEED_SECRET: ${DETECTION_SEED_SECRET:-}
ATTACHMENT_FALLBACK_MODELS: ${ATTACHMENT_FALLBACK_MODELS:-}
ATTACHMENT_FALLBACK_PROTOCOLS: ${ATTACHMENT_FALLBACK_PROTOCOLS:-}
ATTACHMENT_FALLBACK_ATTEMPTS: ${ATTACHMENT_FALLBACK_ATTEMPTS:-3}
PDF_IMAGE_BACKEND: ${PDF_IMAGE_BACKEND:-graphicsmagick}
PDF_PREVIEW_MAX_PAGES: ${PDF_PREVIEW_MAX_PAGES:-4}
PDF_PREVIEW_TIMEOUT_MS: ${PDF_PREVIEW_TIMEOUT_MS:-60000}
TURNSTILE_SECRET_KEY: ${TURNSTILE_SECRET_KEY:-}
TURNSTILE_ALLOWED_HOSTNAMES: ${TURNSTILE_ALLOWED_HOSTNAMES:-localhost,127.0.0.1}
TURNSTILE_RATE_LIMIT_MAX: ${TURNSTILE_RATE_LIMIT_MAX:-20}
TURNSTILE_MAX_CONCURRENCY: ${TURNSTILE_MAX_CONCURRENCY:-4}
ALLOW_PUBLIC_PROBE_WITHOUT_TURNSTILE: ${ALLOW_PUBLIC_PROBE_WITHOUT_TURNSTILE:-true}
ALLOW_PUBLIC_WEB_WITHOUT_TURNSTILE: ${ALLOW_PUBLIC_WEB_WITHOUT_TURNSTILE:-true}
ALLOW_LAN_WEB_WITHOUT_TURNSTILE: ${ALLOW_LAN_WEB_WITHOUT_TURNSTILE:-true}
ALLOW_PRIVATE_UPSTREAMS: ${ALLOW_PRIVATE_UPSTREAMS:-false}
MAX_REQUEST_BODY_BYTES: ${MAX_REQUEST_BODY_BYTES:-2097152}
INBOUND_REQUEST_TIMEOUT_MS: ${INBOUND_REQUEST_TIMEOUT_MS:-30000}
SERVER_MAX_CONNECTIONS: ${SERVER_MAX_CONNECTIONS:-256}
UPSTREAM_TIMEOUT_MS: ${UPSTREAM_TIMEOUT_MS:-120000}
MAX_UPSTREAM_RESPONSE_BYTES: ${MAX_UPSTREAM_RESPONSE_BYTES:-16777216}
LIVE_KNOWLEDGE_TTL_MS: ${LIVE_KNOWLEDGE_TTL_MS:-900000}
LIVE_KNOWLEDGE_MAX_RESPONSE_BYTES: ${LIVE_KNOWLEDGE_MAX_RESPONSE_BYTES:-2097152}
LIVE_KNOWLEDGE_TIME_ZONE: ${LIVE_KNOWLEDGE_TIME_ZONE:-Asia/Shanghai}
PROBE_MAX_CONCURRENCY: ${PROBE_MAX_CONCURRENCY:-8}
PROBE_RATE_LIMIT_WINDOW_MS: ${PROBE_RATE_LIMIT_WINDOW_MS:-60000}
PROBE_RATE_LIMIT_MAX: ${PROBE_RATE_LIMIT_MAX:-60}
LOG_RETENTION_DAYS: ${LOG_RETENTION_DAYS:-7}
MAX_LOG_ENTRY_BYTES: ${MAX_LOG_ENTRY_BYTES:-262144}
MAX_LOG_FILE_BYTES: ${MAX_LOG_FILE_BYTES:-52428800}
TRUST_PROXY: ${TRUST_PROXY:-false}
TRUSTED_PROXY_ADDRESSES: ${TRUSTED_PROXY_ADDRESSES:-127.0.0.1,::1}
TRUSTED_WEB_PROXY_TOKEN: ${TRUSTED_WEB_PROXY_TOKEN:-kk-public-web-via-loopback}
volumes:
- ${RELAYAPI_DATA_DIR:-./data}:/app/data
healthcheck:
test:
- CMD
- node
- -e
- >-
Promise.all([
fetch('http://127.0.0.1:6722/api/v1/health'),
fetch('http://127.0.0.1:6722/api/v1/installations/stats')
])
.then((responses) => process.exit(responses.every((response) => response.ok) ? 0 : 1))
.catch(() => process.exit(1))
interval: 15s
timeout: 5s
retries: 5
start_period: 20s