# 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 # ============================================ # 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