本文档详细介绍如何在本地开发、构建和部署 SecBoard 项目。
| 依赖 | 版本要求 | 说明 |
|---|---|---|
| Node.js | >= 18 | 推荐 LTS 版本 |
| pnpm 或 bun | 最新版 | 项目默认使用 bun |
推荐使用 bun 作为包管理器和运行时,以获得更快的依赖安装和脚本执行速度。
git clone https://github.com/your-username/SecBoard.git
cd SecBoard使用 bun(推荐):
bun install或使用 pnpm:
pnpm installbun dev
# 或
pnpm dev启动后访问 http://localhost:5173 即可查看应用。
同时启动前端和后端服务:
bun dev此命令会并行启动:
- 前端开发服务器 (Vite) - 默认端口 5173
- 后端 API 服务 (Elysia) - 默认端口 3131
仅启动前端:
bun dev:web仅启动后端:
bun dev:backend| 服务 | 默认端口 | 环境变量 |
|---|---|---|
| 前端开发服务器 | 5173 | Vite 默认配置 |
| 后端 API 服务 | 3131 | LANSTART_BACKEND_PORT |
| 投屏服务 | 3132 | LANSTART_CAST_PORT |
bun build构建产物将输出到 dist/web 目录。
bun build:backendbun preview项目支持以下环境变量配置:
| 变量名 | 默认值 | 说明 |
|---|---|---|
LANSTART_BACKEND_PORT |
3131 | 后端服务端口 |
LANSTART_BACKEND_HOST |
127.0.0.1 | 后端服务监听地址 |
LANSTART_DB_PATH |
./lanstart.sqlite | 数据库文件路径 |
LANSTART_BACKEND_TRANSPORT |
http | 通信方式 (http/stdio) |
LANSTART_CAST_PORT |
3132 | 投屏服务端口 |
LANSTART_CAST_HOST |
0.0.0.0 | 投屏服务监听地址 |
LANSTART_CS_BASE_URL |
- | CS 服务基础 URL |
创建 .env 文件或在命令行中指定:
LANSTART_BACKEND_PORT=3131 bun dev:backendSecBoard/
├── src/
│ ├── renderer/ # 前端应用入口 (React)
│ ├── elysia/ # 后端服务 (Elysia API)
│ ├── paint_board/ # 白板组件
│ ├── video_show/ # 视频展台组件
│ ├── toolbar/ # 浮动工具栏
│ ├── toolbar-subwindows/ # 工具栏子窗口
│ ├── settings/ # 设置页面
│ ├── LeavelDB/ # LevelDB 数据存储
│ ├── status/ # 状态管理
│ ├── annotation_writing/ # 批注书写模块
│ ├── CUNOX/ # CUNOX 导入导出
│ ├── LanStartBar/ # LanStart 工具栏
│ ├── Mantine/ # Mantine UI 配置
│ ├── Tailwind/ # Tailwind CSS 配置
│ └── Framer_Motion/ # Framer Motion 动画
├── dist/
│ └── web/ # 构建输出目录
├── vite.config.ts # Vite 配置
├── tsconfig.json # TypeScript 配置
└── package.json # 项目配置
| 命令 | 说明 |
|---|---|
bun dev |
启动完整开发环境 |
bun dev:web |
仅启动前端开发服务器 |
bun dev:backend |
仅启动后端服务 |
bun build |
构建前端生产版本 |
bun build:backend |
构建后端代码 |
bun preview |
预览构建产物 |
bun test |
运行测试 |
bun typecheck |
TypeScript 类型检查 |
bun release |
发布新版本 |
开发模式下,前端通过 Vite 代理转发 API 请求到后端。代理配置位于 vite.config.ts:
server: {
proxy: {
'/rpc': { target: 'http://127.0.0.1:3131' },
'/events': { target: 'http://127.0.0.1:3131' },
'/kv': { target: 'http://127.0.0.1:3131' },
// ... 更多代理配置
}
}项目使用 LevelDB 作为本地数据存储,数据文件默认保存在 lanstart.sqlite。
- 前端:Vite 提供模块热替换 (HMR)
- 后端:使用
bun --watch实现文件变更自动重启
建议在提交代码前运行类型检查:
bun typecheck运行测试套件:
bun test测试使用 Vitest 框架,配置文件位于项目根目录。