Files
mnote/recycle/20260522-convex-runtime-retirement/infra/convex/README.md
T

57 lines
2.3 KiB
Markdown
Raw Normal View History

2026-01-17 10:12:53 +08:00
# Convex 自托管(Windows 本机)
本目录用于在本机通过 Docker Compose 启动 Convex backend + dashboard,并使用 backend 自身的持久化卷存储(包含数据库与文件存储)。
在 local-first 方案下,这套 Convex 自托管环境只定位为历史数据导出、显式 cloud source / compat 和可选 sync replica 运行底座;默认 auth、授权、分享、同步状态、AI policy、ACP/Hermes runtime session 等控制面已由 Rust SQLite control-plane 承接。页面正文、默认附件和本地 AI 会话全文不再以它作为早期产品默认数据真相。
2026-05-19 08:11:58 +08:00
2026-05-20 10:43:38 +08:00
## 当前 functions 边界
- 仓库根 `convex/` 已退役并软删除到 `recycle/20260522-convex-runtime-retirement/convex/`;它只作为审计、迁移对照或历史恢复素材,不再是 active deploy source。
- `recycle/wolai-frontend/convex/` 是退役前端随带的历史实现,不允许作为当前部署 fallback。
- `scripts/run-convex-deploy.js` 已随根 functions 源码软删除到 `recycle/20260522-convex-runtime-retirement/scripts/run-convex-deploy.js`。如需重新部署 Convex functions,必须先明确新的 cloud/compat 部署边界,不应直接恢复旧根 `convex/` 作为默认控制面。
2026-05-20 10:43:38 +08:00
2026-01-17 10:12:53 +08:00
## 启动
2026-02-01 08:47:40 +08:00
1. 确保仓库根目录 `.env.all` 存在(全局唯一 env 文件)。
2026-01-17 10:12:53 +08:00
2. 在本目录执行:
```bash
2026-02-01 08:47:40 +08:00
docker compose up -d
2026-01-17 10:12:53 +08:00
```
## 生成 Dashboard / CLI admin key
在本目录执行:
```bash
2026-02-01 08:47:40 +08:00
docker compose exec backend ./generate_admin_key.sh
2026-01-17 10:12:53 +08:00
```
## 访问地址(默认)
- Dashboard`http://localhost:6791`
- Backend`http://127.0.0.1:3210`
- HTTP Actions`http://127.0.0.1:3211`
- 文件存储:由 Convex 管理(Dashboard 的 Files 页面可查看)
## 快速验证(可选)
### 1) 验证默认启动不依赖 Convex functions 源码
2026-01-17 10:12:53 +08:00
当前默认 hot 启动链路不应要求仓库根存在 `convex/`
2026-01-17 10:12:53 +08:00
```bash
test ! -d convex
npm run desktop:hot
2026-01-17 10:12:53 +08:00
```
### 2) 验证固定开发用户(阶段 3)
2026-01-18 05:13:53 +08:00
启动前端后访问:`http://127.0.0.1:3000/api/dev/whoami`
2026-01-17 10:12:53 +08:00
### 3) 验证异步任务骨架(阶段 5)
启动前端后:
2026-01-18 05:13:53 +08:00
- `POST http://127.0.0.1:3000/api/dev/jobs/demo`body 可选:`{ "ms": 800 }`)创建 demo job
- `GET http://127.0.0.1:3000/api/dev/jobs/demo?id=<jobId>` 查询状态(queued/running/succeeded/failed