创建OpenClaw模板


模板制作脚本

在 Ubuntu 22.04 内执行,只安装环境,不做任何配置:

#!/bin/bash
# openclaw-template-setup.sh
# 用途:制作 OpenClaw 模板镜像,仅安装环境,不执行 onboard
set -e

echo "==> [1/5] 更新系统"
sudo apt update && sudo apt upgrade -y

echo "==> [2/5] 安装基础依赖"
sudo apt install -y curl git build-essential

echo "==> [3/5] 安装 Node.js 20"
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt-get install -y nodejs

echo "==> [4/5] 配置 npm 国内镜像"
npm config set registry https://registry.npmmirror.com

echo "==> [5/5] 安装 OpenClaw(跳过 onboard)"
curl -fsSL https://openclaw.ai/install.sh | bash -s -- --no-onboard

# 让当前 shell 立即感知新 PATH,无需手动拼接路径
export PATH="$(npm config get prefix)/bin:$PATH"

echo "==> 验证安装"
openclaw --version

echo "==> 清理"
sudo apt clean
sudo rm -rf /var/lib/apt/lists/*
history -c && sudo truncate -s 0 /root/.bash_history

echo "✅ 模板制作完成,请关机后制作快照。"

用户初始化脚本

根据模板创建虚拟机后,用户首次执行:

#!/bin/bash
# openclaw-init.sh
# 用途:新虚拟机首次初始化,配置模型和 channel
set -e

echo "==> [1/3] 检查 OpenClaw 是否已安装"
if ! command -v openclaw &> /dev/null; then
    echo "❌ 未检测到 openclaw,请确认模板是否正确制作"
    exit 1
fi

echo "OpenClaw 版本:$(openclaw --version)"

echo "==> [2/3] 运行配置向导(配置模型、channel、daemon)"
openclaw onboard --install-daemon

echo "==> [3/3] 验证服务状态"
openclaw status
openclaw doctor

echo "✅ 初始化完成!"
echo ""
echo "常用命令:"
echo "  openclaw status        # 查看运行状态"
echo "  openclaw logs --follow # 实时日志"
echo "  openclaw dashboard     # 打开 Web 控制台"

流程说明

模板机                          用户虚拟机
─────────────────────           ──────────────────────
apt 更新 & 安装依赖              
配置 npm mirror                 
安装 Node.js 20                 
安装 openclaw --no-onboard      
清理缓存 & 历史               
关机 → 制作快照/模板            
                         ↓ 克隆模板
                                执行 openclaw-init.sh
                                  └─ openclaw onboard --install-daemon
                                  └─ 配置模型 / channel
                                  └─ 启动 daemon 服务

注意: npm config set registry 是针对当前用户生效的,模板里设置的是制作模板时的用户(如 administrator)。如果用户克隆后使用相同账号,mirror 配置会继承;如果换了用户,需在初始化脚本里再执行一次 npm config set registry https://registry.npmmirror.com