cf19241544
- 后台审核页删除「发行入口」输入框与前端 HTTPS 校验,审核请求只提交结论与公开修订号
- api-server 新增 GENARRATIVE_GAME_DISTRIBUTION_RELEASE_ENTRY_TEMPLATE 模板配置,审核通过时读版本取 gameId 并派生该游戏独立来源地址
- 模板缺 {gameId}、生产未配置模板、gameId 非主机安全字符或派生结果非法时审核通过失败关闭,非生产未配置时回落本地回环发行网关
- 同步更新发行来源 nginx 模板与说明、两份 api-server 环境变量样例、平台与运维主规范、发行里程碑实施计划和决策记录
- 真实栈 e2e 脚本不再传 entryUrl,并断言审核结果里的入口为服务端派生值
78 lines
4.0 KiB
Bash
78 lines
4.0 KiB
Bash
# 复制为 deploy/container/api-server.env 后填入本机或预发值。
|
||
# 该文件只用于容器隔离方案,不参与 systemd/Jenkins 生产部署。
|
||
# 不要在这里写真实 token 后提交 Git。
|
||
|
||
GENARRATIVE_ENV=container
|
||
GENARRATIVE_API_HOST=0.0.0.0
|
||
GENARRATIVE_API_PORT=8082
|
||
# 官网客户端下载与客户端埋点共用部署渠道;修改后重启 API Server。
|
||
# dev 对应 https://dev.genarrative.world;container + dev 额外允许 loopback 地址及可变映射端口。
|
||
# release 对应 https://www.genarrative.world,且不接受 loopback 地址;其它渠道不接收埋点。
|
||
GENARRATIVE_CLIENT_DOWNLOAD_CHANNEL=dev
|
||
GENARRATIVE_API_LOG=info,tower_http=info
|
||
GENARRATIVE_API_LISTEN_BACKLOG=1024
|
||
GENARRATIVE_API_WORKER_THREADS=4
|
||
# 容器 smoke 可临时设 all;压测或预发按 api / external-generation-worker 拆进程。
|
||
GENARRATIVE_PROCESS_ROLE=api
|
||
# 默认 queue 进入 external_generation_job;本地/小流量同步排查可显式设 inline。
|
||
GENARRATIVE_EXTERNAL_GENERATION_MODE=queue
|
||
GENARRATIVE_EXTERNAL_GENERATION_WORKER_ID=
|
||
GENARRATIVE_EXTERNAL_GENERATION_WORKER_CONCURRENCY=2
|
||
GENARRATIVE_EXTERNAL_GENERATION_WORKER_POLL_INTERVAL_MS=2000
|
||
GENARRATIVE_EXTERNAL_GENERATION_WORKER_LEASE_SECONDS=600
|
||
GENARRATIVE_EXTERNAL_GENERATION_WORKER_JOB_TIMEOUT_SECONDS=900
|
||
GENARRATIVE_EXTERNAL_GENERATION_WORKER_LONG_JOB_TIMEOUT_SECONDS=1800
|
||
GENARRATIVE_API_MAX_CONCURRENT_REQUESTS=512
|
||
GENARRATIVE_API_ADMIN_MAX_CONCURRENT_REQUESTS=16
|
||
GENARRATIVE_TRACKING_OUTBOX_ENABLED=true
|
||
GENARRATIVE_TRACKING_OUTBOX_DIR=/var/lib/genarrative/tracking-outbox
|
||
GENARRATIVE_TRACKING_OUTBOX_BATCH_SIZE=500
|
||
GENARRATIVE_TRACKING_OUTBOX_FLUSH_INTERVAL_MS=1000
|
||
GENARRATIVE_TRACKING_OUTBOX_MAX_BYTES=268435456
|
||
GENARRATIVE_WALLET_REFUND_OUTBOX_ENABLED=true
|
||
GENARRATIVE_WALLET_REFUND_OUTBOX_DIR=/var/lib/genarrative/wallet-refund-outbox
|
||
GENARRATIVE_WALLET_REFUND_OUTBOX_BATCH_SIZE=100
|
||
GENARRATIVE_WALLET_REFUND_OUTBOX_FLUSH_INTERVAL_MS=1000
|
||
GENARRATIVE_WALLET_REFUND_OUTBOX_MAX_BYTES=67108864
|
||
GENARRATIVE_BGFILTER_WORKER_CONCURRENCY=16
|
||
GENARRATIVE_EDITOR_BGFILTER_SINGLE_IMAGE_ESTIMATE_MS=5000
|
||
GENARRATIVE_EDITOR_BGFILTER_CIRCUIT_FAILURE_THRESHOLD=3
|
||
GENARRATIVE_EDITOR_BGFILTER_CIRCUIT_COOLDOWN_SECONDS=120
|
||
# BgFilter 失败后的中间兜底:阿里云通用抠图(SegmentCommonImage)。AccessKey 留空则跳过该层,
|
||
# BgFilter 失败直接本地 editor_green_screen 去背;填入后恢复 BgFilter→阿里云→本地三级兜底。
|
||
# AccessKey 也可复用标准 SDK 命名 ALIBABA_CLOUD_ACCESS_KEY_ID / ALIBABA_CLOUD_ACCESS_KEY_SECRET。
|
||
GENARRATIVE_ALIYUN_MATTING_ENABLED=true
|
||
GENARRATIVE_ALIYUN_MATTING_ENDPOINT=imageseg.cn-shanghai.aliyuncs.com
|
||
GENARRATIVE_ALIYUN_MATTING_ACCESS_KEY_ID=
|
||
GENARRATIVE_ALIYUN_MATTING_ACCESS_KEY_SECRET=
|
||
GENARRATIVE_ALIYUN_MATTING_REQUEST_TIMEOUT_MS=30000
|
||
|
||
GENARRATIVE_OTEL_ENABLED=true
|
||
OTEL_SERVICE_NAME=genarrative-api
|
||
OTEL_EXPORTER_OTLP_ENDPOINT=http://otelcol:4318
|
||
OTEL_RESOURCE_ATTRIBUTES=deployment.environment=container,service.namespace=genarrative
|
||
|
||
GENARRATIVE_INTERNAL_API_SECRET=CHANGE_ME_FOR_CONTAINER
|
||
GENARRATIVE_JWT_ISSUER=genarrative-container
|
||
GENARRATIVE_JWT_SECRET=CHANGE_ME_FOR_CONTAINER
|
||
AUTH_REFRESH_COOKIE_SECURE=false
|
||
|
||
# 默认连接 compose 内部 SpacetimeDB;宿主机发布模块使用 127.0.0.1:13101。
|
||
GENARRATIVE_SPACETIME_SERVER_URL=http://spacetimedb:3101
|
||
GENARRATIVE_SPACETIME_DATABASE=genarrative-loadtest
|
||
GENARRATIVE_SPACETIME_TOKEN=
|
||
# HTTP 角色使用 8 条无 read-model 订阅的调用连接,并额外创建 1 条共享缓存读连接。
|
||
GENARRATIVE_SPACETIME_POOL_SIZE=8
|
||
GENARRATIVE_SPACETIME_PROCEDURE_TIMEOUT_SECONDS=45
|
||
|
||
GENARRATIVE_LLM_PROVIDER=openai-compatible
|
||
GENARRATIVE_LLM_BASE_URL=https://api.tiantoken.com/v1
|
||
GENARRATIVE_LLM_API_KEY=
|
||
GENARRATIVE_LLM_MODEL=gpt-5.4-mini
|
||
WECHAT_MINIPROGRAM_MESSAGE_TOKEN=
|
||
WECHAT_MINIPROGRAM_MESSAGE_ENCODING_AES_KEY=
|
||
|
||
# 游戏发行入口模板:审核通过时按 {gameId} 占位符派生每游戏独立来源地址,例如
|
||
# https://{gameId}.games.example.com/。模板必须含 {gameId},生产未配置时审核通过直接失败。
|
||
GENARRATIVE_GAME_DISTRIBUTION_RELEASE_ENTRY_TEMPLATE=
|