DeepBot Web服务端部署教程:Docker构建、JWT认证与WebSocket架构实战
【免费下载链接】deepbotDeepBot is a system-level AI assistant built for both personal productivity and enterprise workflows — one-click setup, seamless experience, and native Feishu integration.项目地址: https://gitcode.com/gh_mirrors/de/deepbot
DeepBot是一款系统级 AI 助手,支持个人生产力与企业工作流,具备一键部署、飞书原生集成等能力。本文带你完成 DeepBot 的Web 服务端部署,涵盖 Docker 镜像构建、JWT 认证机制与 WebSocket 实时通信架构,让你快速把 DeepBot 跑在服务器上,通过浏览器随时随地使用 AI 助手。
为什么选择 Web 服务端部署?
桌面版 DeepBot 需要安装 Electron 客户端,而 Web 模式把服务整体搬到了服务器上:
- 🌐浏览器即用:无需安装客户端,打开网页就能对话
- 📦容器化交付:一个 Docker 镜像包含后端 API、WebSocket 服务和前端静态页面
- 🔐密码 + JWT 双重保护:生产环境安全可控
- 💾数据持久化:工作目录、记忆、会话历史全部挂载到宿主机
DeepBot 项目内置了完整的 Web 部署链路,服务端入口位于 src/server/index.ts,它同时提供HTTP API和WebSocket 服务两个通道。
环境准备:部署前的清单
开始部署前,请确认宿主机满足以下条件:
| 依赖项 | 版本要求 | 说明 |
|---|---|---|
| Docker | 20.10+ | 运行容器 |
| Docker Compose | v2+ | 编排服务 |
| Node.js | ≥ 20.0.0 | 见 package.json 的 engines 配置 |
克隆仓库到服务器:
git clone https://gitcode.com/gh_mirrors/de/deepbot.git cd deepbot💡 镜像构建基于
node:22-bookworm-slim,同时支持linux/amd64和linux/arm64双架构,Apple Silicon 与 ARM 服务器均可运行。
一键 Docker 构建:构建阶段详解
DeepBot 提供了现成的 Dockerfile,采用两阶段构建策略来压缩镜像体积:
构建阶段(builder)
- 基于
node:22-bookworm-slim安装 pnpm,并移除 Web 版不需要的@electron/rebuild依赖 - 通过 BuildKit 缓存挂载(
cache mount)加速 pnpm 依赖下载 - 执行
pnpm run build:web,产出dist-server(后端)和dist-web(前端) - 将生产依赖单独安装到干净目录,并对
electron包做 mock,避免运行时加载失败
运行阶段
- 预装 Python 3、curl、ffmpeg 等 AI 执行命令常用的工具
- 内置 Playwright Chromium 的系统依赖,让浏览器自动化工具开箱即用
- 创建
/data/workspace、/data/db等目录作为数据挂载点 - 暴露 3000 端口,启动命令为
node dist-server/server/index.js
一条命令完成镜像构建:
pnpm run docker:build配置 .env 文件:密钥、端口与数据目录
.env.example 给出了全部配置项,部署时复制并填写:
cp .env.example .env重点配置项如下:
| 变量 | 是否必填 | 说明 |
|---|---|---|
PORT | 否 | Web 服务端口,默认 3008 |
ACCESS_PASSWORD | 推荐 | 访问密码,留空则无需登录(单用户模式) |
JWT_SECRET | 生产必改 | JWT 签名密钥,用于 Token 签发与校验 |
AI_API_KEY | 必填 | 大模型 API Key |
AI_BASE_URL | 必填 | 模型服务地址(OpenAI 兼容格式) |
AI_MODEL_ID | 必填 | 主模型 ID,如deepseek-chat |
AI_API_TYPE | 必填 | API 格式,支持 openai-completions / google-generative-ai / anthropic-messages |
数据持久化方面,docker-compose.yml 将宿主机目录挂载到容器/data/*下,覆盖工作目录、Skill、记忆、会话、SQLite 数据库等路径。⚠️ 注意:修改.env中的路径变量后,需要执行docker-compose down && docker-compose up -d重建容器才能生效。
启动服务与验证:三条命令上线
docker-compose up -d # 启动服务 docker-compose logs -f # 查看日志 curl http://localhost:3008/health # 健康检查健康检查接口返回服务状态、版本号与当前 WebSocket 连接数,源码在 src/server/index.ts。服务启动成功后,浏览器访问http://你的服务器IP:3008即可进入 DeepBot Web 界面。
compose 文件还内置了健康检查探针(30 秒间隔、10 秒超时、启动宽限 15 秒),配合restart: unless-stopped实现故障自动拉起,生产环境稳定性有保障。
JWT 认证机制:密码保护如何工作?
DeepBot Web 采用"单用户 + 密码 + JWT"的轻量认证模型,核心实现在 src/server/middleware/auth.ts:
认证流程
- 设置
ACCESS_PASSWORD后,所有/api/*接口都挂在 authMiddleware 之后 - 客户端调用
POST /api/auth/login提交密码,校验通过则签发 JWT Token - 后续请求在
Authorization: Bearer <token>头中携带 Token,中间件用JWT_SECRET验签 - Token 有效期为30 天,过期后需重新登录
几个值得注意的设计:
- 🚪无密码直连模式:未设置
ACCESS_PASSWORD时中间件直接放行,适合本地开发 - 🔌WebSocket 同样受保护:websocket-manager.ts 从连接 URL 的
?token=参数取 Token 验签,无效则关闭连接(1008) - 📱单端登录互踢:同一用户新连接建立后,旧连接会收到
session:kicked消息并被断开,避免多端状态混乱
⚠️ 生产环境务必修改
JWT_SECRET,否则任何人都能伪造 Token。
除 JWT 外,DeepBot 还提供X-Secret方式的外部调用接口(/api/external),方便第三方系统(如飞书回调、CI/CD)集成,文档见 docs/external-api.md。
WebSocket 架构:实时消息流是怎么走的?
DeepBot 的实时体验来自精心设计的 WebSocket 架构,核心在 src/server/websocket-manager.ts:
连接与订阅模型
- 服务端挂载在
ws://host:3008/ws路径 - 客户端连接后可发送
subscribe/unsubscribe消息,按Tab(会话)粒度订阅 - 收到
ping心跳后回复pong,保持长连接活跃
消息广播策略
| 事件类型 | 广播范围 | 示例 |
|---|---|---|
| AI 流式回复、执行步骤 | 仅订阅该 Tab 的客户端 | message:stream、execution-step:update |
| Tab 创建/更新、模型配置变更 | 所有客户端 | tab:created、model-config:update |
| 微信/企微二维码 | 所有客户端 | wechat:qr-code |
优雅资源回收是这套架构的亮点:客户端断开时,handleClientDisconnect 会自动停止其订阅的所有 Tab 中的 Agent 执行,避免 AI 在后台空跑浪费 Token。
常见问题排查清单
| 现象 | 排查方向 |
|---|---|
| 401 需要身份验证 | 未登录或 Token 过期,重新调用 login 接口 |
| WebSocket 连接被 1008 关闭 | URL 未携带有效token参数 |
| 端口无法访问 | 检查.env中PORT与 compose 端口映射是否一致 |
| 修改挂载路径不生效 | 执行docker-compose down && up -d重建容器 |
| AI 无响应 | 检查AI_API_KEY/AI_BASE_URL/AI_MODEL_ID三项配置 |
| 浏览器工具报错 | 确认 Playwright 依赖已随镜像预装,勿手动删除系统库 |
总结:从构建到上线的完整链路
回顾一下 DeepBot Web 服务端部署的核心链路:
- 构建:两阶段 Dockerfile,双架构镜像,工具链开箱即用
- 配置:
.env管理密钥、模型与数据目录,一份文件搞定 - 启动:docker-compose 编排 + 健康检查 + 自动重启
- 安全:密码登录签发 30 天 JWT,WebSocket 连接同机制防护
- 实时:Tab 级订阅广播 + 断连自动回收,流式体验流畅
掌握这套 Docker 构建、JWT 认证与 WebSocket 架构的组合,你不仅能部署 DeepBot,也为自建类似的 AI 助手服务打下了完整的工程基础。🚀
【免费下载链接】deepbotDeepBot is a system-level AI assistant built for both personal productivity and enterprise workflows — one-click setup, seamless experience, and native Feishu integration.项目地址: https://gitcode.com/gh_mirrors/de/deepbot
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考