-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.env.example
More file actions
110 lines (97 loc) · 3.79 KB
/
Copy path.env.example
File metadata and controls
110 lines (97 loc) · 3.79 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
# ===== PostgreSQL =====
POSTGRES_USER=llmxy
POSTGRES_PASSWORD=llmxy_pass
POSTGRES_DB=llmxy
POSTGRES_HOST=postgres
POSTGRES_PORT=5432
# ===== Redis =====
REDIS_HOST=redis
REDIS_PORT=6379
REDIS_DB=0
# ===== API =====
API_HOST=0.0.0.0
API_PORT=8000
API_PUBLIC_URL=http://localhost:8000
WEBSITE_PUBLIC_URL=http://localhost:3000
JWT_SECRET=change-me-to-a-long-random-string
JWT_ALG=HS256
JWT_EXPIRE_MINUTES=1440
CORS_ORIGINS=http://localhost:3000,http://localhost:3001
# ===== Initial admin seed =====
SEED_ADMIN_EMAIL=admin@llmxy.local
SEED_ADMIN_PASSWORD=admin123456
# ===== Upstream HTTP =====
UPSTREAM_TIMEOUT=120
IMAGE_RELAY_TIMEOUT=120
# Azure OpenAI default api-version
AZURE_OPENAI_API_VERSION=2024-10-21
AZURE_OPENAI_RESPONSES_API_VERSION=preview
AZURE_OPENAI_IMAGE_API_VERSION=2025-04-01-preview
# Encryption key for upstream API keys; empty = plaintext storage (dev only)
ENCRYPTION_KEY=
# Default per-user RPM; plans.rate_limit_jsonb.rpm can override
DEFAULT_RATE_LIMIT_RPM=600
# ===== Payments (stub placeholders) =====
ALIPAY_APP_ID=
ALIPAY_PRIVATE_KEY=
ALIPAY_PUBLIC_KEY=
WECHAT_APP_ID=
WECHAT_MCH_ID=
WECHAT_API_KEY=
STRIPE_SECRET_KEY=
STRIPE_WEBHOOK_SECRET=
# ===== OAuth (stub placeholders) =====
# Register these callback URLs with the providers by default:
# Google: http://localhost:8000/api/v1/auth/oauth/google/callback
# GitHub: http://localhost:8000/api/v1/auth/oauth/github/callback
# If the public callback origin differs from API_PUBLIC_URL, set OAUTH_CALLBACK_BASE_URL.
OAUTH_CALLBACK_BASE_URL=
GITHUB_OAUTH_CLIENT_ID=
GITHUB_OAUTH_CLIENT_SECRET=
GOOGLE_OAUTH_CLIENT_ID=
GOOGLE_OAUTH_CLIENT_SECRET=
# ===== Frontends =====
NEXT_PUBLIC_API_BASE_URL=http://localhost:8000
WEBSITE_PORT=3000
ADMIN_PORT=3001
# ===== Envoy front-proxy (per-instance config managed by admin UI) =====
# Absolute path to envoy binary inside the api container/host.
ENVOY_BIN=/usr/local/bin/envoy
# Where api writes generated bootstrap/cds/rds/lds YAML per instance.
ENVOY_CONFIG_ROOT=/var/llmxy/envoy
# Where envoy stdout/stderr is captured per instance.
ENVOY_LOG_ROOT=/var/llmxy/envoy-logs
# Envoy ext_proc / translator callback. Same uvicorn as the public API.
INTERNAL_API_HOST=127.0.0.1
INTERNAL_API_PORT=8000
# Envoy gRPC access-log sink port (api serves gRPC here).
ALS_GRPC_PORT=8002
# Envoy gRPC external processing server port (api serves gRPC here).
EXT_PROC_GRPC_PORT=8004
# ext_proc max buffered request body (bytes). Reject requests larger than this.
ENVOY_EXT_PROC_MAX_BYTES=1048576
# ext_proc gRPC call timeout. Must exceed p99 of route selection.
ENVOY_EXT_PROC_TIMEOUT=15s
# Background health monitor cadence + failure threshold before flipping to error.
# 0 disables the monitor entirely.
ENVOY_HEALTH_INTERVAL_SECONDS=30
ENVOY_HEALTH_FAIL_THRESHOLD=3
# Local-mode envoys live as subprocess.Popen in a single api replica's memory.
# Set false in multi-replica deployments to force remote-only mode (xDS push
# is broadcast via redis pub/sub, so remote mode is multi-replica safe).
ENVOY_LOCAL_MODE_ENABLED=true
# Optional GeoIP database override for geo routing. Empty uses bundled DB-IP Lite if available.
GEOIP_DB_PATH=
# ===== Remote-envoy control plane (only used if you attach remote envoys) =====
# xDS ADS gRPC port — remote envoys connect here for CDS/RDS/LDS.
XDS_GRPC_PORT=8003
# Shared static token. Remote envoy bootstrap puts it in gRPC metadata as
# `x-llmxy-token`. Empty disables the check (dev only — node_id match still
# applies). Generate with e.g. `openssl rand -hex 32`.
XDS_AUTH_TOKEN=
# Host that the remote envoy bootstrap should dial for the control plane.
CONTROL_PLANE_PUBLIC_HOST=127.0.0.1
# Envoy container image used in the remote deploy manifests (k8s + docker).
# Override to a mirror when docker.io is unreachable, e.g.
# docker.m.daocloud.io/envoyproxy/envoy:v1.37.2
ENVOY_IMAGE=envoyproxy/envoy:v1.37.2