docs: scope A — 妙搭 experimental, ordinary Dockerfile main path
Align skill with company-deploy-mcp: support matrix, no gateway/login parity promise, boot-only self-host env note.
This commit is contained in:
@@ -9,37 +9,49 @@
|
||||
5. 健康检查:实现 `/healthz` 或约定路径,写入 `spec.healthcheckPath`。
|
||||
6. Dokploy **不要每次 cleanCache**。
|
||||
7. **有状态数据写挂载路径**(见下),不要只写容器可写层。
|
||||
8. **本控制面 = 自部署(self-host)**,不是飞书妙搭/TCE 平台托管。
|
||||
8. **本控制面 = 普通容器自部署**(Gitea + Dokploy),**不是**飞书妙搭 / TCE 托管平台。
|
||||
|
||||
### 飞书 APaaS / 妙搭模板(`@lark-apaas/*`)自部署
|
||||
---
|
||||
|
||||
模板里的 `PlatformModule.forRoot()` 会启用平台 HttpClient(`platform.enabled: true`),启动时**必须**有:
|
||||
## 支持矩阵(Agent 选型)
|
||||
|
||||
| 栈 | 状态 | Agent 默认行为 |
|
||||
|----|------|----------------|
|
||||
| 普通 Python / Node / 静态站 + Dockerfile | **支持** | 正常 create → apply → 交付 URL |
|
||||
| 自管 Nest/FastAPI/Flask(自己的登录与 DB) | **支持** | 同上 |
|
||||
| 飞书妙搭 / `@lark-apaas/*` 全栈模板 | **实验性 · 非主路径** | **不要承诺「可用」**;先告知用户边界;仅用户坚持且理解风险时才部署 |
|
||||
| 依赖妙搭网关登录 / `/spark` runtime / 平台对象存储 / 插件能力 | **不支持** | 引导 `lark-apps` 在妙搭发布,或业务侧去平台化后再上本控制面 |
|
||||
|
||||
**主路径产品承诺:** 有 Dockerfile、监听约定端口、状态写 `/data`、可选 PG/MySQL → HTTPS 链接。
|
||||
**不承诺:** 与妙搭线上一致的登录、权限、平台 API、观测、能力插件。
|
||||
|
||||
### 妙搭 / Lark APaaS(仅 boot 兜底,非适配层)
|
||||
|
||||
若镜像里仍带着 `PlatformModule`(`platform.enabled: true`),**进程启动**可能需要:
|
||||
|
||||
```text
|
||||
FORCE_AUTHN_INNERAPI_DOMAIN=<基础域名>
|
||||
FORCE_AUTHN_INNERAPI_DOMAIN=<应用公网 URL>
|
||||
```
|
||||
|
||||
否则:
|
||||
控制面 `apply` **仅注入最小 boot env**(可关:`SELF_HOST_INJECT_ENV=false`),**不做**登录伪造、SPA 模板渲染、runtime API 补齐:
|
||||
|
||||
```text
|
||||
Error: 平台模式需要基础域名,请设置环境变量 FORCE_AUTHN_INNERAPI_DOMAIN
|
||||
```
|
||||
|
||||
**控制面在 `apply` 时自动注入**(无需用户填妙搭平台域名):
|
||||
|
||||
| 变量 | 值 |
|
||||
|------|-----|
|
||||
| `FORCE_AUTHN_INNERAPI_DOMAIN` | 应用公网 URL(`https://buxi*****.DOMAIN_ROOT`) |
|
||||
| `FORCE_FRAMEWORK_DISABLE_DATAPASS` | `true`(关掉 TCE datapass 中间件) |
|
||||
| `FORCE_FRAMEWORK_ENVIRONMENT` | 默认 `development` |
|
||||
| 变量 | 作用 |
|
||||
|------|------|
|
||||
| `FORCE_AUTHN_INNERAPI_DOMAIN` | 公网 URL,避免 HttpClient 构造失败 |
|
||||
| `FORCE_FRAMEWORK_ENVIRONMENT` | 默认 `development`(`SELF_HOST_FRAMEWORK_ENVIRONMENT`) |
|
||||
| `FORCE_FRAMEWORK_DISABLE_DATAPASS` | 默认 **`false`**(保留 DataPaas → `DRIZZLE_DATABASE`;勿默认关掉) |
|
||||
| `COMPANY_DEPLOY_SELF_HOST` | 标记自部署,供业务仓可选分支 |
|
||||
| `SERVER_HOST` / `SERVER_PORT` / `PORT` | `0.0.0.0` + `spec.port` |
|
||||
| `COMPANY_DEPLOY_SELF_HOST` | `true` |
|
||||
| `SUDA_DATABASE_URL` / `DATABASE_URL` | 仅当 plan 带了 `databases[]` 时写入 |
|
||||
|
||||
说明:
|
||||
**明确不在控制面 / skill 范围:**
|
||||
|
||||
- 这只保证 **进程能启动**;飞书开放平台能力(多维表格等)仍需业务侧配置 `FEISHU_*` / 应用凭证。
|
||||
- 若应用硬依赖妙搭登录态,自部署还需业务改登录(本地账号 / 自建 OAuth),与控制面注入无关。
|
||||
- 已上线的老应用:再 `apply` 一次,或 Dokploy 手动补上表中变量后 Redeploy。
|
||||
- 注入 `window.appId` / `__BASENAME__` / CSRF 与 hbs 模板(须业务仓自己处理或去平台化)
|
||||
- 伪造 `x-larkgw-suda-webuser`、业务 `users` 种子、角色权限
|
||||
- `/spark`、`/__runtime__`、观测 collect、平台账号/对象存储
|
||||
- 保证页面「能打开且接口正常」
|
||||
|
||||
Agent 话术:检测到 `@lark-apaas` 时,**先说明「仅可能进程可启动,接口与登录不保证」**;推荐改为普通栈或妙搭云端(`lark-apps`)。用户仍要求部署时,按普通 Dockerfile 流程走,**交付时写明实验性**。
|
||||
|
||||
---
|
||||
|
||||
@@ -259,3 +271,10 @@ registry=https://registry.npmmirror.com
|
||||
- [ ] 需要 PG/MySQL 时 plan 带 `databases`,代码读对应 env
|
||||
- [ ] Web 服务 `exposeWeb: true`(默认);Worker 显式 `false`
|
||||
- [ ] `.gitignore` 排除 `.env`、密钥、本地 db
|
||||
|
||||
|
||||
### DataPaas / DRIZZLE(仅当镜像仍用 @lark-apaas DataPaas)
|
||||
|
||||
- 保持 `FORCE_FRAMEWORK_DISABLE_DATAPASS=false`(默认)
|
||||
- plan 带 Postgres 时控制面会写 `SUDA_DATABASE_URL` + `DATABASE_URL`
|
||||
- 这只服务 **Nest 注入**;不代表业务接口已可用
|
||||
|
||||
Reference in New Issue
Block a user