Claude কি self-host করা যায়? সৎ উত্তর ও বিকল্প
Claude-এর model weights public নয়, তাই নিজের server-এ এটি চালানো যায় না। বদলে open model, API gateway ও Claude Code self-host করার বাস্তব বিকল্প দেখুন।
আপনি কি Claude self-host করতে পারবেন? না, এবং এর কারণ এখানে
আপনি Claude self-host করতে পারবেন না। Anthropic model weights প্রকাশ করে না। তাই download করার মতো কোনো file নেই, চালানোর মতো কোনো container নেই, এবং নিজের hardware থেকে এটি serve করার অনুমতি দেয় এমন কোনো licence নেই। Claude-এর প্রতিটি request Anthropic-এর API অথবা Amazon Bedrock, Google Vertex AI বা Microsoft Foundry-এর মতো hosted partner-এর কাছে যায়। আপনার মালিকানাধীন কোনো machine-এ এটি চালানো configuration problem নয়। Anthropic-এর বাইরে এই artefact-এর অস্তিত্বই নেই।
এটাই সংক্ষিপ্ত উত্তর। বিস্তারিত উত্তর হলো, এই প্রশ্ন করা অধিকাংশ মানুষ আসলে weights চান না। তারা এমন তিনটি জিনিসের কোনো একটি চান, যেগুলো আপনার নিয়ন্ত্রণাধীন server-এ চালানো সম্ভব: locally চলা একটি সক্ষম model, এমন একটি gateway যা তাদের API keys সংরক্ষণ করে এবং খরচের সীমা নির্ধারণ করে, অথবা এমন একটি coding agent যা laptop-এর বদলে তাদের নিজস্ব box-এ চলে। এই guide-এ তিনটিই commands-সহ দেখানো হয়েছে।
"self-hosted Claude" বলতে সাধারণত যা বোঝায়
"self hosted Claude" নিয়ে করা search বিভিন্ন ধরনের চাহিদাকে একত্র করে, এবং প্রতিটির উত্তর আলাদা।
কিছু মানুষ privacy চান। তারা চান না যে prompt তাদের network-এর বাইরে যাক। এর একমাত্র সমাধান হলো স্থানীয় open weight model, কারণ যেকোনো Claude request সংজ্ঞা অনুযায়ী Anthropic-এর কাছে পাঠানো request।
কিছু মানুষ cost control চান। তারা আশঙ্কা করেন, নিয়ন্ত্রণহীন কোনো agent অতিরিক্ত credit ব্যবহার করতে পারে। একটি gateway এই সমস্যা সমাধান করে। এটি Claude-এর সঙ্গে কাজ করে, তাই model-এর quality বজায় থাকে।
কিছু মানুষ laptop-এর ওপর নির্ভর করতে চান না। তারা এমন agent চান, যা laptop-এর lid বন্ধ করার পরও কাজ চালিয়ে যাবে। একটি VPS এই কাজের জন্য উপযুক্ত, এবং Claude Code এতে সহজেই চলে।
কিছু মানুষ "self hosted OpenRouter" বলতে চান। এটিও একটি gateway, এবং সাধারণ সমাধান হলো LiteLLM।
আপনি কোন ধরনের চাহিদার অন্তর্ভুক্ত, তা নির্ধারণ করুন। কারণ প্রতিটি ক্ষেত্রে উপযুক্ত build আলাদা।
Ollama দিয়ে একটি open model নিজে host করুন
যদি শর্ত হয় যে কোনো prompt আপনার server ছেড়ে যাবে না, তাহলে একটি open weight model চালান। বর্তমানে rented server-এ বাস্তবে ব্যবহারযোগ্য family হলো Llama, Qwen, Mistral, Gemma এবং DeepSeek। এগুলোর সবকটিই download করে চালানোর মতো weights প্রকাশ করে।
Ollama দিয়ে শুরু করা সবচেয়ে সহজ। Install script এক লাইনের, এবং এটি Ubuntu-তে একটি systemd service সেটআপ করে।
curl -fsSL https://ollama.com/install.sh | sh
systemctl status ollamasystemctl status ollama-এর output হিসেবে active (running) দেখা উচিত। এরপর একটি model pull করে তার সঙ্গে কথা বলুন।
ollama pull qwen3:8b
ollama run qwen3:8b "Summarise what a reverse proxy does in two sentences."প্রথম pull চালানোর সময় কয়েক gigabyte download হয়। তাই model কোনো উত্তর দেওয়ার আগে সেটি RAM অথবা GPU memory-তে fit করতে হবে। Quantised model-এর জন্য একটি আনুমানিক নিয়ম হলো: 8 billion parameter-এর model-এর প্রায় 6 GB free memory দরকার, 14 billion parameter-এর model-এর প্রায় 10 GB দরকার, এবং 70 billion parameter-এর model-এর জন্য অধিকাংশ general purpose VPS plan-এর চেয়ে বেশি memory প্রয়োজন। Server-এ memory কম থাকলে kernel process-টি kill করে এবং আপনি Error: llama runner process has terminated দেখতে পাবেন; dmesg-এ out of memory সংক্রান্ত একটি line-ও থাকবে। Model-কে দোষ দেওয়ার আগে free -h পরীক্ষা করুন। একই memory budget দীর্ঘ prompt-এর কতটা অংশ model আসলে পড়বে, তাও নির্ধারণ করে। কারণ Ollama নিরবে একটি সীমিত default window-এর পরের অংশ truncate করে। তাই দীর্ঘ document অর্ধেক summarise হয়ে ফিরে এলে প্রথমে num_ctx বাড়ানো এবং KV cache-এর আকার নির্ধারণ পরীক্ষা করুন।
Ollama 127.0.0.1:11434-এ একটি HTTP API-ও চালায়। এ কারণেই এটি শুধু chat toy নয়, অন্যান্য software-এর জন্যও ব্যবহারযোগ্য।
curl http://127.0.0.1:11434/api/generate -d '{"model":"qwen3:8b","prompt":"ping","stream":false}'দীর্ঘ সময় কোনো request না আসার পর প্রথম request-এর উত্তর পেতে যদি ত্রিশ সেকেন্ড লাগে, কিন্তু পরেরটি সঙ্গে সঙ্গে ফিরে আসে, তাহলে কিছু নষ্ট হয়নি। Ollama পাঁচ মিনিট idle থাকার পর model unload করে। keep_alive দিয়ে model-কে memory-তে রেখে দিলে এই reload-এর বিলম্ব দূর হয়।
এই port-টি localhost-এ bind করে রাখুন। Public IP-তে খোলা Ollama port যে কেউ খুঁজে পেলে তার জন্য বিনামূল্যের GPU হয়ে যায়। systemd unit, GPU detection এবং reverse proxy সামনে বসানোসহ সম্পূর্ণ setup VPS-এ Ollama চালানোর guide-এ দেখানো হয়েছে। একই সময়ে একাধিক user-কে service দিলে আগে Ollama এবং vLLM-এর তুলনা পড়ুন। কারণ hardware সীমায় পৌঁছানোর অনেক আগেই Ollama-এর single stream design bottleneck হয়ে দাঁড়ায়।
সীমাবদ্ধতা সম্পর্কে সৎ থাকুন। মাঝারি আকারের VPS-এ একটি ভালো open model summarising, classification, drafting এবং সাধারণ extraction-এর জন্য সত্যিই কার্যকর। কিন্তু দীর্ঘ multi-step reasoning, বড় codebase এবং agentic tool use-এর ক্ষেত্রে এটি frontier hosted model-এর কাছাকাছিও নয়। Prompt tuning যতই করা হোক, এই ব্যবধান দূর হবে না। যে কাজের জন্য local model ভালো, সেটির জন্য সেটি বেছে নিন। কাজটি সত্যিই কঠিন হলে hosted model-এর জন্য অর্থ ব্যয় করুন।
LiteLLM দিয়ে নিজের gateway চালান
মানুষ যে “self-hosted OpenRouter” খুঁজছে, এটি মূলত সেটিই। একটি gateway আপনার অ্যাপ্লিকেশন এবং প্রতিটি model provider-এর মাঝখানে থাকে। আপনার অ্যাপগুলো একটি key ব্যবহার করে, যা আপনার server-এর দিকে নির্দেশ করে। প্রকৃত provider key শুধু ওই server-এই থাকে। প্রতিটি key-এর খরচের সীমা নির্ধারণ করতে পারেন, বিভিন্ন অ্যাপকে বিভিন্ন model-এ পাঠাতে পারেন, এবং প্রতিটি request এক জায়গায় log করতে পারেন।
LiteLLM সাধারণত বেছে নেওয়া হয়, কারণ এটি OpenAI compatible API ব্যবহার করে এবং একই endpoint-এর আড়ালে Anthropic, Ollama ও অন্যান্য অধিকাংশ provider-এ 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-এ listening করে।
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 হলো admin credential। তাই এটিকে root password-এর মতো সুরক্ষিত রাখুন এবং উদাহরণে দেওয়া মানটি ব্যবহার করবেন না। Hosted API-তে যেভাবে request পাঠাতেন, proxy-তেও ঠিক সেভাবেই request পাঠান।
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-এ choices array-সহ সাধারণ JSON থাকে। একটি 401 হলো authentication failure। এই setup-এ সাধারণ কারণ হলো এমন একটি Authorization header, যার মান আপনার master key-এর সঙ্গে মেলে না। Invalid virtual key-এর ক্ষেত্রেও LiteLLM এটি ফেরত দেয়। Provider যে provider key প্রত্যাখ্যান করে, সেটিও authentication failure ঘটায়; যেমন ভুল ANTHROPIC_API_KEY। সে ক্ষেত্রে error-এ provider-এর নাম <Provider>Exception আকারে থাকে। Model-এর নাম উল্লেখ করা 400 প্রায়ই বোঝায় যে আপনার request-এর model config file-এর কোনো model_name-এর সঙ্গে মেলে না। Model-এর context window-এর জন্য request খুব বড় হলেও LiteLLM 400 ফেরত দেয়। তাই config সম্পাদনা করার আগে error message পড়ুন।
সরাসরি Anthropic-কে call না করে এটি তৈরি করার কারণ হলো spend cap। প্রতিটি application-এর জন্য আলাদা virtual key তৈরি করুন এবং প্রতিটির নিজস্ব budget নির্ধারণ করুন।
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 key এবং budget ব্যবহারের জন্য proxy-এর পেছনে একটি Postgres database দরকার। উপরের docker run-এ database নেই। তাই প্রথমে এতে -e DATABASE_URL=postgresql://user:password@host:5432/litellm যোগ করুন। Database ছাড়া এই call No connected db. দিয়ে ব্যর্থ হবে।
এই key সর্বোচ্চ one hundred dollars খরচ করতে পারবে এবং শুধু একটি model-এ পৌঁছাতে পারবে। অন্য কিছুতে নয়। রাত তিনটায় কোনো agent ভুল আচরণ করলে তার প্রভাব পুরো account-এর বদলে একটি key-তেই সীমাবদ্ধ থাকবে। এই পদ্ধতি এবং এর monitoring নিয়ে VPS-এ agent-এর খরচ নিয়ন্ত্রণে রাখা অংশে আলোচনা করা হয়েছে। আদৌ প্রতি token অনুযায়ী অর্থ পরিশোধ করবেন কি না, তা নিয়ে এখনও সিদ্ধান্ত না নিয়ে থাকলে API বনাম subscription খরচের তুলনা অংশে হিসাবটি ব্যাখ্যা করা হয়েছে।
Gateway কী করে না, সেটিও মনে রাখুন। এটি Claude-কে local করে না এবং Anthropic-এর কাছ থেকে আপনার prompt গোপন করে না। Request এখনও আপনার server ছেড়ে provider-এর কাছে যায়। আপনি যা পান, তা হলো key, খরচ, routing এবং log-এর ওপর নিয়ন্ত্রণ।
নিজের VPS-এ Claude Code চালান
তৃতীয় ইচ্ছাটি পূরণ করা সবচেয়ে সহজ। Claude Code একটি client। এটি একটি একক native binary হিসেবে install হয় এবং HTTPS-এর মাধ্যমে API-এর সঙ্গে যোগাযোগ করে। নিজের মালিকানাধীন server-এ এটি রাখলে আপনি laptop বন্ধ করার পরও agent কাজ চালিয়ে যায়। এ ছাড়া agent-এর blast radius এমন একটি box-এর মধ্যে সীমাবদ্ধ থাকে, যেটি আপনি পুনর্নির্মাণ করতে পারেন, আপনার প্রধান machine-এর মধ্যে নয়।
npm install -g @anthropic-ai/claude-code
claude --versionnpm package-এর জন্য Node.js 22 বা পরবর্তী version প্রয়োজন। তবে পুরোনো Node.js-এ install করলে শুধু একটি EBADENGINE warning দেখায় এবং install সম্পন্ন হয়। Anthropic-এর প্রস্তাবিত native installer, curl -fsSL https://claude.ai/install.sh | bash, একেবারেই Node.js প্রয়োজন করে না। উভয় ক্ষেত্রেই install হওয়া claude binary Node-এ চলে না। Anthropic ন্যূনতম 4 GB RAM উল্লেখ করেছে। তাই VPS-এর আকার নির্ধারণের সময় এটি বিবেচনা করুন।
এটি tmux-এর ভিতরে চালান, যাতে SSH connection বিচ্ছিন্ন হলেও দীর্ঘ সময়ের job বন্ধ না হয়। session handling-সহ এই setup tmux দিয়ে VPS-এ Claude Code চালানো-এ ব্যাখ্যা করা হয়েছে। agent-এর জন্য একটি নিজস্ব unprivileged user দিন। যে কোনো গুরুত্বপূর্ণ জিনিসে write access দেওয়ার আগে server-এ Claude Code চালানোর নিরাপত্তা নিয়ম পড়ুন।
এটি agent-এর self-hosting, model-এর নয়। বিষয়টি স্পষ্টভাবে বোঝা জরুরি, কারণ মানুষ প্রায়ই দুটিকে একসঙ্গে ধরে নেয়। process, filesystem, network egress এবং log-এর মালিক আপনি। Inference-এর মালিকানা Anthropic-এর কাছেই থাকে।
প্রতিটি বিকল্পের প্রকৃত খরচ
দাম পরিবর্তিত হয়, তাই এগুলোকে নির্দিষ্ট quotation নয়, বরং মোটামুটি ধারণা হিসেবে দেখুন। 17 October 2026 অনুযায়ী, Claude Sonnet 5.5-এর মূল্য প্রতি million input token-এ $2 এবং প্রতি million output token-এ $10। Claude Opus 5.5-এর মূল্য যথাক্রমে $4 এবং $20। উপরের gateway configuration-এ ব্যবহৃত model Sonnet 5 বর্তমানে Sonnet 5.5 দ্বারা প্রতিস্থাপিত হয়েছে, তবে এটি deprecated নয়: Anthropic-এর model deprecations page-এ এটি Active হিসেবে তালিকাভুক্ত, এবং এর retirement 30 June 2027-এর আগে হবে না। এর মূল্য এখনও $2 এবং $10, আর Opus 5-এর মূল্য এখনও $5 এবং $25। Local model-এর প্রতি token-এর জন্য কোনো খরচ নেই। এর পরিবর্তে server প্রতি মাসে যত খরচ হয়, সেটিই দিতে হয়, আপনি model ব্যবহার করুন বা না করুন।
Break-even point মানুষের ধারণার চেয়ে কম। একটি কার্যকর open model চালানোর মতো পর্যাপ্ত memory-সহ VPS প্রতি মাসে বাস্তব খরচ তৈরি করে, এবং বেশিরভাগ সময় idle থাকে। আপনার ব্যবহার যদি bursty হয়, hosted API সাধারণত সস্তা। ব্যবহার যদি constant হয়, অথবা আপনার data network-এর বাইরে পাঠানো না যায়, তাহলে local model উভয় দিক থেকেই ভালো।
বেশিরভাগ team শেষ পর্যন্ত যে সমাধানে পৌঁছায়, সেটি একটি বাস্তবসম্মত mixed approach। High-volume এবং low-difficulty কাজের জন্য locally একটি open model চালান। কঠিন request-গুলো hosted frontier model-এ পাঠান। উভয়ের সামনে একটি gateway রাখুন, যাতে application-কে কোনটি ব্যবহৃত হচ্ছে তা জানতে না হয় এবং application code পরিবর্তন না করেই তাদের মধ্যকার সীমা সরানো যায়। এই architecture-ই “self-hosted Claude”-এর বাস্তব রূপ। আক্ষরিক সংস্করণটির বিপরীতে, এটি বাস্তবে বিদ্যমান। পুরো agent stack-ও নিজে চালাতে চাইলে, self-hosted AI agent-এর roundup-এ উপলভ্য বিকল্পগুলো আলোচনা করা হয়েছে।
FAQ
আমি কি Claude-এর model weights ডাউনলোড করে লোকালভাবে চালাতে পারি?
না। Anthropic কোনো Claude model-এর weights কখনও release করেনি, এবং self-hosting-এর অনুমতি দেয় এমন কোনো licence নেই। অনলাইনে downloadable "Claude model" হিসেবে যা প্রচার করা হয়, তা হয় বিভ্রান্তিকর নামে প্রকাশিত অন্য কোনো model, অথবা API call করা একটি wrapper। এতে API key প্রয়োজন হলে সেটি local নয়।
Claude-এর সবচেয়ে কাছাকাছি open model কোনটি?
এর কোনো exact match নেই, এবং সেরা model-গুলোর অবস্থান কয়েক মাস পরপর বদলে যায়। পরীক্ষা করার মতো open-weight family হলো Llama, Qwen, Mistral, Gemma এবং DeepSeek। summarising, classification এবং সাধারণ code edit-এর কাজে 8 থেকে 14 billion parameter-এর একটি ভালো open model বাস্তবেই কার্যকর। দীর্ঘ multi-step reasoning এবং agentic tool use-এর ক্ষেত্রে hosted frontier model-এর সঙ্গে ব্যবধান এখনও বড়। leaderboard-এর ওপর নির্ভর না করে নিজের prompt দিয়ে পরীক্ষা করুন।
LiteLLM কি self-hosted OpenRouter?
Routing এবং key management-এর দিক থেকে কার্যত হ্যাঁ। LiteLLM আপনার server-এ চলে, একটি OpenAI-compatible endpoint প্রকাশ করে এবং Anthropic, Ollama ও অন্যান্য অধিকাংশ provider-এ proxy করে। Postgres database সংযুক্ত করলে প্রতি key-এর spend cap, model routing এবং log পড়ার জন্য একটি কেন্দ্রীয় স্থান পান। তবে এটি local inference দেয় না: Claude-এ পাঠানো request এখনও Anthropic-এর কাছে যায়।
নিজের server-এ Claude Code চালালে কি আমার code private থাকে?
না। Claude Code যে process-এ চলুক না কেন, এটি পড়া file-এর content Anthropic API-তে পাঠায়। VPS আপনাকে agent-এর isolation দেয়, content-এর privacy নয়। এর জন্য একটি dedicated unprivileged user ব্যবহার করুন, credentials ও সম্পর্কহীন repository থেকে এটিকে দূরে রাখুন, এবং এটি যে সব content পড়তে পারে সেগুলো server-এর বাইরে চলে যায় বলে ধরে নিন।