Debian安装部署Openclaw-接入阿里云百炼-对接飞书全攻略教程

作为一名技术爱好者,我最近也跟风养起了"龙虾"(OpenClaw)。所以今天这篇文章,咱们就从零开始,在Debian上部署OpenClaw。从安装部署到接入阿里云百炼、对接飞书机器人、安装Skill,一步不落,全都捋一遍。

📋 部署前的准备工作


你需要准备以下物品:

| 序号 | 物品 | 说明 |
|:---:|:---|:---|
| 1 | 💻 X86主机一台 | 建议4核8G以上配置 |
| 2 | 🔧 XTerminal SSH远程管理工具 | 或其他SSH客户端 |
| 3 | 💾 一个U盘 | 8GB以上 |
| 4 | 📝 balenaEtcher写盘工具 | 制作启动盘 |
| 5 | 📀 Debian 13 ISO系统镜像 | 官方下载 |

🚀 第一步:安装Debian系统


1️⃣ 制作启动盘

打开 **balenaEtcher** 写盘工具,将下载好的 **Debian 13 ISO** 镜像写入U盘。

2️⃣ 启动安装

💡 操作流程:
├─ 将U盘插入小主机,连接网线,然后开机
├─ 按快捷键呼出启动项菜单,选择U盘启动
└─ 出现Debian安装界面后,选择第一项开始安装

3️⃣ 基础配置

- 🌐 **语言选择**:中文简体
- 🗺️ **区域选择**:中国
- ⌨️ **键盘布局**:汉语
- ⏳ 等待加载安装介质

4️⃣ 网络配置

系统会自动选择接入网络的网口(如果只有一个网口则无需选择)。网络配置完成后:

- 🏷️ 设置主机名(可选择默认)
- 📭 域名留空即可
- 🔐 设置root用户密码
- 👤 创建普通用户并设置密码

5️⃣ 磁盘分区

📀 分区步骤:
├─ 选择"使用整个磁盘"
├─ 选择目标磁盘
├─ 选择"将所有文件放在同一个分区中"
├─ 选择"完成分区操作并将修改写入磁盘"
├─ 确认将修改写入磁盘:选择"是"
└─ 等待分区完成并安装基本系统

6️⃣ 软件源配置

- ✅ 使用网络镜像站:选择"**是**"
- 🇨🇳 选择"**中国**",然后选择第一个Debian镜像源
- 📭 HTTP代理:留空
- ❌ 参与流行度调查:选择"**否**"

7️⃣ 软件选择

使用 **空格键** 分别选择以下选项:

- ☑️ Debian桌面环境
- ☑️ GNOME
- ☑️ SSH服务器
- ☑️ 标准系统工具

⏳ 等待软件安装完成,系统即安装完毕。

⚙️ 第二步:配置Debian系统


1️⃣ 获取root权限

进入Debian系统后,打开终端,输入:
su
然后输入root密码进行提权。

2️⃣ 禁用自动挂起
systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target
3️⃣ 安装curl
apt install curl
4️⃣ 切换软件源
bash <(curl -sSL https://linuxmirrors.cn/main.sh)
5️⃣ 开启root用户远程SSH权限
nano /etc/ssh/sshd_config
修改配置文件以允许root远程登录。
6️⃣其他设置
- 🖥️ 关闭自动息屏
- 🖥️ 开启拼音输入法

🦞 第三步:安装配置OpenClaw


1️⃣ 一键安装OpenClaw
curl -fsSL https://openclaw.ai/install.sh | bash
-💡 这个命令会自动安装OpenClaw所需的所有依赖。

2️⃣ 初始化配置

- ✅ 安装完成后,选择"**YES**"同意协议
- 🚀 选择"**Quickstart**"快速开始

3️⃣ 配置模型提供商

来到模型选择页面,因为我们要对接 **阿里云百炼**,所以选择"**Custom Provider**"。

4️⃣ 配置API信息

🔗 API Base URL

1. 打开阿里云百炼控制台 https://bailian.console.aliyun.com/
2. 点击"**Coding Plan**"
3. 复制OpenAI兼容协议的Base URL
4. 回到终端,删除原有链接,粘贴百炼的链接

🔑 API Key

1. 来到百炼控制台,复制专属API Key
2. 粘贴到终端的API Key输入框

🤖 模型配置

| 配置项 | 值 |
|:---|:---|
| 提供商选择 | OpenAI |
| Model ID | 从百炼控制台复制你想使用的大模型名称 |
| Endpoint ID | `bailian` |
| Model Alias | 保持默认 |

5️⃣ 跳过可选配置

- ⏭️ 通讯工具对接:选择"**Skip for now**"(稍后配置)
- ⏭️ 搜索功能:选择"**Skip for now**"(稍后配置)
- ⏭️ 是否安装Skill:选择"**No**"

6️⃣ 选择UI类型

使用 **空格** 选中除"Skip for now"外的所有选项,按回车确认。

- 🌐 询问使用终端UI还是Web UI时,选择"**Web UI**"(因为我们要通过浏览器访问)

7️⃣ 访问Web ui

配置完成后,向上滚动终端页面,找到"**Dashboard Ready**"提示。

1. 📋 复制带有Token的链接
2. 🌐 粘贴到浏览器中打开

🎉 **现在OpenClaw就部署完成了!** 你可以在浏览器中尝试和它对话,检查是否正常运行。

💬 第四步:配置飞书机器人


1️⃣ 查看服务器IP

在Debian中查看当前服务器的IP地址:
ip addr
2️⃣ 连接SSH

回到电脑,在SSH工具中配置好服务器连接并连接。

3️⃣ 创建飞书应用

📝 创建步骤:
├─ 打开飞书开放平台,进入开发者后台 https://open.feishu.cn/
├─ 点击"创建企业自建应用"
├─ 输入应用名称和描述
└─ 点击"创建"

4️⃣ 配置权限

1. 🔐 点击"**权限管理**"
2. 📋 复制预设好的权限列表
3. 📥 点击"**批量导入权限**"
4. 📋 将权限列表粘贴进去
5. ✅ 点击"**下一步**" → "**申请开通**" → 最后确认
权限列表:
{
  "scopes": {
    "tenant": [
      "base:app:copy",
      "base:app:create",
      "base:app:read",
      "base:app:update",
      "base:collaborator:create",
      "base:collaborator:delete",
      "base:collaborator:read",
      "base:dashboard:copy",
      "base:dashboard:read",
      "base:field:create",
      "base:field:delete",
      "base:field:read",
      "base:field:update",
      "base:form:read",
      "base:form:update",
      "base:record:create",
      "base:record:delete",
      "base:record:read",
      "base:record:retrieve",
      "base:record:update",
      "base:role:create",
      "base:role:delete",
      "base:role:read",
      "base:role:update",
      "base:table:create",
      "base:table:delete",
      "base:table:read",
      "base:table:update",
      "base:view:read",
      "base:view:write_only",
      "bitable:app",
      "bitable:app:readonly",
      "board:whiteboard:node:create",
      "board:whiteboard:node:delete",
      "board:whiteboard:node:read",
      "board:whiteboard:node:update",
      "contact:contact.base:readonly",
      "contact:user.base:readonly",
      "contact:user.employee_id:readonly",
      "contact:user.employee_number:read",
      "contact:user.id:readonly",
      "docs:doc",
      "docs:doc:readonly",
      "docs:document.comment:create",
      "docs:document.comment:read",
      "docs:document.comment:update",
      "docs:document.comment:write_only",
      "docs:document.content:read",
      "docs:document.media:download",
      "docs:document.media:upload",
      "docs:document.subscription",
      "docs:document.subscription:read",
      "docs:document:copy",
      "docs:document:export",
      "docs:document:import",
      "docs:event.document_deleted:read",
      "docs:event.document_edited:read",
      "docs:event.document_opened:read",
      "docs:event:subscribe",
      "docs:permission.member",
      "docs:permission.member:auth",
      "docs:permission.member:create",
      "docs:permission.member:delete",
      "docs:permission.member:readonly",
      "docs:permission.member:retrieve",
      "docs:permission.member:transfer",
      "docs:permission.member:update",
      "docs:permission.setting",
      "docs:permission.setting:read",
      "docs:permission.setting:readonly",
      "docs:permission.setting:write_only",
      "docx:document",
      "docx:document.block:convert",
      "docx:document:create",
      "docx:document:readonly",
      "drive:drive",
      "drive:drive.metadata:readonly",
      "drive:drive.search:readonly",
      "drive:drive:readonly",
      "drive:drive:version",
      "drive:drive:version:readonly",
      "drive:export:readonly",
      "drive:file",
      "drive:file.like:readonly",
      "drive:file.meta.sec_label.read_only",
      "drive:file:download",
      "drive:file:readonly",
      "drive:file:upload",
      "drive:file:view_record:readonly",
      "event:ip_list",
      "im:app_feed_card:write",
      "im:biz_entity_tag_relation:read",
      "im:biz_entity_tag_relation:write",
      "im:chat",
      "im:chat.access_event.bot_p2p_chat:read",
      "im:chat.announcement:read",
      "im:chat.announcement:write_only",
      "im:chat.chat_pins:read",
      "im:chat.chat_pins:write_only",
      "im:chat.collab_plugins:read",
      "im:chat.collab_plugins:write_only",
      "im:chat.managers:write_only",
      "im:chat.members:bot_access",
      "im:chat.members:read",
      "im:chat.members:write_only",
      "im:chat.menu_tree:read",
      "im:chat.menu_tree:write_only",
      "im:chat.moderation:read",
      "im:chat.tabs:read",
      "im:chat.tabs:write_only",
      "im:chat.top_notice:write_only",
      "im:chat.widgets:read",
      "im:chat.widgets:write_only",
      "im:chat:create",
      "im:chat:delete",
      "im:chat:moderation:write_only",
      "im:chat:operate_as_owner",
      "im:chat:read",
      "im:chat:readonly",
      "im:chat:update",
      "im:datasync.feed_card.time_sensitive:write",
      "im:message",
      "im:message.group_at_msg:readonly",
      "im:message.group_msg",
      "im:message.p2p_msg:readonly",
      "im:message.pins:read",
      "im:message.pins:write_only",
      "im:message.reactions:read",
      "im:message.reactions:write_only",
      "im:message.urgent",
      "im:message.urgent.status:write",
      "im:message.urgent:phone",
      "im:message.urgent:sms",
      "im:message:readonly",
      "im:message:recall",
      "im:message:send_as_bot",
      "im:message:send_multi_depts",
      "im:message:send_multi_users",
      "im:message:send_sys_msg",
      "im:message:update",
      "im:resource",
      "im:tag:read",
      "im:tag:write",
      "im:url_preview.update",
      "im:user_agent:read",
      "sheets:spreadsheet",
      "sheets:spreadsheet.meta:read",
      "sheets:spreadsheet.meta:write_only",
      "sheets:spreadsheet:create",
      "sheets:spreadsheet:read",
      "sheets:spreadsheet:readonly",
      "sheets:spreadsheet:write_only",
      "space:document.event:read",
      "space:document:delete",
      "space:document:move",
      "space:document:retrieve",
      "space:document:shortcut",
      "space:folder:create",
      "wiki:member:create",
      "wiki:member:retrieve",
      "wiki:member:update",
      "wiki:node:copy",
      "wiki:node:create",
      "wiki:node:move",
      "wiki:node:read",
      "wiki:node:retrieve",
      "wiki:node:update",
      "wiki:setting:read",
      "wiki:setting:write_only",
      "wiki:space:read",
      "wiki:space:retrieve",
      "wiki:space:write_only",
      "wiki:wiki",
      "wiki:wiki:readonly"
    ]
  }
}
5️⃣ 发布应用

1. 🚀 点击"**创建版本**"
2. 🔢 输入版本号
3. 📝 填写更新说明
4. 💾 点击"**保存并确认发布**"

6️⃣ 获取应用凭证

1. 📇 点击"**凭证与基础信息**"
2. 📋 复制 **App ID****App Secret**

7️⃣ 配置OpenClaw飞书通道

在SSH界面输入:
openclaw config
按以下步骤配置:

⚙️ 配置流程:
├─ 选择"Local"
├─ 选择"Channels"
├─ 选择"Configure"
├─ 选择"飞书"
├─ 选择"Use Local"
├─ 选择"输入App Secret" → 粘贴从飞书复制的App Secret
├─ 输入App ID → 粘贴从飞书复制的App ID
├─ 选择"WebSocket"
├─ 选择"China"
├─ 选择"Open"
├─ 选择"Finished"
└─ 选择"Continue"

8️⃣ 配置飞书事件回调

回到飞书开放平台:

1. 🔔 点击"**事件与回调**"
2. ⚙️ 在"事件配置"中点击"**订阅方式**"
3. 🔌 选择"**使用长连接接收事件**"
4. 💾 保存设置

9️⃣ 添加事件订阅

1. ➕ 点击"**添加事件**"
2. 💬 选择"**消息与群组**"
3. ☑️ 勾选所有选项
4. ✅ 点击"**添加**"

🔟 重新发布

1. 🚀 点击"**创建版本**"
2. 🔢 修改版本号
3. 📝 填写更新说明
4. 💾 点击"**保存**"并确认发布

1️⃣1️⃣ 测试机器人

🧪 测试流程:
├─ 在电脑上打开飞书
├─ 点击"开发者小助手"
├─ 点击"打开应用"按钮
└─ 给机器人发送一条消息

> 💡 看到提示消息不要担心,这是正常的验证流程:
> 1. 📋 复制消息中的最后一行验证码
> 2. 💻 来到SSH终端执行该命令
> 3. 💬 再次给机器人发送消息

🎉 **现在就可以正常对话了!**

🧩 第五步:安装Skill


1️⃣ 下载Skill

访问 [clawhub.ai](https://clawhub.ai) 🌐,从仓库中下载需要的Skill。

例如,下载"**自我进化**"(Self-improvement)Skill。

2️⃣ 安装Skill

下载完成后,直接将文件拖入飞书对话框,告诉OpenClaw安装这个Skill并配置好。

🎉 **这样一个Skill就安装完成了!**


🔄 拓展讲解:阿里云百炼多模型切换


1️⃣ 查看配置说明

来到阿里云百炼平台,找到OpenClaw对接说明文档。https://bailian.console.aliyun.com/cn-beijing/?tab=doc#/doc/?type=model&url=3023085

2️⃣ 编辑配置文件

下载配置文件:
打开SSH管理工具
打开root/.openclaw/这个目录
下载openclaw.json配置文件
复制一份留作备用
使用代码编辑工具(例如:vscode)
将阿里云百炼提供的字段合并设置

3️⃣ 切换模型

在SSH中打开OpenClaw的配置文件,找到"**primary**"字段,将后面的模型ID修改成你想使用的ID,保存退出。
4️⃣ 重启Gateway

openclaw gateway restart

5️⃣ 验证切换

再次来到飞书对话框,询问当前模型,可以看到模型已经切换完成了。

📝 总结


以上就是完整的OpenClaw部署教程:

| 步骤 | 内容 | 状态 |
|:---:|:---|:---:|
| 1 | 🚀 安装Debian系统 | ✅ |
| 2 | ⚙️ 配置Debian系统 | ✅ |
| 3 | 🦞 安装配置OpenClaw | ✅ |
| 4 | 💬 配置飞书机器人 | ✅ |
| 5 | 🧩 安装Skill | ✅ |
| 拓展 | 🔄 多模型切换 | ✅ |

从系统安装到飞书对接,再到Skill安装和模型切换,希望能帮到你!