启动应用 (start)
启动 ChainlessChain 桌面应用程序,支持 GUI 模式和 headless 模式(仅后端服务)。
核心特性
- 🔹 桌面启动: 启动 Electron 桌面 GUI 应用
- 🔹 Headless 模式: 仅启动 Docker 后端服务,不启动 GUI
- 🔹 服务联动: 可同时启动 Docker 后端服务
- 🔹 重复检测: 自动检测应用是否已在运行,避免重复启动
系统架构
start 命令 → start.js (Commander) → config-manager + process-manager
│
┌─────────────────────┼──────────────────────┐
▼ ▼ ▼
检查 setup 状态 启动 Docker 服务 启动桌面应用
(setupCompleted) (--services/--headless) (process-manager)
│ │
▼ ▼
docker-compose up -d Electron 进程
返回 PID命令参考
bash
chainlesschain start # 启动桌面应用
chainlesschain start --headless # 仅启动后端服务(无 GUI)
chainlesschain start --services # 启动桌面应用 + Docker 服务选项说明
| 选项 | 说明 |
|---|---|
--headless | 仅启动 Docker 后端服务,不启动桌面 GUI |
--services | 同时启动 Docker 后端服务 |
关键文件
packages/cli/src/commands/start.js— 命令实现packages/cli/src/lib/process-manager.js— 进程管理(启动、检测、PID)packages/cli/src/lib/service-manager.js— Docker 服务管理packages/cli/src/lib/config-manager.js— 配置读取
安全考虑
- 启动前检查
setupCompleted状态,未完成配置时拒绝启动 --headless和--services模式需要 Docker 可用- 桌面应用以用户权限运行,不需要管理员权限
- 重复启动会被自动检测并跳过
使用示例
场景 1:日常启动桌面应用
bash
chainlesschain start启动 ChainlessChain 桌面应用。如果应用已在运行,会提示而非重复启动。
场景 2:开发环境完整启动
bash
chainlesschain start --services同时启动桌面应用和 Docker 后端服务(PostgreSQL、Redis、Ollama、Qdrant),适合开发调试。
场景 3:服务器 headless 部署
bash
chainlesschain start --headless仅启动 Docker 后端服务,不启动 GUI。适用于服务器、容器化环境或远程开发。
故障排查
| 问题 | 解决方案 |
|---|---|
Setup not completed | 先运行 chainlesschain setup 完成配置 |
Docker is required | 安装 Docker Desktop(--headless 和 --services 需要) |
docker-compose.yml not found | 在项目根目录下运行,或确认 backend/docker 目录存在 |
| 应用启动后无窗口 | 检查 Electron 二进制是否已下载:chainlesschain update |
already running | 应用已在运行,无需重复启动 |
