- الرئيسية
- حاوية التطوير
- الإعدادات
الإعدادات
تتواجد جميع الإعدادات في ملف .env في جذر المشروع. هذا الملف مُستثنى في gitignore — ولن يتم تضمينه أبداً في الإيداعات.
متغيرات البيئة
Section titled “متغيرات البيئة”مزود الذكاء الاصطناعي
Section titled “مزود الذكاء الاصطناعي”تدعم الحاوية وضعين للمصادقة حصريين بشكل متبادل (حسب الأولوية):
- وكيل LiteLLM — عيّن
LITELLM_BASE_URLوLITELLM_API_KEYللتوجيه عبر وكيل LiteLLM (انظر أدناه). - وضع OAuth — عيّن
CLAUDE_CODE_OAUTH_TOKENفقط (انظر أدناه).
لا تجمع بين الوضعين — استخدم وضعاً واحداً فقط.
Claude Max (OAuth)
Section titled “Claude Max (OAuth)”| المتغير | الوصف | مثال |
|---|---|---|
CLAUDE_CODE_OAUTH_TOKEN | رمز OAuth من اشتراك Claude Max | sk-ant-oat01-... |
عند تعيينه، يقوم Claude Code بالمصادقة مباشرة مع Anthropic باستخدام OAuth — دون الحاجة إلى مفتاح API أو وكيل. احصل على الرمز من إعدادات Claude Code أو وحدة تحكم Anthropic.
وكيل LiteLLM
Section titled “وكيل LiteLLM”إذا كان وكيل LiteLLM (أو غيره) يتحدث بالفعل واجهة Anthropic Messages API الأصلية — بما في ذلك web_search، والبث، واستخدام الأدوات — عيّن LITELLM_BASE_URL إلى نطاق الوكيل. تستنتج الحاوية تلقائياً عناوين URL الخاصة بالمزود:
- نقطة نهاية Anthropic ←
${LITELLM_BASE_URL}/anthropic(يستخدمها Claude Code) - نقطة نهاية متوافقة مع OpenAI ←
${LITELLM_BASE_URL}/openai/v1
| المتغير | الوصف | مثال |
|---|---|---|
LITELLM_BASE_URL | نطاق وكيل LiteLLM (بدون لاحقة مسار) | https://litellm.example.com |
LITELLM_API_KEY | مفتاح API لمصادقة الوكيل | your-api-key أو القيمة الافتراضية litellm-proxy |
يحتاج المستخدمون فقط إلى تعيين النطاق — تُضاف لاحقات مسارات المزود تلقائياً.
عند التشغيل، يستنتج نص نقطة الدخول ANTHROPIC_API_KEY من LITELLM_API_KEY حتى يتمكن Claude Code من استهلاك بيانات اعتماد الوكيل دون الحاجة إلى متغير منفصل يواجه المستخدم.
أسماء النماذج لا يُعاد تعيينها في هذا الوضع. يرسل Claude Code معرفات النماذج القياسية (مثل claude-sonnet-4-6) ويقوم LiteLLM بتوجيهها إلى الواجهة الخلفية المُعدّة لديك.
التحقق من شهادات TLS
Section titled “التحقق من شهادات TLS”بشكل افتراضي، يتحقق Node.js من شهادات TLS لجميع اتصالات HTTPS. إذا كان مزود API الخاص بك يستخدم شهادة موقعة ذاتياً (شائع مع وكلاء Open WebUI أو LiteLLM الداخليين)، يمكنك تعطيل التحقق بإضافة هذا إلى ملف .env:
NODE_TLS_REJECT_UNAUTHORIZED=0هذا غير مُوصى به للاستخدام في بيئة الإنتاج. عيّن هذا فقط عندما تثق بمسار الشبكة بين الحاوية ونقطة نهاية API.
وكلاء البرمجة بالذكاء الاصطناعي
Section titled “وكلاء البرمجة بالذكاء الاصطناعي”تتضمن الحاوية عدة وكلاء برمجة بالذكاء الاصطناعي بالإضافة إلى Claude Code:
| الوكيل | الأمر | المزود |
|---|---|---|
| Codex | codex | متوافق مع OpenAI |
| Pi | pi | متعدد المزودين (يُعدّ عند التشغيل) |
| Oh-My-Pi | omp | متعدد المزودين (يُعدّ عند التشغيل) |
يتم تثبيت Pi و Oh-My-Pi كحزم npm عامة. أما Codex فهو ملف تنفيذي مستقل يُحدّث نفسه تلقائياً عند التشغيل.
العرض عن بُعد (noVNC)
Section titled “العرض عن بُعد (noVNC)”تشغّل الحاوية حزمة عرض افتراضية لمراقبة والتفاعل مع المتصفحات ذات الواجهة الرسومية. انظر العرض عن بُعد (noVNC) للحصول على تعليمات الاتصال ومتغيرات البيئة (ENABLE_VNC، VNC_RESOLUTION، DISPLAY، NOVNC_HOST_PORT).
Chrome DevTools MCP
Section titled “Chrome DevTools MCP”تتضمن الحاوية خادم Chrome DevTools MCP مُعدّ مسبقاً لأتمتة المتصفح بدون واجهة رسومية. يمكن لـ Claude Code التنقل في صفحات الويب، والتقاط لقطات شاشة، وفحص DOM دون أي إعداد إضافي. انظر Chrome DevTools MCP للتفاصيل.
| المتغير | الوصف | كيفية التعيين |
|---|---|---|
GIT_AUTHOR_NAME | الاسم لإيداعات git | git config user.name |
GIT_AUTHOR_EMAIL | البريد الإلكتروني لإيداعات git | git config user.email |
إذا كان git مُعدّاً على جهازك المضيف، يمكنك ملء القيمتين تلقائياً:
echo "GIT_AUTHOR_EMAIL=$(git config user.email)" >> .envecho "GIT_AUTHOR_NAME=\"$(git config user.name)\"" >> .env| المتغير | الوصف | كيفية التعيين |
|---|---|---|
SSH_PRIVATE_KEY | المفتاح الخاص المُرمّز بـ Base64 | base64 < ~/.ssh/id_ed25519 |
واجهة سطر أوامر GitHub
Section titled “واجهة سطر أوامر GitHub”| المتغير | الوصف | كيفية التعيين |
|---|---|---|
GH_TOKEN | رمز وصول شخصي لـ GitHub لواجهة gh CLI وgit عبر HTTPS | gh auth token (إذا كان gh مُثبتاً محلياً) |
عند تعيين GH_TOKEN في .env، تتم مصادقة واجهة gh CLI تلقائياً — دون الحاجة لتشغيل gh auth login. يُشغّل نص نقطة الدخول أيضاً gh auth setup-git، الذي يُعدّ مساعد بيانات اعتماد git بحيث تعمل عمليات git clone و git push عبر HTTPS دون مفاتيح SSH.
إذا كان gh مُثبتاً ومُصادقاً عليه على جهازك المضيف، استخرج الرمز مباشرة:
echo "GH_TOKEN=$(gh auth token)" >> .envوإلا، أنشئ رمز وصول شخصي وأضفه يدوياً. تعمل كل من الرموز الدقيقة (مُوصى بها) والرموز الكلاسيكية. تتيح لك الرموز الدقيقة تحديد نطاق الوصول لمستودعات معينة. تتطلب الرموز الكلاسيكية نطاق repo للوصول إلى المستودعات الخاصة.
للتحقق من المصادقة داخل الحاوية:
gh auth statusكيفية تثبيت الأدوات
Section titled “كيفية تثبيت الأدوات”يتم تثبيت كل بيئة تشغيل لغة، وواجهة سطر أوامر، وأداة مباشرة في Dockerfile عند وقت بناء الصورة. تُنشر الصورة المبنية مسبقاً إلى ghcr.io/f5-sales-demo/devcontainer:latest مع كل دفع إلى main، لذا لا يحتاج معظم المستخدمين أبداً إلى البناء محلياً.
تشغيل docker compose up -d يسحب الصورة المبنية مسبقاً تلقائياً. للبناء محلياً بعد تخصيص Dockerfile، مرّر ملف البناء صراحة:
docker compose -f docker-compose.yml -f docker-compose.build.yml up -d --buildانظر التطوير المحلي للتفاصيل.
تشغيل podman-compose up -d يسحب الصورة المبنية مسبقاً تلقائياً. للبناء محلياً بعد تخصيص Dockerfile، مرّر ملف البناء صراحة:
podman-compose -f docker-compose.yml -f docker-compose.build.yml up -d --buildانظر التطوير المحلي للتفاصيل.
يستخدم Dockerfile بناء من مرحلتين مُحسّن للتخزين المؤقت لطبقات Docker. انظر التطوير المحلي — بنية البناء ذات المرحلتين للحصول على التفصيل الكامل للطبقات وتفاصيل ذاكرة التخزين المؤقت للبناء.
وعي Claude Code بالأدوات
Section titled “وعي Claude Code بالأدوات”تتضمن الحاوية إعدادات مدمجة تمنع Claude Code من الخلط بين أسماء الأدوات. يتم تثبيت الوعي بالأدوات في مستويين من الذاكرة كدفاع متعمق:
- السياسة المُدارة (
/etc/claude-code/CLAUDE.md) — تُثبّت عند وقت بناء Docker. هذا هو المستوى الأعلى أولوية في تسلسل ذاكرة Claude Code ويُحمّل دائماً، حتى عند وجود ملفCLAUDE.mdكبير للمشروع في دليل العمل. - ذاكرة المستخدم (
~/.claude/CLAUDE.md) — تُزرع بواسطة نص نقطة الدخول عند أول تشغيل. توفر طبقة احتياطية ونسخة مرئية وقابلة للتخصيص للمستخدمين.
أولوية مستويات الذاكرة
Section titled “أولوية مستويات الذاكرة”يُحمّل Claude Code التعليمات من مستويات ذاكرة متعددة (من الأعلى إلى الأدنى أولوية):
- السياسة المُدارة (
/etc/claude-code/) — تُحمّل دائماً، ولا يمكن استبعادها - ذاكرة المشروع (
./CLAUDE.md) — تُحمّل لكل دليل مشروع - ذاكرة المستخدم (
~/.claude/CLAUDE.md) — تُحمّل عالمياً لجميع الجلسات - الذاكرة المحلية (
./CLAUDE.local.md) — تجاوزات شخصية لكل مشروع
بدون مستوى السياسة المُدارة، يمكن أن يُخفّض الوعي بالأدوات في ذاكرة المستخدم أولويته عند التنافس مع ملف CLAUDE.md كبير على مستوى المشروع، مما يتسبب في فقدان Claude لوعيه بأسماء أدواته بنمط PascalCase. يضمن المستوى المُدار أن الوعي بالأدوات يُحمّل دائماً بالأولوية القصوى.
الاختبار الذاتي
Section titled “الاختبار الذاتي”شغّل الاختبار الذاتي المدمج للتحقق من الإعدادات:
claude-self-testيتحقق هذا من أن جميع ملفات الإعدادات في مكانها وتحتوي على مراجع الأدوات المتوقعة.
إضافة الأدوات
Section titled “إضافة الأدوات”لإضافة أدوات إلى الصورة، عدّل Dockerfile وأعد البناء محلياً. انظر التطوير المحلي — إضافة الأدوات للحصول على تعليمات إضافة حزم APT، وأدوات npm، وأدوات pip، وتنزيلات الملفات التنفيذية.
إضافات VS Code
Section titled “إضافات VS Code”تُعدّ الإضافات في .devcontainer/devcontainer.json تحت customizations.vscode.extensions وتُثبّت تلقائياً عند الفتح في VS Code.
استمرارية البيانات
Section titled “استمرارية البيانات”تتواجد جميع البيانات في وحدات تخزين مُسمّاة — لا يتم تحميل أي أدلة من المضيف:
| وحدة التخزين | نقطة التحميل | المحتويات |
|---|---|---|
workspace | /workspace | مستودعاتك المستنسخة وملفات المشروع |
home | /home/vscode | سجل الأوامر، وإعدادات الأدوات، والذاكرة المؤقتة، ومفاتيح SSH |
تستمر كلتاهما عبر إعادة تشغيل الحاوية وإعادة بنائها. شغّل docker compose pull لجلب أحدث صورة مبنية مسبقاً قبل إعادة التشغيل.
| الإجراء | البيانات |
|---|---|
docker compose down | محفوظة |
docker compose down -v | محذوفة |
تستمر كلتاهما عبر إعادة تشغيل الحاوية وإعادة بنائها. شغّل podman-compose pull لجلب أحدث صورة مبنية مسبقاً قبل إعادة التشغيل.
| الإجراء | البيانات |
|---|---|
podman-compose down | محفوظة |
podman-compose down -v | محذوفة |
تعيين المنافذ
Section titled “تعيين المنافذ”| المضيف | الحاوية | الخدمة |
|---|---|---|
127.0.0.1:${NOVNC_HOST_PORT:-6080} | 6080 | عرض noVNC عن بُعد (localhost فقط، يمكن التجاوز بـ NOVNC_HOST_PORT) |
المنافذ مرتبطة بـ 127.0.0.1 بحيث تكون متاحة فقط من جهازك، وليس من الشبكة.