eigent/server/.env.example
4pmtong 379185bcf9
Some checks failed
CodeQL Advanced / Analyze (actions) (push) Has been cancelled
CodeQL Advanced / Analyze (javascript-typescript) (push) Has been cancelled
CodeQL Advanced / Analyze (python) (push) Has been cancelled
Pre-commit / pre-commit (push) Has been cancelled
Test / Run Web + Local Brain Smoke (push) Has been cancelled
Test / Run Frontend Guardrails (push) Has been cancelled
Test / Run Browser Preview Electron Test (push) Has been cancelled
Test / Run Python Tests (push) Has been cancelled
fix(triggers): await authoritative outcomes for running executions
After durable renderer-loss reconciliation is wired, stop treating elapsed Running age as a failure. Keep pending acknowledgement expiry and delayed-receipt diagnostics, without changing terminal first-writer or token-enrichment guarantees.
2026-09-21 23:20:44 +08:00

90 lines
4.6 KiB
Text

# Copy this file to server/.env before running ./start_server.sh.
# The repository-root .env.development file is only for Vite/Electron and is
# intentionally not loaded by the standalone server.
debug=false
url_prefix=/api
secret_key=postgres
# Optional but recommended: set a distinct issuer per deployed environment
# (for example,https://dev.eigent.ai).
# If omitted, the server derives a non-secret environment fingerprint from
# SERVER_URL/VITE_* URL settings and database_url.
# TOKEN_ISSUER=https://dev.eigent.ai
TOKEN_AUDIENCE=eigent-api
# Chat Share Secret Key
CHAT_SHARE_SECRET_KEY=put-your-secret-key-here
CHAT_SHARE_SALT=put-your-encode-salt-here
# Remote control public web origin. Set this to the HTTPS site users open
# from a phone or another computer, not the local desktop server.
# REMOTE_CONTROL_WEB_ORIGIN=https://www.eigent.ai
# If REMOTE_CONTROL_WEB_ORIGIN and SERVER_URL are different origins, list the
# web origins explicitly for browser API/WebSocket access.
# CORS_ALLOW_ORIGINS=https://www.eigent.ai
# Optional stricter per-WebSocket allowlists. If omitted, remote control derives
# from REMOTE_CONTROL_WEB_ORIGIN / CORS_ALLOW_ORIGINS and local dev origins.
# REMOTE_CONTROL_EVENTS_ALLOWED_ORIGINS=https://www.eigent.ai
# REMOTE_CONTROL_BRIDGE_ALLOWED_ORIGINS=https://www.eigent.ai
# Local dev browser origins accepted by remote-control WebSockets when explicit
# allowlists are not set. Comma-separated ports.
REMOTE_CONTROL_LOCAL_DEV_PORTS=3001,5173,5174
# How often a bridge WebSocket re-checks token blacklist state during pings.
REMOTE_CONTROL_BRIDGE_BLACKLIST_CHECK_INTERVAL_SECONDS=60
# Remote-control rate limits. These are per user/session/key limits, not global
# concurrency limits. Raise these for trusted beta traffic; use Traefik/WAF/CDN
# for global per-IP protection when exposing cloud relay publicly.
REMOTE_CONTROL_SESSION_CREATE_LIMIT=120
REMOTE_CONTROL_SESSION_CREATE_WINDOW_SECONDS=3600
REMOTE_CONTROL_COMMAND_BURST_LIMIT=10
REMOTE_CONTROL_COMMAND_BURST_WINDOW_SECONDS=1
REMOTE_CONTROL_COMMAND_MINUTE_LIMIT=120
REMOTE_CONTROL_COMMAND_MINUTE_WINDOW_SECONDS=60
REMOTE_CONTROL_STEPS_LIMIT=120
REMOTE_CONTROL_STEPS_WINDOW_SECONDS=60
REMOTE_CONTROL_WS_RECONNECT_LIMIT=30
REMOTE_CONTROL_WS_RECONNECT_WINDOW_SECONDS=60
# Comma-separated reverse proxy hosts/CIDRs whose X-Forwarded-For / X-Real-IP
# headers may be trusted for remote-control WS rate limits and audit logs.
# Set this to your Traefik / load balancer private IP or CIDR in production.
# Dokploy example: REMOTE_CONTROL_TRUSTED_PROXY_HOSTS=172.16.0.0/12
REMOTE_CONTROL_TRUSTED_PROXY_HOSTS=127.0.0.1,::1
# Only set true for local/dev diagnostics; it intentionally allows wildcard CORS/WS origins.
REMOTE_CONTROL_ALLOW_UNSAFE_ORIGINS=false
# Configuration when running the server directly on the host. Docker Compose
# overrides these values with its service-network addresses.
database_url=postgresql://postgres:123456@localhost:5432/eigent
# PostgreSQL safety rails. Defaults are active even when omitted. These bound
# connection, statement and lock waits; they do not limit agent task duration.
DB_CONNECT_TIMEOUT_SECONDS=10
DB_LOCK_TIMEOUT_MS=5000
DB_STATEMENT_TIMEOUT_MS=120000
DB_IDLE_IN_TRANSACTION_TIMEOUT_MS=60000
# Pool sizing is per API process.
DB_POOL_SIZE=10
DB_MAX_OVERFLOW=10
DB_POOL_TIMEOUT=10
DB_POOL_RECYCLE=300
redis_url=redis://localhost:6379/0
SESSION_REDIS_URL=redis://localhost:6379/1
# Keep local Celery traffic isolated from other Eigent/Docker workers that may
# already use Redis DB 0. Docker Compose supplies its own explicit URLs.
celery_broker_url=redis://localhost:6379/2
celery_result_url=redis://localhost:6379/3
# Trigger Schedule Poller Configuration
# ENABLE_TRIGGER_SCHEDULE_POLLER_TASK: Enable/disable scheduled trigger polling
ENABLE_TRIGGER_SCHEDULE_POLLER_TASK=true
# TRIGGER_SCHEDULE_POLLER_INTERVAL: Polling interval in minutes
TRIGGER_SCHEDULE_POLLER_INTERVAL=1
# TRIGGER_SCHEDULE_POLLER_BATCH_SIZE: Number of triggers to fetch per poll
TRIGGER_SCHEDULE_POLLER_BATCH_SIZE=100
# TRIGGER_SCHEDULE_MAX_DISPATCH_PER_TICK: Max triggers to dispatch per tick (0 = unlimited)
TRIGGER_SCHEDULE_MAX_DISPATCH_PER_TICK=0
# ENABLE_EXECUTION_TIMEOUT_CHECKER: Enable/disable execution timeout checking
ENABLE_EXECUTION_TIMEOUT_CHECKER=true
# EXECUTION_TIMEOUT_CHECKER_INTERVAL: check_execution_timeouts interval in minutes
EXECUTION_TIMEOUT_CHECKER_INTERVAL=1
# EXECUTION_PENDING_TIMEOUT_SECONDS: Timeout for pending executions (default 60 seconds)
EXECUTION_PENDING_TIMEOUT_SECONDS=60
# EXECUTION_RUNNING_TIMEOUT_SECONDS: Diagnostic threshold for missing terminal receipts (does not fail running tasks)
EXECUTION_RUNNING_TIMEOUT_SECONDS=600