mcpField
N
nemoclaw-setup

nemoclaw-setup

github.com/jezwebクラウド・DevOps1.1k891 回インストール3 週間前に更新
リポジトリ

nemoclaw-setup について

nemoclaw-setup は、Linux で NVIDIA NemoClaw を導入・設定するためのガイドです。サンドボックス化された AI エージェント環境を構築する人向けに、初期設定、Web UI、リモートアクセス、カスタムスキルを説明します。

主な機能

  1. 01NemoClaw と OpenShell の確認・導入
  2. 02Docker、cgroup、NVIDIA API key の設定
  3. 03オンボーディングウィザードでのサンドボックス作成
  4. 04Web UI のポートフォワーディング設定
  5. 05Cloudflare Tunnel によるリモートアクセス設定
  6. 06カスタムスキルの導入とワークスペース設定

活用シーン

  1. 01Linux ホストでの NemoClaw サンドボックス構築
  2. 02Web UI またはターミナルからのサンドボックス接続
  3. 03NemoClaw Web UI のリモートアクセス設定
  4. 04Docker、ポート転送、ゲートウェイの問題調査

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/jezweb/claude-skills --skill nemoclaw-setup

インストール後、Claude Code で/nemoclaw-setupを入力して読み込まれたか確認します。

詳細

NemoClaw のセットアップ

NVIDIA NemoClaw をインストールします。NemoClaw は、Landlock + seccomp + ネットワーク名前空間による分離機能を備えた、OpenClaw ベースのサンドボックス型 AI エージェントプラットフォームです。k3s(OpenShell)を介して Docker 内で実行されます。

利用できる機能

  • Web UI とターミナル CLI を備えたサンドボックス型 AI エージェント
  • NVIDIA Nemotron モデルを利用(クラウドまたはローカル)
  • ネットワークポリシーによって制御される外部サービスへのアクセス
  • Cloudflare Tunnel を利用したオプションのリモートアクセス

前提条件

要件確認方法インストール方法
Linux(Ubuntu 22.04 以降)uname -a—
Dockerdocker pssudo apt install docker.io
Node.js 20 以降(22 を推奨)node --versionnvm install 22
NVIDIA GPU(任意ですが推奨)nvidia-smi—
NVIDIA API キー—https://build.nvidia.com/settings/api-keys

ワークフロー

ステップ 1:事前確認
# Check Docker
docker ps 2>/dev/null || echo "Docker not running or no access"

# Check Node.js
node --version

# Check if already installed
which nemoclaw && nemoclaw --version
which openshell && openshell --version

すでに nemoclaw がインストールされている場合は、ステップ 4 に進んでください。

ステップ 2:NemoClaw をインストール
curl -fsSL https://nvidia.com/nemoclaw.sh | bash

これにより、npm を使って NemoClaw と OpenClaw がグローバルにインストールされます(~/.npm-global/bin/ 内)。

インストーラーが Node.js を見つけられない場合は、先にインストールしてください。

curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
sudo apt install -y nodejs
ステップ 3:OpenShell をインストール
curl -LsSf https://raw.githubusercontent.com/NVIDIA/OpenShell/main/install.sh | sh

~/.local/bin/openshell にインストールされます。

ステップ 4:Docker の権限と cgroup を修正

Docker グループ — ユーザーは docker グループに所属している必要があります。

sudo usermod -aG docker $USER
newgrp docker
# or log out and back in

cgroup v2 の修正 — Docker 内で k3s を実行するために必要です。

# Check if needed
grep cgroup2 /proc/filesystems && echo "cgroup v2 detected — fix needed"

# Apply fix (needs sudo)
sudo $HOME/.npm-global/bin/nemoclaw setup-spark

/etc/docker/daemon.json に "default-cgroupns-mode": "host" を追加し、Docker を再起動します。

重要:nemoclaw setup-spark コマンドでは NVIDIA API キーも求められます。あらかじめ用意してください(nvapi- で始まります)。https://build.nvidia.com/settings/api-keys から取得できます。

ステップ 5:初期設定を実行
PATH=$HOME/.npm-global/bin:$HOME/.local/bin:$PATH nemoclaw onboard

対話型ウィザードでは、次の操作を行います。

  1. Docker と OpenShell を確認します
  2. OpenShell ゲートウェイを起動します(Docker 内の k3s)
  3. サンドボックス名を尋ねられます。claw または任意の名前を使用してください
  4. NVIDIA API キーを設定します
  5. 推論を設定します(クラウド API 経由の Nemotron 3 Super 120B)
  6. サンドボックス内で OpenClaw を起動します
  7. ネットワークポリシーのプリセットを適用します。必要なものを選択してください

よくあるポート競合:ポート 8080 が使用中の場合は、プロセスを探して終了してください。

fuser -k 8080/tcp
ステップ 6:確認
# Check sandbox is running
PATH=$HOME/.npm-global/bin:$HOME/.local/bin:$PATH nemoclaw claw status

# Connect via terminal
PATH=$HOME/.npm-global/bin:$HOME/.local/bin:$PATH nemoclaw claw connect
ステップ 7:Web UI へのアクセスを設定

Web UI はサンドボックス内で実行されるため、ポートフォワードが必要です。

PATH=$HOME/.npm-global/bin:$HOME/.local/bin:$PATH openshell forward start 18789 claw

次に、http://127.0.0.1:18789/ を開きます。

既知のバグ(OpenClaw ≤ v2026.3.11):「device identity required」エラーが発生します。回避策として、ゲートウェイトークンを URL に追加してください。

# Get the token
ssh -F /tmp/nemoclaw-ssh-config openshell-claw \
  "python3 -c \"import json; print(json.load(open('/sandbox/.openclaw/openclaw.json'))['gateway']['auth']['token'])\""

次に、http://127.0.0.1:18789/#token=<gateway-token> にアクセスします。

修正方法:OpenClaw v2026.3.12 以降に更新してください(下記の「更新」セクションを参照)。

ステップ 8:ポートフォワードを永続化

ヘルスチェック付きのキープアライブスクリプトを作成します。

cat > ~/.local/bin/nemoclaw-keepalive.sh << 'KEEPALIVE'
#!/bin/bash
export PATH="$HOME/.npm-global/bin:$HOME/.local/bin:/usr/local/bin:/usr/bin:/bin"
cleanup() { kill %1 2>/dev/null; exit 0; }
trap cleanup SIGTERM SIGINT
while true; do
    fuser -k 18789/tcp 2>/dev/null; sleep 1
    openshell forward start 18789 claw &
    FORWARD_PID=$!; sleep 3
    while kill -0 $FORWARD_PID 2>/dev/null; do
        if ! curl -sf -o /dev/null --connect-timeout 3 http://127.0.0.1:18789/ 2>/dev/null; then
            echo "$(date): Health check failed, restarting..."
            kill $FORWARD_PID 2>/dev/null; wait $FORWARD_PID 2>/dev/null; break
        fi
        sleep 10
    done
    echo "$(date): Forward died, restarting in 3s..."; sleep 3
done
KEEPALIVE
chmod +x ~/.local/bin/nemoclaw-keepalive.sh

systemd サービスを作成します。

sudo tee /etc/systemd/system/nemoclaw-forward.service << 'SERVICE'
[Unit]
Description=NemoClaw Port Forward with Health Check
After=docker.service
Requires=docker.service

[Service]
Type=simple
User=$USER
Group=docker
Environment=PATH=/home/$USER/.npm-global/bin:/home/$USER/.local/bin:/usr/local/bin:/usr/bin:/bin
ExecStart=/home/$USER/.local/bin/nemoclaw-keepalive.sh
Restart=always
RestartSec=5
KillMode=control-group

[Install]
WantedBy=multi-user.target
SERVICE

sudo systemctl daemon-reload
sudo systemctl enable nemoclaw-forward
sudo systemctl start nemoclaw-forward
ステップ 9:Cloudflare Tunnel 経由のリモートアクセス(任意)

すでに Cloudflare Tunnel を実行している場合は、NemoClaw を追加します。

DNS ルートを追加:

cloudflared tunnel route dns <tunnel-name> nemoclaw.<domain>

トンネル設定を更新(/etc/cloudflared/config.yml):

  - hostname: nemoclaw.<domain>
    service: http://localhost:18789
    originRequest:
      httpHostHeader: "127.0.0.1:18789"

トンネルを再起動:

sudo systemctl restart cloudflared

サンドボックスの許可オリジンを更新 — サンドボックスに SSH で接続し、ドメインを追加します。

openshell sandbox ssh-config claw > /tmp/nemoclaw-ssh-config

ssh -F /tmp/nemoclaw-ssh-config openshell-claw 'python3 -c "
import json
with open(\"/sandbox/.openclaw/openclaw.json\") as f:
    config = json.load(f)
config[\"gateway\"][\"controlUi\"][\"allowedOrigins\"].append(\"https://nemoclaw.<domain>\")
config[\"gateway\"][\"trustedProxies\"] = [\"127.0.0.1\", \"::1\", \"172.0.0.0/8\", \"10.0.0.0/8\"]
config[\"gateway\"][\"allowRealIpFallback\"] = True
with open(\"/sandbox/.openclaw/openclaw.json\", \"w\") as f:
    json.dump(config, f, indent=2)
print(\"Done. Token:\", config[\"gateway\"][\"auth\"][\"token\"])
"'

Cloudflare Access で保護 — Zero Trust ダッシュボードの Access アプリケーションにホスト名を追加します。

アクセス URL:https://nemoclaw.<domain>/#token=<gateway-token>

ステップ 10:カスタムスキルをインストール

スキルは /sandbox/.openclaw/skills/<name>/SKILL.md にある Markdown ファイルです。サンドボックスに SSH で接続して作成します。

ssh -F /tmp/nemoclaw-ssh-config openshell-claw
mkdir -p /sandbox/.openclaw/skills/my-skill
cat > /sandbox/.openclaw/skills/my-skill/SKILL.md << 'EOF'
---
name: my-skill
description: What this skill does.
tools: [exec, read, write]
---
# My Skill
Instructions for the agent...
EOF

openclaw skills list で確認します。

ステップ 11:ワークスペースを設定

エージェントがあなたについて把握できるように、ワークスペースファイルを更新します。

  • /sandbox/.openclaw/workspace/USER.md — プロフィールと設定
  • /sandbox/.openclaw/workspace/TOOLS.md — 利用可能なツールとアクセス権
  • /sandbox/.openclaw/workspace/SOUL.md — エージェントの個性と振る舞い

OpenClaw の更新

サンドボックスには、インストール時の OpenClaw が含まれています。更新するには、次の手順を実行します。

# 1. Update host-side packages
npm install -g openclaw@latest

# 2. Destroy and recreate sandbox
nemoclaw claw destroy
nemoclaw onboard

# 3. Reconfigure remote access (Step 9) and skills (Step 10)

注:サンドボックスのネットワークポリシーにより、サンドボックス内では npm/PyPI がブロックされます。更新するには再ビルドする必要があります。

トラブルシューティング

問題原因対処方法
Docker is not runningDocker サービスが停止しているか、ユーザーが docker グループに属していませんsudo systemctl start docker を実行してから newgrp docker を実行します
cgroup v2 detectedDocker が cgroupns=host 用に設定されていませんsudo nemoclaw setup-spark
ポート 8080 が使用中ですそのポートで別のサービスが実行されていますfuser -k 8080/tcp
nemoclaw: command not foundPATH に含まれていませんPATH=$HOME/.npm-global/bin:$HOME/.local/bin:$PATH
device identity requiredOpenClaw ≤ v2026.3.11 のバグですURL に #token=<gateway-token> を追加するか、v2026.3.12 以降に更新します
gateway token mismatchサンドボックスの再構築後にトークンが変更されましたサンドボックス設定から新しいトークンを取得します
too many failed auth attempts古いトークンでの試行によりレート制限されていますゲートウェイを再起動します:ssh -F /tmp/nemoclaw-ssh-config openshell-claw 'pkill -f "openclaw gateway"; sleep 2; openclaw gateway &'
origin not allowedドメインが allowedOrigins に含まれていませんサンドボックス設定の gateway.controlUi.allowedOrigins に追加します
ポート 18789 が応答しませんSSH トンネルが切断されましたsudo systemctl restart nemoclaw-forward(13 秒以内に自動復旧します)
サンドボックス内で npm 403 Forbidden が発生しますネットワークポリシーが TLS をブロックしていますサンドボックス内にはパッケージをインストールできません。代わりに再構築してください
DNS ルートで Tunnel not found が発生しますCloudflare アカウントまたは証明書が誤っていますcloudflared tunnel list が証明書と一致することを確認します
Cloudflare でエラー 502 が発生しますトンネル接続が切断されましたsudo systemctl restart cloudflared
Cloudflare 経由でアセットが 404 になりますブラウザーがサブリクエストで認証されていませんCloudflare Access にログインした後、ハードリフレッシュします(Ctrl+Shift+R)

アーキテクチャ

Docker (openshell-cluster-<name>)
  └─ k3s cluster
      ├─ NVIDIA device plugin
      └─ OpenShell sandbox
          ├─ OpenClaw agent
          ├─ NemoClaw plugin
          ├─ Gateway (WebSocket + REST)
          └─ Workspace (SOUL.md, USER.md, TOOLS.md, skills/)

Port forward (systemd): localhost:18789 ←SSH tunnel→ sandbox:18789
Cloudflare Tunnel (optional): nemoclaw.domain → localhost:18789

参考資料

コメント