openclaw-deploy について
リモートの Linux サーバーに OpenClaw をデプロイするスキルです。モデルやチャットチャンネルを設定する運用作業向けに、環境確認、設定、ゲートウェイ起動、接続検証を扱います。
主な機能
- 01サーバーのリソースと環境を確認
- 02Node.js と OpenClaw をインストール
- 03モデル設定を書き込みゲートウェイを起動
- 04Telegram、Discord、Feishu を設定
- 05チャンネル接続を検証しペアリングを処理
活用シーン
- 01リモート Linux サーバーへの OpenClaw 導入
- 02OpenClaw の AI モデル設定
- 03Telegram、Discord、Feishu Bot の接続
- 04ゲートウェイとチャンネルの接続確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ majiayu000/ spellbook --skill openclaw-deployインストール後、Claude Code で/openclaw-deployを入力して読み込まれたか確認します。
同梱ファイルreference/extended.md
詳細
OpenClaw のリモートワンクリックデプロイ
リモートの Linux サーバーに OpenClaw + AI モデル + チャットチャンネルを自動でデプロイします。
第零ステップ:初心者向けガイドの出力
skill の起動後、まず以下の準備リストを出力してください。ユーザーに必要なものを知らせてから、AskUserQuestion で情報を収集します。
# OpenClaw 一键部署
欢迎!部署前你需要准备以下东西:
| 序号 | 准备什么 | 说明 | 必需? |
|------|----------|------|--------|
| 1 | 一台 Linux 服务器 | 最低 1GB 内存 + 500MB 磁盘,支持 SSH 登录 | 必需 |
| 2 | SSH 免密登录 | 确保本机能 `ssh user@host` 直接连上 | 必需 |
| 3 | AI 模型 API Key | 智谱GLM / DeepSeek / OpenAI / Claude / Kimi / 通义 任选 | 必需 |
| 4 | 聊天频道 Bot Token | Telegram(@BotFather) 或 Discord 或 飞书,也可以暂不配 | 可选 |
| 5 | 代理地址 | 中国大陆服务器 + 海外频道(Telegram/Discord)时需要 | 视情况 |
| 6 | 浏览器控制 | 让 Bot 能操控浏览器搜索/截图/填表,需额外安装 Playwright | 可选 |
第一ステップ:情報の収集
AskUserQuestion で情報を収集します($ARGUMENTS で提供済みの項目はスキップします)。2回に分けて質問します。
第一ラウンド(必須 3 項目):
AskUserQuestion を使って、以下の 3 つの質問を同時に行います。
- SSH 接続情報(header: "SSH 连接")
- コンテキストに応じて選択肢を動的に生成します(以前に使用したサーバーなど)。フォールバックの選択肢は「その他のサーバー」です。
- AI モデル(header: "AI 模型")
- 智谱 GLM-5(国内製、プロキシ不要)
- DeepSeek(国内製、プロキシ不要)
- OpenAI GPT-4o(プロキシまたは海外サーバーが必要)
- Anthropic Claude(プロキシまたは海外サーバーが必要)
- チャットチャンネル(header: "聊天频道")
- Telegram(Bot Token が必要、中国本土ではプロキシが必要)
- Discord(Bot Token が必要)
- 飞书(Bot Token が必要)
- 今は設定しない
- ブラウザー操作(header: "浏览器")
- 有効化(Bot がブラウザーを操作して検索、スクリーンショット、フォーム入力を実行できます)
- 今は設定しない
第二ラウンド(第一ラウンドの結果に応じた追加質問):
- ユーザーが API Key を提供していない場合 → API Key を質問します。
- チャットチャンネルを選択した場合 → Bot Token を質問します。
- ユーザーが Bot Token を持っていない場合は、作成方法を案内します。
- Telegram:@BotFather を探し、
/newbotを送信します。 - Discord:discord.com/developers にアクセスし、Application → Bot を作成します。
- 飞书:open.feishu.cn にアクセスし、カスタムアプリを作成します。
- Telegram:@BotFather を探し、
- ユーザーが Bot Token を持っていない場合は、作成方法を案内します。
- Telegram/Discord を選択し、サーバーが中国本土にある場合 → プロキシアドレスを質問します。
- 自動判定:サーバーに SSH 接続後、
curl -s --connect-timeout 3 https://api.telegram.orgが失敗した場合、プロキシが必要と判断します。
- 自動判定:サーバーに SSH 接続後、
第二ステップ:環境チェック
SSH でサーバーに接続し、1 つのコマンドですべての情報を取得します。
ssh <SSH_ARGS> "echo '=== CPU ===' && nproc && echo '=== 内存 ===' && free -h && echo '=== 磁盘 ===' && df -h / && echo '=== 系统 ===' && uname -a && echo '=== Node.js ===' && node -v 2>/dev/null || echo '未安装' && echo '=== npm ===' && npm -v 2>/dev/null || echo '未安装' && echo '=== 包管理器 ===' && which pacman apt yum dnf 2>/dev/null && echo '=== OpenClaw ===' && openclaw --version 2>/dev/null || echo '未安装'"
最低要件:RAM 1GB + ディスク容量 500MB。要件を満たさない場合はユーザーに伝え、停止します。
第三ステップ:Node.js のインストール(未インストールの場合)
検出されたパッケージマネージャーに応じて実行します。
| パッケージマネージャー | コマンド |
|---|---|
| pacman (Arch) | pacman -S --noconfirm nodejs npm |
| apt (Debian/Ubuntu) | curl -fsSL https://deb.nodesource.com/setup_22.x | bash - && apt install -y nodejs |
| dnf (RHEL/Fedora) | dnf install -y nodejs npm |
| yum (CentOS) | curl -fsSL https://rpm.nodesource.com/setup_22.x | bash - && yum install -y nodejs |
インストール後に node -v && npm -v を実行し、Node.js が 22 以上であることを確認します。
第四ステップ:OpenClaw のインストール
curl -fsSL https://openclaw.ai/install.sh | bash
重要:インストールスクリプトは対話型のオンボーディングウィザードを起動しようとしますが、非 TTY 環境では
/dev/tty: No such device or addressエラーが発生します。これは正常です。OpenClaw 本体のインストールは成功しています。
確認:openclaw --version
第五ステップ:設定ファイルの書き込み
対話型ウィザードは使わず、~/.openclaw/openclaw.json に直接書き込みます。
モデル設定テンプレート
{
"models": {
"mode": "merge",
"providers": {
"<PROVIDER_NAME>": {
"baseUrl": "<BASE_URL>",
"apiKey": "<API_KEY>",
"api": "openai-completions",
"models": [
{
"id": "<MODEL_ID>",
"name": "<DISPLAY_NAME>",
"reasoning": false,
"input": ["text"],
"contextWindow": 128000,
"maxTokens": 32000
}
]
}
}
},
"agents": {
"defaults": {
"model": {
"primary": "<PROVIDER_NAME>/<MODEL_ID>"
},
"memorySearch": {
"enabled": false
}
}
},
"gateway": {
"mode": "local"
}
}
よく使われるモデルの参考情報
| Provider 名 | MODEL_ID | baseUrl |
|---|---|---|
| zhipu | glm-5 | https://open.bigmodel.cn/api/paas/v4 |
| openai | gpt-4o | https://api.openai.com/v1 |
| deepseek | deepseek-chat | https://api.deepseek.com/v1 |
| kimi | moonshot-v1-128k | https://api.moonshot.cn/v1 |
| qwen | qwen-max | https://dashscope.aliyuncs.com/compatible-mode/v1 |
| anthropic | claude-sonnet-4-5-20250929 | https://api.anthropic.com/v1 |
注意:Anthropic モデルの
apiフィールドは"openai-completions"ではなく"anthropic-messages"にします。
書き込み後、すぐにアクセス権を修正します。
mkdir -p ~/.openclaw/agents/main/sessions ~/.openclaw/credentials
chmod 700 ~/.openclaw
chmod 600 ~/.openclaw/openclaw.json
第六ステップ:ゲートウェイの起動(systemd)
順番に実行します。
# 安装 systemd 服务
openclaw gateway install
# 启用 linger(退出 SSH 后服务不会停)
loginctl enable-linger $(whoami)
# 启动
export XDG_RUNTIME_DIR=/run/user/$(id -u)
systemctl --user start openclaw-gateway.service
3 秒待ってから確認します。
systemctl --user status openclaw-gateway.service | head -10
Active: active (running) と表示されていることを確認します。
device token のローテーション
ゲートウェイの初回起動後、operator token をローテーションして、認証に関する問題が発生する可能性を解消します。
# 先获取 device ID
DEVICE_ID=$(openclaw devices list 2>&1 | grep -oP '[a-f0-9]{40,}')
# 轮换 token
openclaw devices rotate --role operator --device "$DEVICE_ID"
第七ステップ:チャットチャンネルの設定(必要な場合)
ユーザーが選択したチャンネルに応じた設定を実行します。
7a. チャンネルの設定
Telegram:
openclaw config set channels.telegram.enabled true
openclaw config set channels.telegram.botToken '<BOT_TOKEN>'
openclaw config set channels.telegram.dmPolicy pairing
Discord:
openclaw config set channels.discord.enabled true
openclaw config set channels.discord.botToken '<BOT_TOKEN>'
openclaw config set channels.discord.dmPolicy pairing
飞书:
openclaw config set channels.feishu.enabled true
openclaw config set channels.feishu.token '<BOT_TOKEN>'
openclaw config set channels.feishu.dmPolicy pairing
7b. プロキシの設定(中国本土のサーバー + 海外チャンネルの場合は必須)
対象となるケース:サーバーが中国本土にあり、チャンネルが Telegram または Discord(海外 API へのアクセスが必要)の場合です。 飞书は国内サービスのため、プロキシは不要です。
まず、プロキシが必要かどうかをテストします(自動判定)。
# Telegram
curl -s --connect-timeout 3 https://api.telegram.org/bot<BOT_TOKEN>/getMe
# Discord
curl -s --connect-timeout 3 https://discord.com/api/v10/users/@me -H "Authorization: Bot <BOT_TOKEN>"
タイムアウトまたは失敗した場合は、プロキシが必要です。ユーザーが提供したプロキシを使ってテストします。
export http_proxy='<PROXY_URL>' && export https_proxy='<PROXY_URL>'
curl -s --connect-timeout 5 https://api.telegram.org/bot<BOT_TOKEN>/getMe
成功が返されることを確認したら、systemd override に書き込みます。
重要:proxy.conf にはすべての環境変数(プロキシ + no_proxy + DISPLAY)を一度に書き込む必要があります。 複数回に分けて追記しないでください。後続のブラウザ設定の手順でも、このファイルを変更する必要はありません。
mkdir -p ~/.config/systemd/user/openclaw-gateway.service.d
cat > ~/.config/systemd/user/openclaw-gateway.service.d/proxy.conf << EOF
[Service]
Environment="http_proxy=<PROXY_URL>"
Environment="https_proxy=<PROXY_URL>"
Environment="no_proxy=127.0.0.1,localhost,::1"
Environment="NO_PROXY=127.0.0.1,localhost,::1"
Environment="DISPLAY=:99"
EOF
no_proxyが必要な理由:設定しないと、OpenClaw からローカルの Chrome CDP ポートへの接続もプロキシ経由になり、 ブラウザーの起動には成功しても OpenClaw が検出できず、Failed to start Chrome CDPエラーが発生します。 現時点でブラウザーを設定しない場合でも、後から有効化した際に問題が起きないようno_proxyを追加してください。
DISPLAY=:99が必要な理由:ブラウザーにはサーバー上のディスプレイが必要です。headless モードでも必要です。 ブラウザーを設定しない場合、この変数があっても問題ありません。
7c. ゲートウェイの再起動(必ず systemd 経由で実行してください!)
重要な落とし穴:
openclaw config setは内部のホットリスタートを実行しますが、ホットリスタートでは systemd の環境変数(プロキシ)が読み込まれません。 チャンネルやプロキシに関する設定をすべて変更した後、必ずsystemctl --user restartで再起動してください。
export XDG_RUNTIME_DIR=/run/user/$(id -u)
systemctl --user daemon-reload
systemctl --user restart openclaw-gateway.service
7d. チャンネル接続の確認
5 秒待ってから実行します。
openclaw channels status
出力に enabled, configured, running が含まれていることを確認します。
fetch failed または Network request failed が表示された場合:プロキシが有効になっていません。proxy.conf を確認し、systemctl 経由で再起動したことを確認してください。
7e. ユーザーのペアリング
ユーザーに、該当チャンネルで Bot へメッセージを 1 件送信してもらいます。Bot がペアリングコードを返信します。
重要な落とし穴:ペアリングコマンドは
openclaw pairing approve <channel> <CODE>です。openclaw devices approve <CODE>ではありません(こちらはunknown requestIdエラーになります)。
# 查看待配对列表(必须指定频道名)
openclaw pairing list <channel>
# 例如:openclaw pairing list telegram
# 批准配对
openclaw pairing approve <channel> <PAIRING_CODE>
# 例如:openclaw pairing approve telegram BAEWET79
ペアリングコードの有効期限は約 1 時間です。期限切れの場合は、ユーザーにもう一度メッセージを送信してもらうと、新しいコードが生成されます。
拡張リファレンス
## 第八步:配置浏览器控制(可选) から始まる詳細な資料は、このスキルを簡潔に保つため、reference/extended.md に移動しました。移動した例、コマンド一覧、チェックリスト、プラットフォームの詳細、または実装テンプレートが必要なタスクでは、このリファレンスを読み込んでください。