☰
DeepBot Web服务端部署教程:Docker构建、JWT认证与WebSocket架构实战
2026/10/8 23:01:50 网站建设 项目流程

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 服务两个通道。

环境准备:部署前的清单

开始部署前,请确认宿主机满足以下条件:

依赖项版本要求说明
Docker20.10+运行容器
Docker Composev2+编排服务
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)

  1. 基于node:22-bookworm-slim安装 pnpm,并移除 Web 版不需要的@electron/rebuild依赖
  2. 通过 BuildKit 缓存挂载(cache mount)加速 pnpm 依赖下载
  3. 执行pnpm run build:web,产出dist-server(后端)和dist-web(前端)
  4. 将生产依赖单独安装到干净目录,并对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:

认证流程

  1. 设置ACCESS_PASSWORD后,所有/api/*接口都挂在 authMiddleware 之后
  2. 客户端调用POST /api/auth/login提交密码,校验通过则签发 JWT Token
  3. 后续请求在Authorization: Bearer <token>头中携带 Token,中间件用JWT_SECRET验签
  4. 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 服务端部署的核心链路:

  1. 构建:两阶段 Dockerfile,双架构镜像,工具链开箱即用
  2. 配置:.env管理密钥、模型与数据目录,一份文件搞定
  3. 启动:docker-compose 编排 + 健康检查 + 自动重启
  4. 安全:密码登录签发 30 天 JWT,WebSocket 连接同机制防护
  5. 实时: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),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询