mcpField
O
openclaw-deploy

openclaw-deploy

github.com/majiayu000クラウド・DevOps28873 回インストール今日更新
リポジトリ

openclaw-deploy について

リモートの Linux サーバーに OpenClaw をデプロイするスキルです。モデルやチャットチャンネルを設定する運用作業向けに、環境確認、設定、ゲートウェイ起動、接続検証を扱います。

主な機能

  1. 01サーバーのリソースと環境を確認
  2. 02Node.js と OpenClaw をインストール
  3. 03モデル設定を書き込みゲートウェイを起動
  4. 04Telegram、Discord、Feishu を設定
  5. 05チャンネル接続を検証しペアリングを処理

活用シーン

  1. 01リモート Linux サーバーへの OpenClaw 導入
  2. 02OpenClaw の AI モデル設定
  3. 03Telegram、Discord、Feishu Bot の接続
  4. 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 つの質問を同時に行います。

  1. SSH 接続情報(header: "SSH 连接")
    • コンテキストに応じて選択肢を動的に生成します(以前に使用したサーバーなど)。フォールバックの選択肢は「その他のサーバー」です。
  2. AI モデル(header: "AI 模型")
    • 智谱 GLM-5(国内製、プロキシ不要)
    • DeepSeek(国内製、プロキシ不要)
    • OpenAI GPT-4o(プロキシまたは海外サーバーが必要)
    • Anthropic Claude(プロキシまたは海外サーバーが必要)
  3. チャットチャンネル(header: "聊天频道")
    • Telegram(Bot Token が必要、中国本土ではプロキシが必要)
    • Discord(Bot Token が必要)
    • 飞书(Bot Token が必要)
    • 今は設定しない
  4. ブラウザー操作(header: "浏览器")
    • 有効化(Bot がブラウザーを操作して検索、スクリーンショット、フォーム入力を実行できます)
    • 今は設定しない
第二ラウンド(第一ラウンドの結果に応じた追加質問):
  • ユーザーが API Key を提供していない場合 → API Key を質問します。
  • チャットチャンネルを選択した場合 → Bot Token を質問します。
    • ユーザーが Bot Token を持っていない場合は、作成方法を案内します。
      • Telegram:@BotFather を探し、/newbot を送信します。
      • Discord:discord.com/developers にアクセスし、Application → Bot を作成します。
      • 飞书:open.feishu.cn にアクセスし、カスタムアプリを作成します。
  • Telegram/Discord を選択し、サーバーが中国本土にある場合 → プロキシアドレスを質問します。
    • 自動判定:サーバーに SSH 接続後、curl -s --connect-timeout 3 https://api.telegram.org が失敗した場合、プロキシが必要と判断します。

第二ステップ:環境チェック

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_IDbaseUrl
zhipuglm-5https://open.bigmodel.cn/api/paas/v4
openaigpt-4ohttps://api.openai.com/v1
deepseekdeepseek-chathttps://api.deepseek.com/v1
kimimoonshot-v1-128khttps://api.moonshot.cn/v1
qwenqwen-maxhttps://dashscope.aliyuncs.com/compatible-mode/v1
anthropicclaude-sonnet-4-5-20250929https://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 に移動しました。移動した例、コマンド一覧、チェックリスト、プラットフォームの詳細、または実装テンプレートが必要なタスクでは、このリファレンスを読み込んでください。

コメント