- होम
- डेव कंटेनर
- कॉन्फ़िगरेशन
कॉन्फ़िगरेशन
सभी कॉन्फ़िगरेशन प्रोजेक्ट रूट में .env फ़ाइल में होता है। यह फ़ाइल gitignored है — यह कभी कमिट नहीं होती।
एनवायरनमेंट वेरिएबल्स
Section titled “एनवायरनमेंट वेरिएबल्स”AI प्रोवाइडर
Section titled “AI प्रोवाइडर”कंटेनर दो परस्पर अनन्य प्रमाणीकरण मोड्स का समर्थन करता है (प्राथमिकता क्रम में):
- LiteLLM प्रॉक्सी — LiteLLM प्रॉक्सी के माध्यम से रूट करने के लिए
LITELLM_BASE_URLऔरLITELLM_API_KEYसेट करें (नीचे देखें)। - OAuth मोड — केवल
CLAUDE_CODE_OAUTH_TOKENसेट करें (नीचे देखें)।
मोड्स को मिलाएं नहीं — बिल्कुल एक का उपयोग करें।
Claude Max (OAuth)
Section titled “Claude Max (OAuth)”| वेरिएबल | विवरण | उदाहरण |
|---|---|---|
CLAUDE_CODE_OAUTH_TOKEN | Claude Max सब्सक्रिप्शन से OAuth टोकन | sk-ant-oat01-... |
सेट होने पर, Claude Code सीधे Anthropic के साथ OAuth का उपयोग करके प्रमाणित करता है — कोई API कुंजी या प्रॉक्सी की आवश्यकता नहीं। अपना टोकन Claude Code सेटिंग्स या Anthropic कंसोल से प्राप्त करें।
LiteLLM प्रॉक्सी
Section titled “LiteLLM प्रॉक्सी”यदि आपकी LiteLLM (या अन्य) प्रॉक्सी पहले से नेटिव Anthropic Messages API बोलती है — जिसमें web_search, स्ट्रीमिंग, और टूल उपयोग शामिल है — तो LITELLM_BASE_URL को प्रॉक्सी डोमेन पर सेट करें। कंटेनर स्वचालित रूप से प्रोवाइडर-विशिष्ट URLs प्राप्त करता है:
- 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 |
उपयोगकर्ताओं को केवल डोमेन सेट करना होगा — प्रोवाइडर पाथ सफ़िक्स स्वचालित रूप से जोड़े जाते हैं।
रनटाइम पर, एंट्रीपॉइंट LITELLM_API_KEY से ANTHROPIC_API_KEY प्राप्त करता है ताकि Claude Code अलग उपयोगकर्ता-सामना वाले वेरिएबल की आवश्यकता के बिना प्रॉक्सी क्रेडेंशियल का उपयोग कर सके।
इस मोड में मॉडल नाम रीमैप नहीं किए जाते। Claude Code अपने मानक मॉडल पहचानकर्ता (जैसे claude-sonnet-4-6) भेजता है और LiteLLM उन्हें आपके कॉन्फ़िगर किए गए बैकएंड पर रूट करता है।
TLS प्रमाणपत्र सत्यापन
Section titled “TLS प्रमाणपत्र सत्यापन”डिफ़ॉल्ट रूप से, Node.js सभी HTTPS कनेक्शन के लिए TLS प्रमाणपत्रों का सत्यापन करता है। यदि आपका अपस्ट्रीम API प्रोवाइडर स्व-हस्ताक्षरित प्रमाणपत्र का उपयोग करता है (आंतरिक Open WebUI या LiteLLM प्रॉक्सी के साथ सामान्य), तो आप अपनी .env फ़ाइल में यह जोड़कर सत्यापन अक्षम कर सकते हैं:
NODE_TLS_REJECT_UNAUTHORIZED=0यह प्रोडक्शन उपयोग के लिए अनुशंसित नहीं है। इसे केवल तभी सेट करें जब आप कंटेनर और आपके API एंडपॉइंट के बीच नेटवर्क पथ पर भरोसा करते हैं।
AI कोडिंग एजेंट्स
Section titled “AI कोडिंग एजेंट्स”कंटेनर में Claude Code के अतिरिक्त कई AI कोडिंग एजेंट्स शामिल हैं:
| एजेंट | कमांड | प्रोवाइडर |
|---|---|---|
| Codex | codex | OpenAI-संगत |
| Pi | pi | मल्टी-प्रोवाइडर (रनटाइम पर कॉन्फ़िगर करें) |
| Oh-My-Pi | omp | मल्टी-प्रोवाइडर (रनटाइम पर कॉन्फ़िगर करें) |
Pi और Oh-My-Pi वैश्विक npm पैकेज के रूप में इंस्टॉल हैं। Codex एक स्टैंडअलोन बाइनरी है जो रनटाइम पर स्वयं-अपडेट होती है।
रिमोट डिस्प्ले (noVNC)
Section titled “रिमोट डिस्प्ले (noVNC)”कंटेनर हेडेड ब्राउज़र देखने और इंटरैक्ट करने के लिए एक वर्चुअल डिस्प्ले स्टैक चलाता है। कनेक्शन निर्देशों और एनवायरनमेंट वेरिएबल्स (ENABLE_VNC, VNC_RESOLUTION, DISPLAY, NOVNC_HOST_PORT) के लिए रिमोट डिस्प्ले (noVNC) देखें।
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 CLI
Section titled “GitHub CLI”| वेरिएबल | विवरण | कैसे सेट करें |
|---|---|---|
GH_TOKEN | gh CLI और HTTPS git के लिए GitHub पर्सनल एक्सेस टोकन | gh auth token (यदि gh स्थानीय रूप से इंस्टॉल है) |
जब .env में GH_TOKEN सेट होता है, तो gh CLI स्वचालित रूप से प्रमाणित होता है — gh auth login चलाने की आवश्यकता नहीं। एंट्रीपॉइंट gh auth setup-git भी चलाता है, जो git क्रेडेंशियल हेल्पर कॉन्फ़िगर करता है ताकि HTTPS git clone और git push SSH कुंजियों के बिना काम करें।
यदि gh आपकी होस्ट मशीन पर इंस्टॉल और प्रमाणित है, तो टोकन सीधे निकालें:
echo "GH_TOKEN=$(gh auth token)" >> .envअन्यथा, पर्सनल एक्सेस टोकन बनाएं और इसे मैन्युअल रूप से जोड़ें। फ़ाइन-ग्रेन्ड टोकन (अनुशंसित) और क्लासिक टोकन दोनों काम करते हैं। फ़ाइन-ग्रेन्ड टोकन आपको विशिष्ट रिपॉज़िटरी तक एक्सेस को स्कोप करने देते हैं। क्लासिक टोकन को प्राइवेट रिपॉज़िटरी एक्सेस के लिए repo स्कोप की आवश्यकता होती है।
कंटेनर के अंदर प्रमाणीकरण सत्यापित करने के लिए:
gh auth statusटूल्स कैसे इंस्टॉल होते हैं
Section titled “टूल्स कैसे इंस्टॉल होते हैं”प्रत्येक लैंग्वेज रनटाइम, CLI, और टूल इमेज बिल्ड समय पर सीधे Dockerfile में इंस्टॉल होता है। पूर्व-निर्मित इमेज main पर प्रत्येक पुश पर ghcr.io/f5-sales-demo/devcontainer:latest पर प्रकाशित होती है, इसलिए अधिकांश उपयोगकर्ताओं को कभी स्थानीय रूप से बिल्ड करने की आवश्यकता नहीं होती।
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 से बाइंड होते हैं ताकि वे केवल आपकी मशीन से एक्सेस हो सकें, नेटवर्क से नहीं।