mirror of
https://github.com/CJackHwang/ds2api.git
synced 2026-05-04 08:25:26 +08:00
94 lines
3.6 KiB
Plaintext
94 lines
3.6 KiB
Plaintext
# DS2API environment template (Go runtime)
|
|
# Copy this file to .env and adjust values.
|
|
# Updated: 2026-02
|
|
|
|
# ---------------------------------------------------------------
|
|
# Runtime
|
|
# ---------------------------------------------------------------
|
|
# HTTP listen port (default: 5001)
|
|
PORT=5001
|
|
|
|
# Log level: DEBUG | INFO | WARN | ERROR
|
|
LOG_LEVEL=INFO
|
|
|
|
# Max concurrent inflight requests per account in managed-key mode.
|
|
# Default: 2
|
|
# Recommended client concurrency is calculated dynamically as:
|
|
# account_count * DS2API_ACCOUNT_MAX_INFLIGHT
|
|
# So by default it is account_count * 2.
|
|
# Requests beyond inflight slots enter a waiting queue first.
|
|
# Default queue size equals recommended concurrency, so 429 starts after:
|
|
# account_count * DS2API_ACCOUNT_MAX_INFLIGHT * 2
|
|
# Alias: DS2API_ACCOUNT_CONCURRENCY
|
|
# DS2API_ACCOUNT_MAX_INFLIGHT=2
|
|
|
|
# Optional waiting queue size override for managed-key mode.
|
|
# Default: recommended_concurrency (same as account_count * inflight_limit)
|
|
# Alias: DS2API_ACCOUNT_QUEUE_SIZE
|
|
# DS2API_ACCOUNT_MAX_QUEUE=10
|
|
|
|
# ---------------------------------------------------------------
|
|
# Admin auth
|
|
# ---------------------------------------------------------------
|
|
# Admin key for /admin login and protected admin APIs.
|
|
# Default is "admin" when unset, but setting it explicitly is recommended.
|
|
DS2API_ADMIN_KEY=admin
|
|
|
|
# Optional JWT signing secret for admin token.
|
|
# Defaults to DS2API_ADMIN_KEY when unset.
|
|
# DS2API_JWT_SECRET=change-me
|
|
|
|
# Optional admin JWT validity in hours (default: 24)
|
|
# DS2API_JWT_EXPIRE_HOURS=24
|
|
|
|
# ---------------------------------------------------------------
|
|
# Config source (choose one)
|
|
# ---------------------------------------------------------------
|
|
# Option A: config file path (local/dev recommended)
|
|
# DS2API_CONFIG_PATH=config.json
|
|
|
|
# Option B: JSON string
|
|
# DS2API_CONFIG_JSON={"keys":["your-api-key"],"accounts":[{"email":"user@example.com","password":"xxx","token":""}]}
|
|
|
|
# Option C: Base64 encoded JSON (recommended for Vercel env var)
|
|
# DS2API_CONFIG_JSON=eyJrZXlzIjpbInlvdXItYXBpLWtleSJdLCJhY2NvdW50cyI6W3siZW1haWwiOiJ1c2VyQGV4YW1wbGUuY29tIiwicGFzc3dvcmQiOiJ4eHgiLCJ0b2tlbiI6IiJ9XX0=
|
|
#
|
|
# Generate from local config.json:
|
|
# DS2API_CONFIG_JSON="$(base64 < config.json | tr -d '\n')"
|
|
|
|
# ---------------------------------------------------------------
|
|
# Paths (optional)
|
|
# ---------------------------------------------------------------
|
|
# WASM file used for PoW solving
|
|
# DS2API_WASM_PATH=sha3_wasm_bg.7b9ca65ddd.wasm
|
|
|
|
# Built admin static assets directory
|
|
# DS2API_STATIC_ADMIN_DIR=static/admin
|
|
|
|
# Auto-build WebUI on startup when static/admin is missing.
|
|
# Default: enabled on local/Docker, disabled on Vercel.
|
|
# DS2API_AUTO_BUILD_WEBUI=true
|
|
|
|
# Internal auth secret used by the Vercel hybrid streaming path
|
|
# (Go prepare endpoint <-> Node stream function).
|
|
# Optional: falls back to DS2API_ADMIN_KEY when unset.
|
|
# DS2API_VERCEL_INTERNAL_SECRET=change-me
|
|
|
|
# Stream lease TTL seconds for Vercel hybrid streaming.
|
|
# During this window, the managed account stays occupied until Node calls release.
|
|
# Default: 900 (15 minutes)
|
|
# DS2API_VERCEL_STREAM_LEASE_TTL_SECONDS=900
|
|
|
|
# ---------------------------------------------------------------
|
|
# Vercel sync integration (optional)
|
|
# ---------------------------------------------------------------
|
|
# VERCEL_TOKEN=your-vercel-token
|
|
# VERCEL_PROJECT_ID=prj_xxxxxxxxxxxx
|
|
# VERCEL_TEAM_ID=team_xxxxxxxxxxxx
|
|
|
|
# Optional: Vercel deployment protection bypass secret.
|
|
# If deployment protection is enabled, DS2API will use this value as
|
|
# x-vercel-protection-bypass for internal Node->Go calls on Vercel.
|
|
# You can also use VERCEL_AUTOMATION_BYPASS_SECRET directly.
|
|
# DS2API_VERCEL_PROTECTION_BYPASS=your-bypass-secret
|