# 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 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=VoitransDev # ── 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 注册表 app_registry 的 app_name/region 一致)── # api 的应用服务配置托管、echomeet 的会议记录服务编排都按 (APP_NAME, APP_REGION) 作用域解析; # 不配则落到「全局默认」作用域('',0)——编排的全局默认层仍然生效,但按应用/区域的细分配置不生效。 # APP_REGION 用区域短代码:cn/us/ea/sea/...(见 comm/region.go)。 # 注:按应用作用域读配置的接口(渠道分发 user_getchannelapp(s)、user_getagents_v2、 # user_getthirdsvcs_v2)走 comm.AppName()——APP_NAME 留空时回退下面的 ANALYZE_APP_NAME, # 两者填一个即可;但 api 的「服务配置托管」只认 APP_NAME,要用那个功能就必须填这里。 APP_NAME= APP_REGION= # ── 统计上报(须与 console 注册表中的应用名/区域一致)── ANALYZE_APP_NAME=starpivot-app-dev ANALYZE_REGION=1 # ── 业务杂项 ── LOG_DEBUG=true GATEWAY_TOKEN_KEY=dev-change-me # 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 顶部,不在此文件填。