84 lines
2.9 KiB
Bash
84 lines
2.9 KiB
Bash
# TJWaterServerBinary 环境变量模板
|
||
# 复制为 .env 后按启用的功能填写;不要提交 .env 或任何真实凭据。
|
||
# 生产配置由部署主机的受控 backend.env 注入,不随镜像或 CI/CD 同步本地 .env。
|
||
# 进程环境变量优先;修改 Compose env_file 后需重新创建容器。
|
||
|
||
# 基础运行
|
||
PROJECT_NAME="TJWater Server"
|
||
ENVIRONMENT="production"
|
||
API_V1_STR="/api/v1"
|
||
NETWORK_NAME="tjwater"
|
||
|
||
# Fernet 格式;用于加密项目数据库 DSN、GeoServer 管理密码等敏感配置。
|
||
# 生成方式:python -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())"
|
||
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_NAME="system_hub"
|
||
METADATA_DB_HOST="localhost"
|
||
METADATA_DB_PORT="5432"
|
||
METADATA_DB_USER="tjwater"
|
||
METADATA_DB_PASSWORD="password"
|
||
METADATA_DB_POOL_SIZE=5
|
||
METADATA_DB_MAX_OVERFLOW=10
|
||
|
||
# 项目数据库连接池、缓存与模板
|
||
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 校验
|
||
# 未启用认证时可留空;生产环境应注入完整公钥和预期 audience。
|
||
KEYCLOAK_PUBLIC_KEY=""
|
||
KEYCLOAK_ALGORITHM="RS256"
|
||
KEYCLOAK_AUDIENCE="account"
|
||
KEYCLOAK_ACCESS_TOKEN_MAX_AGE_SECONDS=900
|
||
|
||
# 浏览器跨域访问(主 API)
|
||
# 必须填写明确来源(协议、域名或 IP、端口),英文逗号分隔;不允许 *。
|
||
CORS_ALLOWED_ORIGINS=http://127.0.0.1:5173,http://localhost:5173,http://127.0.0.1:15173,http://localhost:15173
|
||
|
||
# Bocha 网页搜索(旧版仍保留;未启用时令牌留空)
|
||
BOCHA_API_KEY=""
|
||
BOCHA_WEB_SEARCH_URL="https://api.bochaai.com/v1/web-search"
|
||
BOCHA_WEB_SEARCH_TIMEOUT_SECONDS=30
|
||
|
||
# 天地图地理编码(旧版使用 TIANDITU_GEOCODER_TOKEN)
|
||
TIANDITU_GEOCODER_TOKEN=""
|
||
TIANDITU_GEOCODER_URL="https://api.tianditu.gov.cn/geocoder"
|
||
TIANDITU_GEOCODER_TIMEOUT_SECONDS=30
|