इसे छोड़कर कंटेंट पर जाएं

कॉन्फ़िगरेशन

सभी कॉन्फ़िगरेशन प्रोजेक्ट रूट में .env फ़ाइल में होता है। यह फ़ाइल gitignored है — यह कभी कमिट नहीं होती।

एनवायरनमेंट वेरिएबल्स

Section titled “एनवायरनमेंट वेरिएबल्स”

कंटेनर दो परस्पर अनन्य प्रमाणीकरण मोड्स का समर्थन करता है (प्राथमिकता क्रम में):

  • LiteLLM प्रॉक्सी — LiteLLM प्रॉक्सी के माध्यम से रूट करने के लिए LITELLM_BASE_URL और LITELLM_API_KEY सेट करें (नीचे देखें)।
  • OAuth मोड — केवल CLAUDE_CODE_OAUTH_TOKEN सेट करें (नीचे देखें)।

मोड्स को मिलाएं नहीं — बिल्कुल एक का उपयोग करें।

वेरिएबलविवरणउदाहरण
CLAUDE_CODE_OAUTH_TOKENClaude Max सब्सक्रिप्शन से OAuth टोकनsk-ant-oat01-...

सेट होने पर, Claude Code सीधे Anthropic के साथ OAuth का उपयोग करके प्रमाणित करता है — कोई API कुंजी या प्रॉक्सी की आवश्यकता नहीं। अपना टोकन Claude Code सेटिंग्स या Anthropic कंसोल से प्राप्त करें।

यदि आपकी 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 कोडिंग एजेंट्स शामिल हैं:

एजेंटकमांडप्रोवाइडर
CodexcodexOpenAI-संगत
Pipiमल्टी-प्रोवाइडर (रनटाइम पर कॉन्फ़िगर करें)
Oh-My-Piompमल्टी-प्रोवाइडर (रनटाइम पर कॉन्फ़िगर करें)

Pi और Oh-My-Pi वैश्विक npm पैकेज के रूप में इंस्टॉल हैं। Codex एक स्टैंडअलोन बाइनरी है जो रनटाइम पर स्वयं-अपडेट होती है।

रिमोट डिस्प्ले (noVNC)

Section titled “रिमोट डिस्प्ले (noVNC)”

कंटेनर हेडेड ब्राउज़र देखने और इंटरैक्ट करने के लिए एक वर्चुअल डिस्प्ले स्टैक चलाता है। कनेक्शन निर्देशों और एनवायरनमेंट वेरिएबल्स (ENABLE_VNC, VNC_RESOLUTION, DISPLAY, NOVNC_HOST_PORT) के लिए रिमोट डिस्प्ले (noVNC) देखें।

कंटेनर में हेडलेस ब्राउज़र ऑटोमेशन के लिए पूर्व-कॉन्फ़िगर Chrome DevTools MCP सर्वर शामिल है। Claude Code बिना किसी अतिरिक्त सेटअप के वेब पेज नेविगेट कर सकता है, स्क्रीनशॉट ले सकता है, और DOM का निरीक्षण कर सकता है। विवरण के लिए Chrome DevTools MCP देखें।

वेरिएबलविवरणकैसे सेट करें
GIT_AUTHOR_NAMEgit कमिट्स के लिए नामgit config user.name
GIT_AUTHOR_EMAILgit कमिट्स के लिए ईमेलgit config user.email

यदि आपके होस्ट पर git कॉन्फ़िगर है, तो दोनों मान स्वचालित रूप से भरें:

Terminal window
echo "GIT_AUTHOR_EMAIL=$(git config user.email)" >> .env
echo "GIT_AUTHOR_NAME=\"$(git config user.name)\"" >> .env
वेरिएबलविवरणकैसे सेट करें
SSH_PRIVATE_KEYBase64-एन्कोडेड प्राइवेट कुंजीbase64 < ~/.ssh/id_ed25519
वेरिएबलविवरणकैसे सेट करें
GH_TOKENgh 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 आपकी होस्ट मशीन पर इंस्टॉल और प्रमाणित है, तो टोकन सीधे निकालें:

Terminal window
echo "GH_TOKEN=$(gh auth token)" >> .env

अन्यथा, पर्सनल एक्सेस टोकन बनाएं और इसे मैन्युअल रूप से जोड़ें। फ़ाइन-ग्रेन्ड टोकन (अनुशंसित) और क्लासिक टोकन दोनों काम करते हैं। फ़ाइन-ग्रेन्ड टोकन आपको विशिष्ट रिपॉज़िटरी तक एक्सेस को स्कोप करने देते हैं। क्लासिक टोकन को प्राइवेट रिपॉज़िटरी एक्सेस के लिए repo स्कोप की आवश्यकता होती है।

कंटेनर के अंदर प्रमाणीकरण सत्यापित करने के लिए:

Terminal window
gh auth status

टूल्स कैसे इंस्टॉल होते हैं

Section titled “टूल्स कैसे इंस्टॉल होते हैं”

प्रत्येक लैंग्वेज रनटाइम, CLI, और टूल इमेज बिल्ड समय पर सीधे Dockerfile में इंस्टॉल होता है। पूर्व-निर्मित इमेज main पर प्रत्येक पुश पर ghcr.io/f5-sales-demo/devcontainer:latest पर प्रकाशित होती है, इसलिए अधिकांश उपयोगकर्ताओं को कभी स्थानीय रूप से बिल्ड करने की आवश्यकता नहीं होती।

docker compose up -d चलाने से पूर्व-निर्मित इमेज स्वचालित रूप से पुल होती है। Dockerfile को कस्टमाइज़ करने के बाद स्थानीय रूप से बिल्ड करने के लिए, बिल्ड फ़ाइल स्पष्ट रूप से पास करें:

Terminal window
docker 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 कई मेमोरी स्तरों से निर्देश लोड करता है (सर्वोच्च से निम्नतम प्राथमिकता):

  1. प्रबंधित नीति (/etc/claude-code/) — हमेशा लोड, बाहर नहीं किया जा सकता
  2. प्रोजेक्ट मेमोरी (./CLAUDE.md) — प्रति प्रोजेक्ट डायरेक्टरी लोड
  3. उपयोगकर्ता मेमोरी (~/.claude/CLAUDE.md) — सभी सत्रों के लिए वैश्विक रूप से लोड
  4. स्थानीय मेमोरी (./CLAUDE.local.md) — व्यक्तिगत प्रति-प्रोजेक्ट ओवरराइड

प्रबंधित नीति स्तर के बिना, उपयोगकर्ता मेमोरी में टूल जागरूकता एक बड़ी प्रोजेक्ट-स्तरीय CLAUDE.md के साथ प्रतिस्पर्धा करते समय प्राथमिकता में कम हो सकती है, जिससे Claude अपने PascalCase टूल नामों की जागरूकता खो देता है। प्रबंधित स्तर गारंटी देता है कि टूल जागरूकता हमेशा सर्वोच्च प्राथमिकता पर लोड होती है।

कॉन्फ़िगरेशन सत्यापित करने के लिए बिल्ट-इन स्व-परीक्षण चलाएं:

Terminal window
claude-self-test

यह जांचता है कि सभी कॉन्फ़िगरेशन फ़ाइलें अपनी जगह हैं और उनमें अपेक्षित टूल संदर्भ हैं।

इमेज में टूल्स जोड़ने के लिए, Dockerfile संपादित करें और स्थानीय रूप से पुनः बिल्ड करें। APT पैकेज, npm टूल्स, pip टूल्स, और बाइनरी डाउनलोड जोड़ने के निर्देशों के लिए स्थानीय विकास — टूल्स जोड़ना देखें।

एक्सटेंशन .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हटाया गया
होस्टकंटेनरसेवा
127.0.0.1:${NOVNC_HOST_PORT:-6080}6080noVNC रिमोट डिस्प्ले (केवल localhost, NOVNC_HOST_PORT से ओवरराइड करें)

पोर्ट्स 127.0.0.1 से बाइंड होते हैं ताकि वे केवल आपकी मशीन से एक्सेस हो सकें, नेटवर्क से नहीं।