المتغيرات البيئية 🔐

كيفية تكوين OpenClaw باستخدام متغيرات البيئة.

🔑 الأساسيات

  • المتغيرات البيئية تُستخدم للأسرار والإعدادات
  • يتم تحميلها من .env files
  • لا تُرسل الأسرار أبداً إلى Git
  • استخدم .env.example للقوالب

ترتيب التحميل

يبحث OpenClaw عن متغيرات البيئة بالترتيب التالي:

  1. متغيرات البيئة للنظام (أعلى أولوية)
  2. ~/.openclaw/.env (إعدادات المستخدم العامة)
  3. .env.local (تجاوزات محلية)
  4. .env (إعدادات المشروع)
  5. openclaw.json (قيم افتراضية)

⚠️ ملحوظة مهمة

المتغيرات المُحددة في طبقة أعلى تُتجاوز الطبقات الأقل. استخدم .env.local للتطوير المحلي فقط.

المتغيرات الشائعة

مفاتيح API المُوفِّرين

# Anthropic (Claude)
ANTHROPIC_API_KEY=sk-ant-...

# OpenAI (GPT)
OPENAI_API_KEY=sk-...

# OpenRouter (موفر موحد)
OPENROUTER_API_KEY=sk-or-v1-...

# Brave Search (للأداة web_search)
BRAVE_SEARCH_API_KEY=BSA...

بيانات اعتماد القنوات

# Telegram Bot
TELEGRAM_BOT_TOKEN=123456789:ABC...

# Discord Bot
DISCORD_BOT_TOKEN=MTk4...

# Slack App
SLACK_BOT_TOKEN=xoxb-...
SLACK_SIGNING_SECRET=...
SLACK_APP_TOKEN=xapp-...

إعدادات Gateway

# منفذ Gateway
OPENCLAW_PORT=18789

# بيئة التشغيل
NODE_ENV=production  # أو development

# مستوى السجل
LOG_LEVEL=info  # debug, info, warn, error

# مسار التكوين المخصص
OPENCLAW_CONFIG=~/.openclaw/openclaw.json

# مسار Workspace
OPENCLAW_WORKSPACE=~/.openclaw/workspace

إنشاء ملف .env

1. قالب أساسي

# .env.example (ارتكب هذا إلى Git)
# انسخ إلى .env واملأ القيم

# === AI Model Provider ===
ANTHROPIC_API_KEY=
OPENAI_API_KEY=

# === Message Channels ===
TELEGRAM_BOT_TOKEN=
DISCORD_BOT_TOKEN=

# === Tools ===
BRAVE_SEARCH_API_KEY=

# === Gateway ===
OPENCLAW_PORT=18789
LOG_LEVEL=info

2. إنشاء ملف البيئة الخاص بك

# انسخ القالب
cp .env.example .env

# حرّر بالقيم الحقيقية
nano .env

# تحقق من التحميل
openclaw status

3. أضف إلى .gitignore

# .gitignore
.env
.env.local
.env.*.local
*.key
credentials/

أمان المتغيرات

✅ افعل

  • احفظ .env في .gitignore
  • استخدم .env.example للتوثيق
  • قم بتدوير المفاتيح بانتظام
  • استخدم أذونات ملفات محدودة: chmod 600 .env

❌ لا تفعل

  • لا ترتكب .env إلى Git أبداً
  • لا تضع أسراراً في الكود المصدري
  • لا تشارك ملفات .env مباشرة
  • لا تسجل الأسرار في السجلات

مدراء الأسرار

للإنتاج

في بيئات الإنتاج، استخدم مدراء الأسرار:

  • Docker Secrets لحاويات Docker
  • Kubernetes Secrets لـ K8s
  • AWS Secrets Manager
  • HashiCorp Vault
  • Azure Key Vault

مثال: Docker Secrets

# إنشاء secret
echo "sk-ant-..." | docker secret create anthropic_key -

# استخدم في docker-compose.yml
services:
  openclaw:
    secrets:
      - anthropic_key
    environment:
      ANTHROPIC_API_KEY_FILE: /run/secrets/anthropic_key

secrets:
  anthropic_key:
    external: true

التحقق من المتغيرات

عرض المتغيرات المُحملة

# عرض التكوين (الأسرار مخفية)
openclaw status --all

# التحقق من متغير معين
node -e "console.log(process.env.ANTHROPIC_API_KEY ? 'SET' : 'NOT SET')"

اختبار الاتصال بـ API

# اختبار مفتاح Anthropic
openclaw models scan

# اختبار قناة
openclaw channels status telegram

مشاكل شائعة

المتغير لا يُحمّل

# تحقق من موقع الملف
ls -la .env

# تحقق من الصلاحيات
ls -l .env  # يجب أن يكون readable

# أعد تشغيل Gateway
openclaw gateway restart

خطأ في التحليل

# ✅ صحيح
API_KEY=sk-ant-abc123

# ❌ خطأ - لا spaces حول =
API_KEY = sk-ant-abc123

# ✅ مع مسافات في القيمة، استخدم quotes
PROMPT="This is a prompt"

# ✅ متعدد الأسطر
MESSAGE="Line 1
Line 2
Line 3"

أفضل الممارسات

  • استخدم أسماء وصفية: ANTHROPIC_API_KEY أفضل من API_KEY
  • قم بتجميع بواسطة الفئة: استخدم تعليقات في .env
  • وثّق جميع المتغيرات: في .env.example
  • استخدم القيم الافتراضية: في openclaw.json
  • قم بتدوير الأسرار: غيّر المفاتيح بانتظام