首页 教程 分类 Skills下载 关于
ZH EN JA KO
基础配置

OpenClaw环境变量配置大全

· 12 分钟

前言

环境变量是配置 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 基础地址覆盖

如果你使用第三方代理或自部署的 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

变量名 说明
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 每分钟请求限制 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 文件优先级

环境变量的优先级从高到低:

  1. 系统环境变量 - 通过 export 设置的变量
  2. .env 文件 - 配置目录下的 .env 文件
  3. 配置文件 - openclaw.json5 中的配置
  4. 默认值 - 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 文件 > 配置文件 > 默认值
OpenClaw 是开源免费的个人AI助手,支持 WhatsApp、Telegram、Discord 等多平台接入