Moltbot Linux 部署
在 Linux 上将 Moltbot 作为 systemd 服务运行,实现可靠的持续运行。
太长不看
# 安装
git clone https://github.com/moltbot/moltbot.git
cd moltbot && pnpm install
# 配置(创建配置和工作空间)
pnpm moltbot setup
# 启用 lingering(退出登录后保持服务运行)
sudo loginctl enable-linger $USER
# 启动
systemctl --user start moltbot
systemctl --user enable moltbot环境要求
- Linux (Ubuntu 22.04+, Debian 12+, 或类似版本)
- Node.js >= 22
- pnpm
- systemd (大多数发行版自带)
安装
1. 安装 Node.js
# 使用 NodeSource(推荐)
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
sudo apt-get install -y nodejs
# 安装 pnpm
npm install -g pnpm2. 克隆并构建
git clone https://github.com/moltbot/moltbot.git
cd moltbot
pnpm install3. 运行配置
pnpm moltbot setup这会创建:
~/.clawdbot/moltbot.json- 你的配置~/clawd- 你的工作空间目录
4. 连接渠道
pnpm moltbot channels login按照提示认证你的消息平台。
Systemd 用户服务
Moltbot 默认安装为 systemd 用户服务。这意味着:
- 在你的用户账户下运行
- 凭证保存在你的主目录中
- 使用 systemctl --user 控制
启用 Lingering
默认情况下,systemd 会在你退出登录时停止用户服务。要保持 Moltbot 运行:
sudo loginctl enable-linger $USER重要提示:如果不启用 lingering,断开 SSH 时 Moltbot 会停止!
服务命令
# 启动服务
systemctl --user start moltbot
# 停止服务
systemctl --user stop moltbot
# 重启服务
systemctl --user restart moltbot
# 启用开机自启
systemctl --user enable moltbot
# 检查状态
systemctl --user status moltbot
# 查看日志
journalctl --user -u moltbot -f系统服务(多用户/服务器)
对于持续运行的服务器或多用户配置,使用系统服务:
创建系统服务文件
sudo nano /etc/systemd/system/moltbot.service[Unit]
Description=Moltbot Gateway
After=network.target
[Service]
Type=simple
User=moltbot
Group=moltbot
WorkingDirectory=/opt/moltbot
ExecStart=/usr/bin/node /opt/moltbot/dist/gateway/index.js
Restart=always
RestartSec=10
Environment=NODE_ENV=production
[Install]
WantedBy=multi-user.target创建服务用户
sudo useradd -r -s /bin/false moltbot
sudo mkdir -p /opt/moltbot
sudo chown moltbot:moltbot /opt/moltbot安装并启动
# 复制文件
sudo cp -r . /opt/moltbot/
sudo chown -R moltbot:moltbot /opt/moltbot
# 启用并启动
sudo systemctl daemon-reload
sudo systemctl enable moltbot
sudo systemctl start moltbot配置
配置文件位置
- 用户服务:
~/.clawdbot/moltbot.json - 系统服务:
/opt/moltbot/.clawdbot/moltbot.json或/etc/moltbot/config.json
配置示例
{
"workspace": "~/clawd",
"gateway": {
"port": 18789,
"host": "127.0.0.1"
},
"channels": {
"telegram": {
"enabled": true,
"tokenFile": "~/.clawdbot/credentials/telegram-token"
}
}
}文件位置
| 内容 | 用户服务 | 系统服务 |
|---|---|---|
| 配置 | ~/.clawdbot/moltbot.json | /etc/moltbot/config.json |
| 凭证 | ~/.clawdbot/credentials/ | /var/lib/moltbot/credentials/ |
| 会话 | ~/.clawdbot/agents/ | /var/lib/moltbot/agents/ |
| 日志 | /tmp/moltbot/ or journalctl | /var/log/moltbot/ |
| 工作空间 | ~/clawd | /var/lib/moltbot/workspace/ |
防火墙配置
如果使用防火墙,允许 Gateway 端口:
# UFW
sudo ufw allow 18789/tcp
# firewalld
sudo firewall-cmd --add-port=18789/tcp --permanent
sudo firewall-cmd --reload除非你在不同机器上运行界面,否则 Gateway 只需要本地访问。
健康检查
验证你的安装:
pnpm moltbot health或创建一个简单的健康检查脚本:
#!/bin/bash
curl -s http://127.0.0.1:18789/health || exit 1更新
用户服务
cd ~/moltbot
git pull
pnpm install
systemctl --user restart moltbot系统服务
cd /opt/moltbot
sudo -u moltbot git pull
sudo -u moltbot pnpm install
sudo systemctl restart moltbot常见问题
退出登录时服务停止
sudo loginctl enable-linger $USER凭证权限被拒绝
ls -la ~/.clawdbot/
# 应由你的用户拥有
# 如需修复:
chown -R $USER:$USER ~/.clawdbot/服务无法启动
journalctl --user -u moltbot -n 50常见原因:
- 找不到 Node.js(检查 PATH)
- 端口已被占用
- 配置文件语法错误
内存不足
在服务中添加内存限制:
[Service]
MemoryMax=512M