refactor: 环境变量统一为 .env.app 单文件 + 清理死配置
- 新增 .env.app.example 统一模板(两套 compose 共用,数据库按模式分节注释),删除 .env.self-hosted.example / .env.production.example - 部署指南与 README 的 --env-file 引用统一为 .env.app;.gitignore / .dockerignore 白名单同步调整 - runtime-env.ts 移除零消费的 MCP_API_KEY / COLLECTION_MCP_URL / COLLECTION_MCP_KEY 遗留声明 - .dockerignore 补充 .dev.vars 排除;mcp-task-server 测试改读新模板
This commit is contained in:
@@ -19,10 +19,10 @@
|
||||
|
||||
第一版按单实例 KOC 服务设计。MySQL 和上传目录均持久化。以后需要横向扩容时,可以把上传卷换成共享 NAS;对象存储接口已与业务代码分离。
|
||||
|
||||
仓库提供两套编排文件,按数据库归属选用:
|
||||
仓库提供两套编排文件,按数据库归属选用,共用同一份环境文件 `.env.app`(模板 `.env.app.example`):
|
||||
|
||||
- `docker-compose.self-hosted.yml`:自带 MySQL 容器与数据卷,适合独立服务器或没有公共数据库的环境;
|
||||
- `docker-compose.production.yml`:只包含 KOC 服务与入口 Nginx,直连公司公共 MySQL(要求 MySQL 8 + utf8mb4,账号需对目标库有建表与读写权限),配套环境模板 `.env.production.example`。
|
||||
- `docker-compose.production.yml`:只包含 KOC 服务与入口 Nginx,直连公司公共 MySQL(要求 MySQL 8 + utf8mb4,账号需对目标库有建表与读写权限)。
|
||||
|
||||
两套文件的入口 Nginx 都建议保留:它除了反向代理,还托管 `/koc/` 领取页静态文件、`/api/mcp` 长连接规则与 85 MB 上传限制,公司网关只需把域名转发到容器的 `HTTP_PORT`。
|
||||
|
||||
@@ -43,10 +43,10 @@
|
||||
git clone ssh://git@gta.gbotai.cn:42001/wufengping/koc-loop.git
|
||||
cd koc-loop
|
||||
git checkout main
|
||||
cp .env.self-hosted.example .env.self-hosted
|
||||
cp .env.app.example .env.app
|
||||
```
|
||||
|
||||
编辑 `.env.self-hosted`。必须替换所有 `replace-with-*` 占位值:
|
||||
编辑 `.env.app`。必须替换所有 `replace-with-*` 占位值(公共 MySQL 模式还需把 `MYSQL_HOST` 指向公司实例):
|
||||
|
||||
| 变量 | 用途 |
|
||||
| --- | --- |
|
||||
@@ -75,23 +75,21 @@ cp .env.self-hosted.example .env.self-hosted
|
||||
## 4. 首次启动
|
||||
|
||||
```bash
|
||||
docker compose --env-file .env.self-hosted \
|
||||
docker compose --env-file .env.app \
|
||||
-f docker-compose.self-hosted.yml up -d --build
|
||||
```
|
||||
|
||||
生产环境使用公司公共 MySQL 时改用:
|
||||
|
||||
```bash
|
||||
cp .env.production.example .env.production
|
||||
# 编辑 .env.production:MYSQL_HOST 指向公共实例,其余变量同 self-hosted
|
||||
docker compose --env-file .env.production \
|
||||
docker compose --env-file .env.app \
|
||||
-f docker-compose.production.yml up -d --build
|
||||
```
|
||||
|
||||
应用容器启动时会先执行同一套数据库迁移脚本,成功后才启动 KOC 服务。查看状态(生产模式把 `-f` 与 `--env-file` 换成对应文件即可):
|
||||
应用容器启动时会先执行同一套数据库迁移脚本,成功后才启动 KOC 服务。查看状态(生产模式把 `-f` 换成对应编排文件即可):
|
||||
|
||||
```bash
|
||||
docker compose --env-file .env.self-hosted \
|
||||
docker compose --env-file .env.app \
|
||||
-f docker-compose.self-hosted.yml ps
|
||||
|
||||
curl -fsS http://127.0.0.1:${HTTP_PORT:-80}/api/health
|
||||
@@ -205,7 +203,7 @@ UPLOAD_DIR=/data/koc/uploads \
|
||||
|
||||
```bash
|
||||
git pull
|
||||
docker compose --env-file .env.self-hosted \
|
||||
docker compose --env-file .env.app \
|
||||
-f docker-compose.self-hosted.yml up -d --build
|
||||
```
|
||||
|
||||
@@ -267,7 +265,7 @@ KOC LOOP 的企业微信通知是**单向外发**:每天 09:00 与定时采集
|
||||
- 「测试群机器人」:群内收到 `[KOC LOOP 测试] 群机器人连通性正常,时间 ...` 即配置成功;
|
||||
- 合作方行的「测试发送」:对应外部联系人收到同样格式的测试消息即绑定正确。
|
||||
|
||||
如果面板显示「未配置」但已填环境变量,先确认容器加载了新的 `.env.self-hosted`(重启服务),再回到该页面点「刷新状态」。
|
||||
如果面板显示「未配置」但已填环境变量,先确认容器加载了新的 `.env.app`(重启服务),再回到该页面点「刷新状态」。
|
||||
|
||||
### 11.5 任务发布到企微客户群(企业群发)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user