You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
90 lines
5.6 KiB
90 lines
5.6 KiB
# app · dev 开发环境(容器运行时配置)
|
|
# 仓库地址 REGISTRY 由 dev-deploy.sh 写死注入,这里不填。
|
|
# 依赖的 etcd/mysql/redis/nats 在 DOCKER_NETWORK 网络内,用容器名连接。
|
|
|
|
# ── 镜像 / 容器 ──
|
|
# TAG = 当前运行的镜像版本。dev 固定 dev-latest;prod 部署成功后由 prod-deploy.sh 自动写回为本次版本号(如 0.2.1),
|
|
# 所以服务器上 cat .env 的这一行就是当前实际运行版本,便于排查是否环境/版本问题。
|
|
TAG=dev-latest
|
|
# CONTAINER_NAME = 容器名,按「应用」区分,同一台机可并存多个应用(voitrans-a11 / ym-a11 …)。
|
|
# 生产由 prod-deploy.sh 按所选应用注入并写回本行(<应用>-a11),一般不用手填;
|
|
# 留空/缺失则回落到 compose 里的默认 starpivot-app(dev 单份部署就是走默认)。
|
|
CONTAINER_NAME=starpivot-app
|
|
PLATFORM=linux/amd64
|
|
DOCKER_NETWORK=1panel-network
|
|
|
|
# ── 集群 / 服务发现 ──
|
|
CLUSTER_TAG=starpivot-app-dev # 集群标签:隔离 dev 与生产,避免互相发现
|
|
ETCD_SERVERS=etcd:2379 # ETCD 容器名:端口
|
|
|
|
# ── 存储(容器名连接;密码特殊字符在 DSN 里需 URL 编码 & → %26)──
|
|
DB_ADMIN_DSN=root:li13451234@tcp(mysql:3306)/voitrans?charset=utf8mb4&parseTime=True&loc=Local
|
|
DB_DEVICE_DSN=postgresql://postgres:postgres@postgres:5432/postgres?sslmode=disable
|
|
DB_DEVICE_READ_DSN=
|
|
REDIS_ADDR=redis:6379
|
|
REDIS_PASSWORD=li13451234
|
|
REDIS_DB=1
|
|
REDIS_KEY_PREFIX=EAIMAR
|
|
|
|
# ── NATS(统计快照推送到 console,须与 console 端一致)──
|
|
NATS_URL=nats://nats:4222
|
|
|
|
# ── 业务配置字段解密(须与 console 的 FIELD_ENCRYPT_KEY 完全相同)──
|
|
# console 后台把邮件/短信/支付等密钥以 AES-256-GCM 密文写进「应用业务库」;本服务启动时用这把 key 解密。
|
|
# ⚠️ 留空或与 console 不一致时,解密会「静默失败并把密文当明文用」——例如把密文当 Resend API Key
|
|
# 发出去,表现为 401 "API key is invalid",而后台却显示配置已填好,极难排查。
|
|
FIELD_ENCRYPT_KEY=
|
|
|
|
# ── 身份证号指纹盐(实名认证功能用;只在业务后端需要,console 不用)──
|
|
# 实名认证**不落库身份证号全文**,只存掩码 + 加盐 SHA-256 指纹。指纹用于后台排查
|
|
# 「同一张证件绑了几个账号」。
|
|
# ⚠️ 必须加盐:身份证号空间有限(前 6 位地区码 + 8 位生日高度可枚举),裸 SHA-256
|
|
# 可被彻底反查,等同明文存储。留空时代码**不会退化成裸哈希**,而是不写指纹——
|
|
# 功能仍可用,只是后台查不了「同证件多账号」。
|
|
# ⚠️ 一旦启用就不要再改:换了盐,之前存的指纹全部对不上,同证件查重从此断档。
|
|
ID_HASH_SALT=
|
|
|
|
# ── 部署身份(同时也是统计上报的维度)──
|
|
# ⚠️ 必须与 console 注册表 app_registry 的 **name 与 app_name 两列同时**一致(大小写敏感),
|
|
# 注册应用时就把这两列填成同一个值。两列不同值时,无论填哪个都只能满足一半:
|
|
# · 填 app_name → 按应用作用域的配置能读到,但统计快照会被 console 拒收(见下)
|
|
# · 填 name → 统计能落库,但按应用作用域的配置全部退化成「全局默认」
|
|
# 被拒收时只在 console 日志留一行 `console.stat: 快照应用未在 console 注册,未落库`,
|
|
# 数据滞留在本地 Redis,后台看板恒为 0 且不报任何错——排查「看板没数据」先看这行日志。
|
|
# 这一组就是本部署的唯一身份声明,所有按应用/区域作用域解析的功能都用它(comm.AppName/AppRegion):
|
|
# · 统计上报 → stats_global_day.app_id / region
|
|
# · api 的应用服务配置托管(app_service_config)
|
|
# · echomeet 的会议记录服务编排(echomeet_orch)
|
|
# · 按应用下发的接口:渠道分发 user_getchannelapp(s)、user_getagents_v2、user_getthirdsvcs_v2
|
|
# 留空则一律落到「全局默认」作用域('',0):全局默认层仍生效,但按应用/区域的细分配置不生效。
|
|
# ANALYZE_REGION 填 pb.Region 枚举整数(1=中国 2=美国 …,见 comm/region.go);查注册表时
|
|
# 由 comm.AppRegion() 归一成后台的两档(1→cn,其余→hw),与后台的「国内/海外」选项对齐。
|
|
# ⚠️ 这个值必须与 console 应用注册表 app_registry 的 name 与 app_name **两列同时**一致
|
|
# (大小写敏感):配置作用域认 app_name、统计落库认 name,只对上一半必然坏掉另一半,
|
|
# 且两边都不报错——只表现为「后台配了但客户端读不到」或「看板恒为 0」。
|
|
ANALYZE_APP_NAME=EAIMAR
|
|
ANALYZE_REGION=1
|
|
|
|
# ── 业务杂项 ──
|
|
LOG_DEBUG=true
|
|
GATEWAY_TOKEN_KEY=dev-change-me
|
|
# MCP 会话令牌的签名密钥(user 模块签发、mcp 服务校验,两边同值)。
|
|
# ⚠️ 必须与 GATEWAY_TOKEN_KEY **不同**:这个令牌要经过百炼(第三方)之手,
|
|
# 用能开全站的那把钥匙去签,等于又造了一把万能钥匙。留空则 EMAI 里
|
|
# 查会议纪要/待办的 MCP 工具全部不可用。
|
|
MCP_TOKEN_KEY=dev-change-me-mcp
|
|
# v2 配置接口响应加密 AES key(16/24/32 字节),须与 Flutter ApiCrypto._key 完全一致;留空=不加密
|
|
GATEWAY_ENCRYPT_KEY=
|
|
API_ADMIN_ACCOUNT=admin
|
|
API_ADMIN_PASSWORD=123
|
|
API_SITE_NAME=Voitrans(开发)
|
|
API_CURRENCY_TYPE=0
|
|
MCP_ADDR=http://localhost:7300
|
|
|
|
# ── 可选 ──
|
|
AZURE_TRANSLATE_KEY=
|
|
TIMER_DOUBAO_APIKEY=
|
|
TIMER_DOUBAO_BOTID=
|
|
TIMER_DOUBAO_ROLE=
|
|
|
|
# 部署目标(DEV_HOST/USER/KEY/DIR)与仓库凭据已写死在 dev-deploy.sh 顶部,不在此文件填。
|
|
|