111 lines
3.9 KiB
Bash
111 lines
3.9 KiB
Bash
# TJWater Server 环境变量配置模板
|
|
# 复制此文件为 .env 并填写实际值
|
|
# CI/CD: 生产环境变量由 Dev 主机的受控 backend.env 注入,不要将完整 .env 保存为 Gitea 仓库密钥。
|
|
ENVIRONMENT="production"
|
|
NETWORK_NAME="tjwater"
|
|
# ============================================
|
|
# 敏感配置加密 (必填)
|
|
# ============================================
|
|
|
|
# Fernet 格式,生产环境必须替换为独立密钥
|
|
# 生成方式: python -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())"
|
|
# 用于项目数据库 DSN、GeoServer 管理密码等敏感配置
|
|
DATABASE_ENCRYPTION_KEY="replace-with-generated-fernet-key"
|
|
|
|
# ============================================
|
|
# 数据库配置 (PostgreSQL)
|
|
# ============================================
|
|
DB_NAME="tjwater"
|
|
DB_HOST="localhost"
|
|
DB_PORT="5432"
|
|
DB_USER="tjwater"
|
|
DB_PASSWORD="password"
|
|
|
|
# ============================================
|
|
# 数据库配置 (TimescaleDB)
|
|
# ============================================
|
|
TIMESCALEDB_DB_NAME="tjwater"
|
|
TIMESCALEDB_DB_HOST="localhost"
|
|
TIMESCALEDB_DB_PORT="5433"
|
|
TIMESCALEDB_DB_USER="tjwater"
|
|
TIMESCALEDB_DB_PASSWORD="password"
|
|
|
|
# ============================================
|
|
# 元数据数据库配置 (Metadata DB)
|
|
# ============================================
|
|
METADATA_DB_NAME="system_hub"
|
|
METADATA_DB_HOST="localhost"
|
|
METADATA_DB_PORT="5432"
|
|
METADATA_DB_USER="tjwater"
|
|
METADATA_DB_PASSWORD="password"
|
|
|
|
# Per-project synchronous connection pools
|
|
PROJECT_PG_CACHE_SIZE="16"
|
|
PROJECT_TS_CACHE_SIZE="16"
|
|
PROJECT_PG_POOL_MIN_SIZE="0"
|
|
PROJECT_PG_POOL_SIZE="4"
|
|
PROJECT_PG_MAX_OVERFLOW="2"
|
|
PROJECT_TS_POOL_MIN_SIZE="0"
|
|
PROJECT_TS_POOL_MAX_SIZE="4"
|
|
WNDB_SCHEMA_TEMPLATE_DB_NAME="tjwater_v2_schema_template"
|
|
TIMESCALEDB_SCHEMA_TEMPLATE_DB_NAME="tjwater_v2_timescale_template"
|
|
WNDB_TEMP_DB_MAX_COUNT="8"
|
|
|
|
# ============================================
|
|
# GeoServer 项目供应
|
|
# ============================================
|
|
GEOSERVER_URL="http://localhost:8080/geoserver"
|
|
GEOSERVER_USERNAME="admin"
|
|
GEOSERVER_PASSWORD="password"
|
|
# 留空时分别复用 DB_HOST / DB_PORT / DB_USER / DB_PASSWORD。
|
|
# GeoServer 在容器内运行时,GEOSERVER_DB_HOST 通常应填写数据库服务名。
|
|
GEOSERVER_DB_HOST=""
|
|
GEOSERVER_DB_PORT=""
|
|
GEOSERVER_DB_USER=""
|
|
GEOSERVER_DB_PASSWORD=""
|
|
# 30 天客户端缓存,单位为秒。
|
|
GEOSERVER_CLIENT_CACHE_SECONDS="2592000"
|
|
|
|
# ============================================
|
|
# Keycloak JWT (可选)
|
|
# ============================================
|
|
KEYCLOAK_PUBLIC_KEY="-----BEGIN PUBLIC KEY-----\n...\n-----END PUBLIC KEY-----"
|
|
KEYCLOAK_ALGORITHM=RS256
|
|
KEYCLOAK_AUDIENCE="account"
|
|
KEYCLOAK_ACCESS_TOKEN_MAX_AGE_SECONDS=900
|
|
|
|
# ============================================
|
|
# 工作台事件同步
|
|
# ============================================
|
|
# 认证接口必须使用明确来源,逗号分隔;不要配置为 *。
|
|
CORS_ALLOWED_ORIGINS="http://127.0.0.1:5173,http://localhost:5173"
|
|
WORKBENCH_EVENTS_ENABLED=true
|
|
WORKBENCH_EVENT_RETENTION_DAYS=7
|
|
|
|
# 每个项目启动一个 worker 实例。长期运行优先使用 OAuth 客户端凭据。
|
|
OPERATIONAL_WORKER_PROJECT_ID=""
|
|
OPERATIONAL_WORKER_SERVER_URL="http://127.0.0.1:8000"
|
|
OPERATIONAL_WORKER_AGENT_URL="http://127.0.0.1:8787"
|
|
OPERATIONAL_WORKER_RECONCILE_SECONDS=30
|
|
OPERATIONAL_WORKER_MAX_CONCURRENCY=4
|
|
OPERATIONAL_WORKER_TOKEN_URL=""
|
|
OPERATIONAL_WORKER_CLIENT_ID=""
|
|
OPERATIONAL_WORKER_CLIENT_SECRET=""
|
|
OPERATIONAL_WORKER_TOKEN_REFRESH_SECONDS=300
|
|
OPERATIONAL_DATA_DELEGATION_BEARER=""
|
|
|
|
|
|
# ============================================
|
|
# Bocha Web Search API
|
|
# ============================================
|
|
BOCHA_API_KEY="sk-your-bocha-api-key"
|
|
BOCHA_WEB_SEARCH_URL="https://api.bochaai.com/v1/web-search"
|
|
BOCHA_WEB_SEARCH_TIMEOUT_SECONDS=30
|
|
|
|
# ============================================
|
|
# Tianditu Geocoding API
|
|
# ============================================
|
|
TIANDITU_GEOCODER_TOKEN="your-tianditu-geocoder-token"
|
|
TIANDITU_GEOCODER_URL="https://api.tianditu.gov.cn/geocoder"
|
|
TIANDITU_GEOCODER_TIMEOUT_SECONDS=30
|