a5fd251fc0
此前应用服务只是本机裸二进制、无 Dockerfile、无法交付。本提交把项目从"只能在我笔记本 跑"变成"任何人一条命令起一整套",是「演示 / 拉投资 / 卖给客户独立部署」的可交付基础。 - Dockerfile ×5:gateway/dispatcher/mcp-go 多阶段(distroless static, 36–55MB); mcp-py(python-slim, 268MB);admin(node 构建→nginx 托管 SPA + 反代 /api,76MB)。 Go 构建上下文为仓库根以兜住 replace ../sundynix-shared;.dockerignore 瘦上下文。 - docker-compose.prod.yml:应用 + 基建一把起;经服务名互连(顺带避开 localhost DNS 坑); 基建端口不对宿主暴露;depends_on 健康检查保序(mcp-go 待 Milvus healthy); APP_ENV=production 强制密钥校验 + 锁 CORS + 管理员白名单。 - .env.example + DEPLOY.md:两类密钥分层(引导密钥走 .env,模型 key 控制台加密存库); 首次管理员流程;安全建议。LICENSE 专有(授权模型可后定)。 - scripts/backup.sh + restore.sh:PG 逻辑备份 + 各数据卷快照 / 恢复。 - .gitignore 挡 .env*(密钥不入库)。 live:5 镜像全构建通过;独立 project 起整套 → nginx→gateway→NATS→dispatcher→mcp 全链路 注册+提任务 running→done,depends_on 保序生效。 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
48 lines
2.3 KiB
Bash
48 lines
2.3 KiB
Bash
# sundynix-agentix 部署配置模板 —— 复制为 .env 后填写(docker compose -f docker-compose.prod.yml 读取)
|
|
#
|
|
# cp .env.example .env
|
|
# # 按下方注释生成/填写各项,然后:
|
|
# docker compose -f docker-compose.prod.yml up -d --build
|
|
#
|
|
# 说明:这里只放「引导密钥/基建凭据」。LLM 模型 API key 不在这里 —— 部署起来后登录控制台配置、
|
|
# 由平台 AES 加密存库(加密用的就是下面的 SUNDYNIX_SECRET_KEY)。
|
|
|
|
# ── 必填:引导密钥(生成命令见各行) ─────────────────────────────
|
|
# 主加密密钥:用于加密控制台里配置的模型 API key。三服务共用同一个,丢了=已存的密钥都解不开。
|
|
# 生成:openssl rand -base64 32
|
|
SUNDYNIX_SECRET_KEY=
|
|
|
|
# 登录令牌签名密钥(JWT)。
|
|
# 生成:openssl rand -base64 32
|
|
JWT_SECRET=
|
|
|
|
# 数据库密码(PostgreSQL,平台主库)。
|
|
# 生成:openssl rand -base64 24 (勿用特殊字符 @ : / 以免污染 DSN)
|
|
POSTGRES_PASSWORD=
|
|
|
|
# 图数据库密码(Neo4j,知识图谱)。
|
|
NEO4J_PASSWORD=
|
|
|
|
# ── 必填:管理员 ─────────────────────────────────────────────
|
|
# 管理员用户 ID 白名单(逗号分隔)。生产模式下只有这些用户能进 /admin 控制台。
|
|
# 首次部署:先留空起服务 → 注册第一个账号 → 从返回的 user id 填进来 → 重启 gateway。
|
|
ADMIN_USER_IDS=
|
|
|
|
# ── 选填:网络/端口 ─────────────────────────────────────────
|
|
# 控制台对外端口(默认 80)。
|
|
HTTP_PORT=80
|
|
# 网关对外端口(供桌面端直连;纯 Web 用可不暴露)。
|
|
GATEWAY_PORT=8080
|
|
# 允许的前端来源(生产建议设具体域名,如 https://app.example.com;缺省 * 仅供内网/演示)。
|
|
CORS_ALLOW_ORIGIN=*
|
|
# Jaeger 链路追踪 UI 端口。
|
|
JAEGER_UI_PORT=16686
|
|
|
|
# ── 选填:调优 ───────────────────────────────────────────────
|
|
# 单调度副本并发任务数。
|
|
DISPATCHER_CONCURRENCY=8
|
|
# 单任务 token 预算上限(防失控成本)。
|
|
TASK_TOKEN_BUDGET=200000
|
|
# 镜像标签。
|
|
TAG=latest
|