क्या Claude को self-host किया जा सकता है? पूरी सच्चाई
Claude के weights सार्वजनिक नहीं हैं, इसलिए इसे अपने सर्वर पर चलाना असंभव है। इस लेख में जानें कि आप किन open models और gateway विकल्पों का उपयोग करके अपनी जरूरतें पूरी कर सकते हैं।
क्या आप Claude को self-host कर सकते हैं? नहीं, और इसका कारण यहाँ दिया गया है
आप Claude को self-host नहीं कर सकते। Anthropic मॉडल के weights प्रकाशित नहीं करता है, इसलिए डाउनलोड करने के लिए कोई फाइल, चलाने के लिए कोई container, और ऐसा कोई licence उपलब्ध नहीं है जो आपको इसे अपने हार्डवेयर से serve करने की अनुमति दे। Claude का प्रत्येक request Anthropic के API या Amazon Bedrock, Google Vertex AI, या Microsoft Foundry जैसे किसी hosted partner के पास जाता है। इसे अपने स्वामित्व वाली मशीन पर चलाना कोई configuration की समस्या नहीं है। यह artefact Anthropic के बाहर मौजूद ही नहीं है।
यह संक्षिप्त उत्तर है। विस्तृत उत्तर यह है कि जो लोग यह प्रश्न पूछते हैं, उनमें से अधिकांश वास्तव में weights नहीं चाहते हैं। वे तीन में से एक ऐसी चीज चाहते हैं जो आपके द्वारा नियंत्रित सर्वर पर प्राप्त की जा सकती है: स्थानीय रूप से चलने वाला एक सक्षम मॉडल, एक gateway जो उनके API keys को सुरक्षित रखे और उनके खर्च को सीमित करे, या एक coding agent जो उनके लैपटॉप के बजाय उनके अपने सर्वर पर रहे। यह गाइड इन तीनों को commands के साथ कवर करती है।
"Self-hosted Claude" का सामान्य अर्थ क्या है
"Self-hosted Claude" के लिए सर्च ट्रैफिक कुछ अलग-अलग इच्छाओं में विभाजित है, और उनके लिए अलग-अलग उत्तरों की आवश्यकता होती है।
कुछ लोग गोपनीयता चाहते हैं। वे नहीं चाहते कि उनके प्रॉम्प्ट्स उनके नेटवर्क से बाहर जाएं। केवल एक लोकल ओपन वेट मॉडल ही इसका समाधान करता है, क्योंकि Claude का कोई भी अनुरोध परिभाषा के अनुसार Anthropic को भेजा गया अनुरोध होता है।
कुछ लोग लागत पर नियंत्रण चाहते हैं। उन्हें चिंता है कि कोई अनियंत्रित एजेंट उनके क्रेडिट्स खत्म कर देगा। एक गेटवे इसका समाधान करता है, और यह Claude के साथ काम करता है, जिससे आप मॉडल की गुणवत्ता बनाए रखते हैं।
कुछ लोग लैपटॉप से स्वतंत्रता चाहते हैं। वे एक ऐसा एजेंट चाहते हैं जो उनके लैपटॉप बंद करने के बाद भी काम करता रहे। एक VPS इसका समाधान करता है, और Claude Code उस पर आसानी से चलता है।
कुछ लोग "self-hosted OpenRouter" वाक्यांश चाहते हैं। वह भी एक गेटवे है, और इसका सामान्य उत्तर LiteLLM है।
तय करें कि आप इनमें से किस श्रेणी में आते हैं, क्योंकि हर स्थिति में सही बिल्ड अलग होता है।
Ollama के साथ एक open model को self-host करना
यदि आवश्यकता यह है कि कोई भी prompt आपके सर्वर से बाहर न जाए, तो एक open weight model चलाएं। आज एक किराए के सर्वर पर जो परिवार वास्तव में उपयोग करने योग्य हैं, वे हैं Llama, Qwen, Mistral, Gemma, और DeepSeek। ये सभी ऐसे weights प्रकाशित करते हैं जिन्हें आप डाउनलोड करके चला सकते हैं। अगर आपके प्रॉम्प्ट्स हिंदी या हिंग्लिश में हैं, तो अंग्रेज़ी में अच्छा प्रदर्शन करने वाला मॉडल हिंदी में भी उतना ही अच्छा होगा, यह ज़रूरी नहीं है, इसलिए कुछ भी डाउनलोड करने से पहले हिंदी के लिए सही ओपन-सोर्स मॉडल चुनने की गाइड में लाइसेंस, मेमोरी का हिसाब और अपनी भाषा में जाँच का तरीका देख लें।
Ollama शुरू करने का सबसे तेज़ तरीका है। इसका install script एक लाइन का है, और यह Ubuntu पर एक systemd service सेट करता है। अगर आप सर्वर किराए पर लेने से पहले अपने लैपटॉप पर परखना चाहते हैं कि Ollama आपके काम का है या नहीं, तो पहले यह जान लें कि Ollama किन कामों में आता है और बिना GPU वाले लैपटॉप पर कितनी RAM में क्या चल पाता है।
curl -fsSL https://ollama.com/install.sh | sh
systemctl status ollamasystemctl status ollama को active (running) प्रिंट करना चाहिए। इसके बाद एक model pull करें और उससे बात करें।
ollama pull qwen3:8b
ollama run qwen3:8b "Summarise what a reverse proxy does in two sentences."पहला pull कई gigabytes डाउनलोड करता है, इसलिए किसी भी प्रश्न का उत्तर देने से पहले model को RAM या GPU memory में फिट होना चाहिए। Quantised models के लिए एक सामान्य नियम: एक 8 billion parameter model को लगभग 6 GB खाली जगह की आवश्यकता होती है, एक 14 billion parameter model को लगभग 10 GB, और एक 70 billion parameter model को अधिकांश general purpose VPS plans से अधिक memory की आवश्यकता होती है। यदि सर्वर में memory कम है, तो process को kernel द्वारा kill कर दिया जाता है और आपको Error: llama runner process has terminated दिखाई देता है, जिसमें dmesg में out of memory की लाइन होती है। Model को दोष देने से पहले free -h की जाँच करें। वही memory budget यह भी तय करता है कि model वास्तव में एक लंबे prompt का कितना हिस्सा पढ़ता है, क्योंकि Ollama चुपचाप एक सामान्य default window के बाद के किसी भी हिस्से को truncate कर देता है, इसलिए जब लंबे दस्तावेज़ आधे सारांशित होकर वापस आएं, तो सबसे पहले num_ctx बढ़ाना और KV cache का आकार निर्धारित करना देखें।
Ollama 127.0.0.1:11434 पर एक HTTP API भी serve करता है, जो इसे केवल एक chat toy के बजाय अन्य software के लिए उपयोगी बनाता है।
curl http://127.0.0.1:11434/api/generate -d '{"model":"qwen3:8b","prompt":"ping","stream":false}'यदि शांत अवधि के बाद पहला अनुरोध तीस सेकंड लेता है जबकि अगला तुरंत वापस आ जाता है, तो कुछ भी टूटा नहीं है: Ollama पांच मिनट की निष्क्रियता के बाद model को unload कर देता है, और keep_alive के साथ इसे resident रखना उस reload penalty को हटा देता है।
उस port को localhost तक ही सीमित रखें। Public IP पर खुला Ollama port उसे खोजने वाले किसी भी व्यक्ति के लिए एक मुफ्त GPU है। systemd unit, GPU detection, और सामने एक reverse proxy लगाने सहित पूरा build, VPS पर Ollama चलाने की गाइड में शामिल है। यदि आप एक समय में एक से अधिक उपयोगकर्ता को सेवा दे रहे हैं, तो पहले Ollama और vLLM की तुलना पढ़ें, क्योंकि Ollama का single stream design हार्डवेयर की क्षमता से काफी पहले ही bottleneck बन जाता है।
अंतर के बारे में ईमानदार रहें। एक mid sized VPS पर एक अच्छा open model सारांशित करने, वर्गीकृत करने, ड्राफ्ट तैयार करने और सरल extraction के लिए वास्तव में उपयोगी है। लंबे multi-step reasoning, बड़े codebases, और agentic tool use पर यह frontier hosted model के करीब नहीं है, और prompt tuning से उस अंतर को नहीं भरा जा सकता। स्थानीय model को उस काम के लिए चुनें जिसमें वह अच्छा है, और जहाँ कठिनाई वास्तविक हो वहाँ hosted model के लिए भुगतान करें।
LiteLLM के साथ अपना खुद का गेटवे चलाएं
यह वही "self-hosted OpenRouter" है जिसे लोग खोज रहे हैं। एक गेटवे आपके एप्लिकेशन और प्रत्येक मॉडल प्रदाता के बीच स्थित होता है। आपके ऐप्स के पास एक ही key होती है, जो आपके सर्वर की ओर इशारा करती है। वास्तविक प्रदाता keys केवल उस सर्वर पर रहती हैं। आप प्रति key खर्च की सीमा तय कर सकते हैं, अलग-अलग ऐप्स को अलग-अलग मॉडल्स पर रूट कर सकते हैं, और हर request को एक ही स्थान पर log कर सकते हैं।
LiteLLM एक सामान्य विकल्प है क्योंकि यह OpenAI compatible API का उपयोग करता है और Anthropic, Ollama, तथा अधिकांश अन्य प्रदाताओं के लिए उसी endpoint के पीछे proxy के रूप में कार्य करता है। इसे एक config file के साथ Docker में चलाएं।
model_list:
- model_name: claude
litellm_params:
model: anthropic/claude-sonnet-5
api_key: os.environ/ANTHROPIC_API_KEY
- model_name: local
litellm_params:
model: ollama/qwen3:8b
api_base: http://127.0.0.1:11434इसे litellm_config.yaml के रूप में सेव करें और proxy शुरू करें। यह port 4000 पर listen करता है।
docker run -v $(pwd)/litellm_config.yaml:/app/config.yaml \
-e ANTHROPIC_API_KEY=$ANTHROPIC_API_KEY \
-e LITELLM_MASTER_KEY=sk-1234 \
-p 4000:4000 docker.litellm.ai/berriai/litellm:latest \
--config /app/config.yamlLITELLM_MASTER_KEY एडमिन क्रेडेंशियल है, इसलिए इसे root password की तरह सुरक्षित रखें और उदाहरण में दिए गए मान (value) का उपयोग न करें। proxy को बिल्कुल वैसे ही कॉल करें जैसे आप किसी hosted API को कॉल करते हैं।
curl http://localhost:4000/v1/chat/completions \
-H 'Authorization: Bearer sk-1234' \
-H 'Content-Type: application/json' \
-d '{"model": "claude","messages": [{"role": "user","content": "Say hello in five words."}]}'एक सफल response सामान्य JSON होता है जिसमें choices array होता है। 401 एक authentication विफलता है। इस सेटअप में इसका सामान्य कारण एक Authorization header है जो आपकी master key से मेल नहीं खाता है। LiteLLM इसे अमान्य virtual key के लिए भी लौटाता है, और यदि कोई प्रदाता key को अस्वीकार कर देता है (जैसे कि एक खराब ANTHROPIC_API_KEY), तो वह भी authentication विफलता का कारण बनता है, जिसमें त्रुटि में प्रदाता का नाम <Provider>Exception के रूप में होता है। मॉडल का नाम बताने वाली 400 त्रुटि का अक्सर अर्थ होता है कि आपकी request में मौजूद model, config file में किसी भी model_name से मेल नहीं खाता है। जब कोई request मॉडल की context window के लिए बहुत लंबी होती है, तो LiteLLM 400 भी लौटाता है, इसलिए config को एडिट करने से पहले त्रुटि संदेश को पढ़ें।
Anthropic को सीधे कॉल करने के बजाय इसे बनाने का कारण खर्च की सीमा (spend cap) है। प्रत्येक एप्लिकेशन के लिए एक अलग virtual key जारी करें, जिसका अपना बजट हो।
curl 'http://0.0.0.0:4000/key/generate' \
--header 'Authorization: Bearer sk-1234' \
--header 'Content-Type: application/json' \
--data-raw '{"models": ["claude"], "max_budget": 100}'Virtual keys और बजट के लिए proxy के पीछे एक Postgres database की आवश्यकता होती है। ऊपर दिए गए docker run में कोई database नहीं है, इसलिए पहले इसमें -e DATABASE_URL=postgresql://user:password@host:5432/litellm जोड़ें। बिना database के यह कॉल No connected db. के साथ विफल हो जाती है।
वह key एक सौ डॉलर खर्च कर सकती है और केवल एक मॉडल तक पहुंच सकती है, और कुछ नहीं। जब कोई एजेंट सुबह तीन बजे गलत व्यवहार करता है, तो नुकसान का दायरा आपके पूरे अकाउंट के बजाय केवल एक key तक सीमित रहता है। वह पैटर्न, और उसके आसपास की निगरानी, VPS पर एजेंट की लागत को नियंत्रित रखने का विषय है। यदि आप अभी भी यह तय कर रहे हैं कि प्रति token भुगतान करना है या नहीं, तो API बनाम सब्सक्रिप्शन लागत तुलना गणित को समझने में मदद करती है।
ध्यान दें कि गेटवे क्या नहीं करता है। यह Claude को local नहीं बनाता है, और यह आपके prompts को Anthropic से नहीं छिपाता है। Requests अभी भी प्रदाता के लिए आपके सर्वर से बाहर जाती हैं। आप जो हासिल करते हैं वह keys, खर्च, रूटिंग और logs पर नियंत्रण है।
अपने VPS पर Claude Code चलाएं
तीसरी इच्छा पूरी करना सबसे आसान है। Claude Code एक client है। यह एक single native binary के रूप में install होता है और HTTPS के माध्यम से API से बात करता है। इसे अपने सर्वर पर रखने का मतलब है कि आपके laptop को बंद करने के बाद भी agent काम करता रहता है, और agent का blast radius एक ऐसा box बन जाता है जिसे आप अपनी मुख्य मशीन के बजाय फिर से बना सकते हैं।
npm install -g @anthropic-ai/claude-code
claude --versionnpm package के लिए Node.js 22 या बाद का version आवश्यक है, हालाँकि पुराने Node.js पर install करने पर केवल एक EBADENGINE warning दिखाई देती है और installation पूरी हो जाती है। Anthropic का अनुशंसित native installer, curl -fsSL https://claude.ai/install.sh | bash, को किसी Node.js की आवश्यकता नहीं होती है। किसी भी स्थिति में, installed claude binary Node पर नहीं चलती है। Anthropic ने न्यूनतम 4 GB RAM की सिफारिश की है, इसलिए VPS का आकार उसी अनुसार रखें।
इसे tmux के अंदर चलाएं ताकि SSH connection टूटने पर कोई लंबा job बंद न हो जाए। session handling सहित वह setup, VPS पर tmux के साथ Claude Code चलाना में शामिल है। agent को अपना एक unprivileged user दें, और इससे पहले कि आप इसे किसी भी महत्वपूर्ण चीज़ का write access दें, सर्वर पर Claude Code चलाने के सुरक्षा नियम पढ़ें।
यह agent की self-hosting है, model की नहीं। इस बारे में सटीक होना महत्वपूर्ण है, क्योंकि लोग अक्सर इसमें भ्रमित हो जाते हैं। आप process, filesystem, network egress और logs के मालिक हैं। inference का स्वामित्व अभी भी Anthropic के पास है।
प्रत्येक विकल्प की वास्तविक लागत
कीमतें बदलती रहती हैं, इसलिए इन्हें एक निश्चित कोटेशन के बजाय एक अनुमान के रूप में देखें। 17 October 2026 तक, Claude Sonnet 5.5 की कीमत $2 प्रति मिलियन इनपुट टोकन और $10 प्रति मिलियन आउटपुट टोकन है, और Claude Opus 5.5 की कीमत $4 और $20 है। Sonnet 5, जो ऊपर दिए गए gateway config में इस्तेमाल किया गया मॉडल है, अब Sonnet 5.5 द्वारा प्रतिस्थापित कर दिया गया है, लेकिन इसे deprecated नहीं किया गया है: Anthropic का मॉडल डेप्रिकेशन पेज इसे Active के रूप में सूचीबद्ध करता है, और यह 30 June 2027 से पहले रिटायर नहीं होगा। इसकी कीमत अभी भी $2 और $10 है, और Opus 5 की कीमत $5 और $25 है। एक local मॉडल के लिए प्रति टोकन कोई शुल्क नहीं लगता है, इसके बजाय इसकी लागत सर्वर की मासिक कीमत होती है, जो आपके उपयोग करने या न करने पर भी चलती रहती है।
ब्रेक-ईवन पॉइंट लोगों की अपेक्षा से कम होता है। एक उपयोगी open मॉडल चलाने के लिए पर्याप्त मेमोरी वाला VPS हर महीने वास्तविक पैसे खर्च करवाता है, और यह अधिकांश समय बेकार (idle) रहता है। यदि आपका उपयोग रुक-रुक कर (bursty) होता है, तो hosted API आमतौर पर सस्ता पड़ता है। यदि आपका उपयोग निरंतर है, या यदि आपका डेटा आपके नेटवर्क से बाहर नहीं जा सकता है, तो local मॉडल दोनों ही मामलों में बेहतर है।
ईमानदार और मिश्रित उत्तर वही है जिस पर अधिकांश टीमें सहमत होती हैं। अधिक मात्रा और कम कठिनाई वाले कार्यों के लिए स्थानीय रूप से एक open मॉडल चलाएं। कठिन अनुरोधों को एक hosted frontier मॉडल पर भेजें। दोनों के सामने एक gateway रखें ताकि applications को यह जानने की आवश्यकता न हो कि कौन सा मॉडल इस्तेमाल हो रहा है, और आप application code को छुए बिना उनके बीच के विभाजन को बदल सकें। वह आर्किटेक्चर "self hosted Claude" का व्यावहारिक संस्करण है, और शाब्दिक संस्करण के विपरीत, यह वास्तव में मौजूद है। यदि आप पूरे agent stack को भी स्वयं चलाना चाहते हैं, तो self-hosted AI agents का राउंडअप उपलब्ध विकल्पों को कवर करता है।
FAQ
क्या मैं Claude के model weights डाउनलोड करके उन्हें स्थानीय रूप से चला सकता हूँ?
नहीं। Anthropic ने कभी भी किसी Claude model के weights जारी नहीं किए हैं, और ऐसा कोई लाइसेंस नहीं है जो self-hosting की अनुमति देता हो। ऑनलाइन डाउनलोड करने योग्य "Claude model" के रूप में विज्ञापित कोई भी चीज़ या तो भ्रामक नाम वाला कोई अन्य मॉडल है, या फिर एक ऐसा wrapper है जो API को कॉल करता है। यदि इसे API key की आवश्यकता है, तो यह local नहीं है।
Claude के सबसे करीब का open model कौन सा है?
इसका कोई सटीक विकल्प नहीं है, और अग्रणी मॉडल हर कुछ महीनों में बदलते रहते हैं। Llama, Qwen, Mistral, Gemma और DeepSeek ऐसे open weight परिवार हैं जिन्हें आज़माना सार्थक है। summarization, classification और सरल code edits के लिए 8 से 14 billion parameters वाला एक अच्छा open model वास्तव में उपयोगी है। लंबी multi-step reasoning और agentic tool use के मामले में, hosted frontier model और open model के बीच का अंतर अभी भी काफी बड़ा है। किसी leaderboard पर भरोसा करने के बजाय अपने स्वयं के prompts पर परीक्षण करें।
क्या LiteLLM एक self-hosted OpenRouter है?
routing और key management के हिस्से के लिए, कार्यात्मक रूप से हाँ। LiteLLM आपके सर्वर पर चलता है, एक OpenAI-compatible endpoint प्रस्तुत करता है, और Anthropic, Ollama तथा अधिकांश अन्य प्रदाताओं के लिए proxy के रूप में कार्य करता है। एक बार Postgres database जुड़ जाने के बाद आपको प्रति-key खर्च की सीमा (spend caps), model routing और logs पढ़ने के लिए एक केंद्रीय स्थान मिल जाता है। यह आपको local inference प्रदान नहीं करता है: Claude के लिए किए गए requests अभी भी Anthropic तक जाते हैं।
क्या अपने सर्वर पर Claude Code चलाने से मेरा कोड निजी रहता है?
नहीं। Claude Code जिन फ़ाइलों को पढ़ता है, उनकी सामग्री को Anthropic API पर भेजता है, चाहे यह प्रक्रिया कहीं भी चल रही हो। VPS आपको agent का isolation प्रदान करता है, न कि सामग्री की गोपनीयता। इसे एक समर्पित unprivileged user दें, इसे credentials और असंबंधित repositories से दूर रखें, और यह मानकर चलें कि जो कुछ भी यह पढ़ सकता है, वह सामग्री सर्वर से बाहर जाती है।