OpenClaw 博客助手搭建指南

在 CentOS 8 上部署 OpenClaw 并迁移到非 root 用户

本文记录了在 CentOS 8 服务器上部署 OpenClaw 博客助手的完整过程,包括环境准备、安装 Node.js、创建专用用户、配置 systemd 服务等关键步骤。

环境准备

1. 检查系统环境

cat /etc/centos-release
# CentOS Linux release 8.x

2. 更新系统包

sudo dnf update -y

安装 Node.js

OpenClaw 需要 Node.js 环境,推荐使用 Node.js 18+ 版本。

使用 nvm 安装 Node.js

# 安装 nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash

# 加载 nvm
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"

# 安装 Node.js
nvm install 18
nvm use 18
nvm alias default 18

# 验证安装
node --version  # v18.x.x
npm --version

安装 OpenClaw

方式一:npm 全局安装

npm install -g openclaw

方式二:使用官方安装脚本

curl -sL https://get.openclaw.ai | sh

创建专用用户

出于安全考虑,不建议以 root 用户运行 OpenClaw。

1. 创建 openclaw 用户

sudo useradd -m -s /bin/bash openclaw
sudo passwd openclaw  # 设置密码

2. 配置 sudo 权限(可选)

sudo visudo
# 添加以下行允许 openclaw 用户执行特定命令
openclaw ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart openclaw

迁移 OpenClaw 数据到新用户

1. 创建数据目录

sudo mkdir -p /var/lib/openclaw
sudo chown openclaw:openclaw /var/lib/openclaw

2. 初始化工作区

sudo -u openclaw bash -c '
mkdir -p ~/workspace-blog
cd ~/workspace-blog
openclaw init
'

配置 systemd 服务

创建 systemd 服务文件以开机自启 OpenClaw:

sudo tee /etc/systemd/system/openclaw.service << 'EOF'
[Unit]
Description=OpenClaw Blog Assistant
After=network.target

[Service]
Type=simple
User=openclaw
WorkingDirectory=/var/lib/openclaw/workspace-blog
ExecStart=/usr/local/bin/openclaw gateway start
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target
EOF

管理服务

# 重新加载 systemd
sudo systemctl daemon-reload

# 启用服务
sudo systemctl enable openclaw

# 启动服务
sudo systemctl start openclaw

# 查看状态
sudo systemctl status openclaw

配置 Nginx 反向代理

1. 安装 Nginx

sudo dnf install -y nginx
sudo systemctl enable --now nginx

2. 配置反向代理

sudo tee /etc/nginx/conf.d/openclaw.conf << 'EOF'
server {
    listen 80;
    server_name your-domain.com;

    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_cache_bypass $http_upgrade;
    }
}
EOF

# 测试并重载 Nginx
sudo nginx -t
sudo systemctl reload nginx

配置防火墙

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

验证部署

# 检查 OpenClaw 服务状态
sudo systemctl status openclaw

# 检查端口监听
ss -tlnp | grep 3000

# 查看日志
sudo journalctl -u openclaw -f

常见问题排查

Q: 服务启动失败

检查日志:journalctl -u openclaw -n 50

Q: 端口被占用

sudo lsof -i :3000
sudo fuser -k 3000/tcp

Q: 权限问题

确保 /var/lib/openclaw 目录属于 openclaw 用户:

sudo chown -R openclaw:openclaw /var/lib/openclaw

总结

完成以上步骤后,你的 OpenClaw 博客助手应该已经正常运行。通过创建专用用户和配置 systemd 服务,可以确保 OpenClaw 以安全的方式持续运行。


本文基于实际部署经验总结,如有问题欢迎交流。

Powered by Hugo & Stack
使用 Hugo 构建
主题 StackJimmy 设计