はじめに
環境変数は OpenClaw を設定する重要な方法の一つで、特にコンテナ化デプロイや CI/CD のシーンに適しています。本記事では、OpenClaw がサポートするすべての環境変数を包括的に列挙し、実際の使用例をご紹介します。
コア環境変数
以下は OpenClaw の実行に必須または一般的に使用されるコア環境変数です。
| 変数名 | 説明 | デフォルト値 | 例 |
|---|---|---|---|
OPENCLAW_PORT |
ゲートウェイのリスンポート | 18789 |
8080 |
OPENCLAW_CONFIG |
設定ファイルのパス | ~/.config/openclaw/openclaw.json5 |
/etc/openclaw/config.json5 |
OPENCLAW_LOG_LEVEL |
ログレベル | info |
debug |
OPENCLAW_DATA_DIR |
データ保存ディレクトリ | ~/.local/share/openclaw |
/var/lib/openclaw |
OPENCLAW_HOST |
リスンアドレス | 0.0.0.0 |
127.0.0.1 |
NODE_ENV |
Node.js 実行モード | production |
development |
設定例
# リスンポートとログレベルを変更
export OPENCLAW_PORT=8080
export OPENCLAW_LOG_LEVEL=debug
openclaw up
~/.bashrc で永続化する場合:
# OpenClaw 環境変数
export OPENCLAW_PORT=18789
export OPENCLAW_LOG_LEVEL=info
export OPENCLAW_HOST=0.0.0.0
API キー環境変数
各 AI モデルの API キーは環境変数で設定でき、機密情報を設定ファイルに書き込むことを避けられます。
| 変数名 | 対応モデル | 例 |
|---|---|---|
OPENAI_API_KEY |
OpenAI (GPT-4o など) | sk-proj-xxxx |
ANTHROPIC_API_KEY |
Claude | sk-ant-api03-xxxx |
GOOGLE_API_KEY |
Gemini | AIzaSyxxxx |
OPENROUTER_API_KEY |
OpenRouter | sk-or-v1-xxxx |
OLLAMA_BASE_URL |
Ollama ローカルモデル | http://localhost:11434 |
複数キーの設定
一部のモデルでは複数の API キーの設定をサポートしており、OpenClaw が自動的にローテーションで使用します。
# カンマ区切りで複数のキーを指定
export OPENAI_API_KEY="sk-proj-key1,sk-proj-key2,sk-proj-key3"
API ベース URL のオーバーライド
サードパーティプロキシや自己デプロイの API エンドポイントを使用する場合:
| 変数名 | 説明 | 例 |
|---|---|---|
OPENAI_BASE_URL |
OpenAI API アドレス | https://api.your-proxy.com/v1 |
ANTHROPIC_BASE_URL |
Claude API アドレス | https://claude-proxy.example.com |
GOOGLE_BASE_URL |
Gemini API アドレス | https://gemini.your-proxy.com |
# サードパーティの OpenAI プロキシを使用
export OPENAI_API_KEY="sk-custom-key"
export OPENAI_BASE_URL="https://api.your-proxy.com/v1"
openclaw up
チャンネル関連の環境変数
| 変数名 | 説明 |
|---|---|
WHATSAPP_ENABLED |
WhatsApp を有効化するかどうか (true/false) |
WHATSAPP_SESSION_DIR |
セッションデータの保存ディレクトリ |
Telegram
| 変数名 | 説明 |
|---|---|
TELEGRAM_BOT_TOKEN |
Telegram Bot Token |
TELEGRAM_ALLOWED_USERS |
許可するユーザー ID リスト(カンマ区切り) |
Discord
| 変数名 | 説明 |
|---|---|
DISCORD_BOT_TOKEN |
Discord Bot Token |
DISCORD_CLIENT_ID |
Discord アプリケーション Client ID |
Slack
| 変数名 | 説明 |
|---|---|
SLACK_BOT_TOKEN |
Slack Bot Token (xoxb-xxxx) |
SLACK_APP_TOKEN |
Slack App-Level Token (xapp-xxxx) |
SLACK_SIGNING_SECRET |
Slack 署名シークレット |
LINE
| 変数名 | 説明 |
|---|---|
LINE_CHANNEL_SECRET |
LINE Channel Secret |
LINE_CHANNEL_ACCESS_TOKEN |
LINE Channel Access Token |
Microsoft Teams
| 変数名 | 説明 |
|---|---|
TEAMS_APP_ID |
Azure AD アプリケーション ID |
TEAMS_APP_PASSWORD |
Azure AD アプリケーションパスワード |
プロキシ関連の環境変数
| 変数名 | 説明 | 例 |
|---|---|---|
HTTP_PROXY |
HTTP プロキシ | http://127.0.0.1:7890 |
HTTPS_PROXY |
HTTPS プロキシ | http://127.0.0.1:7890 |
ALL_PROXY |
全プロトコルプロキシ | socks5://127.0.0.1:1080 |
NO_PROXY |
プロキシを経由しないアドレス | localhost,127.0.0.1 |
セキュリティ関連の環境変数
| 変数名 | 説明 | デフォルト値 |
|---|---|---|
OPENCLAW_DASHBOARD_PASSWORD |
Dashboard アクセスパスワード | なし |
OPENCLAW_API_SECRET |
内部 API 認証キー | 自動生成 |
OPENCLAW_CORS_ORIGIN |
許可するクロスオリジン | * |
OPENCLAW_RATE_LIMIT |
1分あたりのリクエスト制限 | 60 |
# セキュリティ関連の変数を設定
export OPENCLAW_DASHBOARD_PASSWORD="your-strong-password"
export OPENCLAW_CORS_ORIGIN="https://your-domain.com"
export OPENCLAW_RATE_LIMIT=30
.env ファイルのサポート
OpenClaw は .env ファイルから環境変数を自動的に読み取ることができ、毎回手動でエクスポートする手間を省けます。
.env ファイルの作成
OpenClaw の設定ディレクトリに .env ファイルを作成します。
# ~/.config/openclaw/.env
# コア設定
OPENCLAW_PORT=18789
OPENCLAW_LOG_LEVEL=info
NODE_ENV=production
# API キー
OPENAI_API_KEY=sk-proj-your-key-here
ANTHROPIC_API_KEY=sk-ant-api03-your-key-here
GOOGLE_API_KEY=AIzaSy-your-key-here
# チャンネルキー
TELEGRAM_BOT_TOKEN=123456789:ABCdefGhIjKlMnOpQrStUvWxYz
DISCORD_BOT_TOKEN=MTIzNDU2Nzg5.your-discord-token
# プロキシ
HTTPS_PROXY=http://127.0.0.1:7890
# セキュリティ
OPENCLAW_DASHBOARD_PASSWORD=my-secure-password
.env ファイルの優先順位
環境変数の優先順位は高い順に以下の通りです。
- システム環境変数 -
exportで設定した変数 - .env ファイル - 設定ディレクトリの
.envファイル - 設定ファイル -
openclaw.json5の設定 - デフォルト値 - OpenClaw の組み込みデフォルト値
注意事項
# .env ファイルでは export キーワードは不要です
# 正しい書き方
OPENCLAW_PORT=8080
# 誤った書き方
export OPENCLAW_PORT=8080
# 値にスペースが含まれる場合はクォーテーションが必要
OPENCLAW_DASHBOARD_PASSWORD="my password with spaces"
# コメントをサポート
# これはコメントです
# 変数参照はサポートされません
# 以下の書き方は機能しません
# OPENCLAW_DATA_DIR=$HOME/.openclaw
Docker 環境変数
Docker で OpenClaw をデプロイする場合、環境変数が推奨される設定方法です。
docker run 方式
docker run -d \
--name openclaw \
-p 18789:18789 \
-e OPENAI_API_KEY="sk-proj-xxxx" \
-e ANTHROPIC_API_KEY="sk-ant-xxxx" \
-e TELEGRAM_BOT_TOKEN="your-token" \
-e OPENCLAW_LOG_LEVEL="info" \
-e OPENCLAW_DASHBOARD_PASSWORD="secure-pwd" \
openclaw/openclaw:latest
docker-compose 方式
# docker-compose.yml
services:
openclaw:
image: openclaw/openclaw:latest
ports:
- "18789:18789"
environment:
- OPENCLAW_PORT=18789
- OPENCLAW_LOG_LEVEL=info
- NODE_ENV=production
- OPENAI_API_KEY=sk-proj-xxxx
- ANTHROPIC_API_KEY=sk-ant-xxxx
- TELEGRAM_BOT_TOKEN=your-token
volumes:
- openclaw-data:/data
volumes:
openclaw-data:
env_file の使用
より安全な方法として、キーを別の env ファイルに保存します。
# docker-compose.yml
services:
openclaw:
image: openclaw/openclaw:latest
ports:
- "18789:18789"
env_file:
- .env.openclaw
volumes:
- openclaw-data:/data
# .env.openclaw
OPENAI_API_KEY=sk-proj-xxxx
ANTHROPIC_API_KEY=sk-ant-xxxx
TELEGRAM_BOT_TOKEN=your-token
OPENCLAW_DASHBOARD_PASSWORD=secure-pwd
.env.openclaw を .gitignore と .dockerignore に追加することを忘れないでください。
現在の環境変数の確認
openclaw config get コマンドで現在有効な設定(環境変数からの設定を含む)を確認できます。
# すべての設定を表示
openclaw config get
# 特定の設定項目を表示
openclaw config get port
openclaw config get log.level
# すべての API キーを表示(マスク表示)
openclaw config get models
まとめ
環境変数は OpenClaw を設定する柔軟な方法です。いくつかの使用上のアドバイスをご紹介します。
- 機密情報(API キー、パスワード)は環境変数または
.envファイルを優先的に使用し、設定ファイルには書き込まないでください - Docker デプロイでは
env_fileで変数を一元管理し、ファイルがバージョン管理にコミットされないようにしてください - 開発環境では
.envファイルで管理しやすくし、本番環境ではシステムレベルの環境変数またはシークレット管理サービスを使用してください - 優先順位のルールを覚えておきましょう:システム環境変数 >
.envファイル > 設定ファイル > デフォルト値