前言

LangBot 是一款开源的多平台智能机器人开发平台,可对接 Discord、Telegram、QQ、飞书、钉钉、微信(企微 / 公众号)等 IM,并接入 GPT、DeepSeek、Claude、Gemini、Ollama、Dify 等模型与工作流,提供 Agent、知识库、插件与沙箱能力。

本文基于官方 Docker Compose,在 Rocky Linux / RHEL 系上一键部署(推荐启用 all profile)。

官方文档:https://docs.langbot.app/zh/deploy/langbot/docker

项目地址:https://github.com/langbot-app/LangBot

环境要求

硬件(建议)

项目 要求
CPU >= 2 核
内存 >= 2 GiB(启用沙箱 / 插件建议 4 GiB+)
磁盘 建议预留 20 GiB+

软件

项目 要求
操作系统 Linux(本文以 Rocky Linux 9 为例)
Docker 已安装并可正常使用
Docker Compose Compose V2(docker compose
Git 用于克隆仓库

启用 Box 沙箱时,容器需挂载宿主机 /var/run/docker.sock,运行用户需能访问 Docker。

环境配置

1
2
3
4
5
6
systemctl disable --now firewalld
sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config && setenforce 0
# 关闭防火墙和 SELinux

dnf install tree vim bash-completion tar git curl openssl -y
# 安装基础工具

Docker-CE 环境安装

1
2
3
4
5
6
yum install -y yum-utils
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sed -i 's+https://download.docker.com+https://mirrors.tuna.tsinghua.edu.cn/docker-ce+' /etc/yum.repos.d/docker-ce.repo
yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
systemctl enable --now docker
docker compose version

参考清华大学源:https://mirrors.tuna.tsinghua.edu.cn/help/docker-ce/

Docker 国内镜像加速器配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://proxy.1panel.live",
"https://dockerpull.org",
"https://hub1.nat.tf",
"https://docker.m.daocloud.io"
]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
docker info | grep -A5 "Registry Mirrors"
docker pull hello-world

PS:也可参考 https://songxwn.com/cf-works-DockerHub-Proxy/ 自行搭建镜像加速。

若非 root 用户部署并启用沙箱,需加入 docker 组:

1
2
3
sudo usermod -aG docker $USER
newgrp docker
docker info

部署 LangBot

1. 克隆官方仓库

1
2
3
cd /opt
git clone https://github.com/langbot-app/LangBot
cd LangBot/docker

2.(可选)生成控制面 Token

启用 all / box profile 时建议设置 Token;插件运行时也可选配。可先导出再启动:

1
2
3
4
5
6
cd /opt/LangBot/docker
export LANGBOT_PLUGIN_RUNTIME_CONTROL_TOKEN="$(openssl rand -hex 32)"
export LANGBOT_BOX_CONTROL_TOKEN="$(openssl rand -hex 32)"
# 建议写入 .env 或 shell 配置,避免每次重启丢失
echo "LANGBOT_PLUGIN_RUNTIME_CONTROL_TOKEN=${LANGBOT_PLUGIN_RUNTIME_CONTROL_TOKEN}" >> .env
echo "LANGBOT_BOX_CONTROL_TOKEN=${LANGBOT_BOX_CONTROL_TOKEN}" >> .env

也可自定义 Box 数据根目录(宿主机与容器路径必须一致):

1
2
3
export LANGBOT_BOX_ROOT=/var/lib/langbot/box
mkdir -p "$LANGBOT_BOX_ROOT"
echo "LANGBOT_BOX_ROOT=${LANGBOT_BOX_ROOT}" >> .env

3.(国内可选)替换镜像源

若 Docker Hub 拉取困难,可编辑 docker-compose.yaml,将镜像改为官方镜像源:

1
image: docker.langbot.app/langbot-public/rockchin/langbot:latest

langbotlangbot_plugin_runtimelangbot_box 三处都需改成同一镜像名。

4. 启动服务

推荐(启用沙箱、stdio MCP、Skill 添加/编辑等 Box 能力):

1
2
cd /opt/LangBot/docker
docker compose --profile all up -d

仅基础服务(不启 Box Runtime):

1
docker compose up -d

all profile 会启动:

容器 作用
langbot 主程序 + WebUI
langbot_plugin_runtime 插件运行时
langbot_box Box 沙箱控制面(通过宿主 docker.sock 创建沙箱容器)

5. 检查状态

1
2
docker compose ps
docker compose logs -f --tail=100 langbot

访问与初始化

浏览器打开 WebUI:

1
2
3
4
5
# 本机
http://127.0.0.1:5300

# 服务器
http://你的服务器IP:5300

首次启动会生成配置文件,按 WebUI / 日志提示完成初始化即可。

也可在 WebUI 中选择 Initialize with Space,连接 LangBot Space 获取云端模型额度、一键装插件等能力。

端口说明

端口 用途
5300 WebUI、Webhook 回调
2280-2285 OneBot 等消息平台适配器反向连接
5401 插件运行时(一般本机/容器网内使用)

配置机器人与模型

部署完成后按官方文档继续配置:

  1. 模型https://docs.langbot.app/zh/usage/models/readme
    可接 OpenAI、DeepSeek、硅基流动、Ollama、Dify 等。
  2. 消息平台https://docs.langbot.app/zh/usage/platforms/readme
    Discord / Telegram / QQ / 飞书 / 钉钉 / 微信等。
  3. 沙箱https://docs.langbot.app/zh/usage/sandbox/readme
  4. 技能系统https://docs.langbot.app/zh/usage/skills/readme

简易路径:

  1. 打开 WebUI → 配置模型(或使用 Space)
  2. Pipelines 中编辑默认流水线,选择模型与提示词
  3. Bots 中新增机器人,填写平台 Token 并启用

反向代理(可选)

若用宿主机 Nginx 对外暴露 WebUI(示例域名请自行替换):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
server {
listen 80;
server_name langbot.example.com;
client_max_body_size 50m;

location / {
proxy_pass http://127.0.0.1:5300;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_read_timeout 3600s;
proxy_send_timeout 3600s;
}
}

使用 OneBot 反向连接时,还需放行或转发 2280-2285(按所用适配器端口调整)。

升级

1
2
3
4
5
6
7
8
cd /opt/LangBot
git pull

cd docker
docker compose --profile all pull
docker compose --profile all down
docker compose --profile all up -d
docker compose ps

数据在 docker/data(含配置、插件、Box 工作区等),升级一般会保留。注意:插件依赖是装在容器内的,若重建容器后插件缺依赖,可删插件目录后重启再装一次,让程序重新安装依赖。

常用运维命令

1
2
3
4
5
6
7
cd /opt/LangBot/docker

docker compose --profile all ps
docker compose logs -f langbot
docker compose --profile all restart
docker compose --profile all down
# 停止服务;默认不删 ./data 目录数据

常见问题

  1. 提示 No sandbox backend (Docker/nsjail/E2B) is ready
    确认当前用户能执行 docker info,且 langbot_box 已挂载 /var/run/docker.sock;修好后重启 Compose。

  2. Box 根目录路径问题
    宿主机路径与容器内路径必须一致;改目录时用绝对路径设置 LANGBOT_BOX_ROOT

  3. 国内拉不动 rockchin/langbot
    改用 docker.langbot.app/langbot-public/rockchin/langbot:latest,或配置 Docker Hub 代理。

  4. 只想跑基础功能
    使用 docker compose up -d(不加 --profile all)。此时沙箱工具、Skill 增删、stdio MCP 等不可用。

  5. 运行期访问外网失败(拉模型 / 插件)
    可为 Docker 配置 HTTP/HTTPS 代理,保证容器出网正常。

技术交流群

发送邮件到 ➡️ [email protected]

或者关注 WX 公众号:网工格物

微信扫码

博客(最先更新)

https://songxwn.com