آیا میتوان Claude را self-host کرد؟ پاسخ صادقانه
وزنهای Claude عمومی نیستند و هیچ server شخصی نمیتواند آن را اجرا کند. با پاسخ دقیق و commandهای لازم، مدلهای open، gateway و Claude Code را self-host کنید.
آیا میتوانید Claude را بهصورت self-hosted اجرا کنید؟ خیر، و دلیل آن این است
نمیتوانید Claude را بهصورت self-hosted اجرا کنید. Anthropic وزنهای مدل را منتشر نمیکند؛ بنابراین فایلی برای دانلود، containerای برای اجرا، یا مجوزی وجود ندارد که به شما اجازه دهد آن را روی سختافزار خودتان ارائه کنید. هر درخواست Claude به API مربوط به Anthropic یا به یک شریک میزبانیشده مانند Amazon Bedrock، Google Vertex AI یا Microsoft Foundry ارسال میشود. اجرای آن روی دستگاهی که مالک آن هستید، مشکل پیکربندی نیست. این مؤلفه خارج از Anthropic اساساً وجود ندارد.
این پاسخ کوتاه است. پاسخ کاملتر این است که بیشتر افرادی که این سؤال را مطرح میکنند، در واقع به وزنهای مدل نیاز ندارند. آنها یکی از این 3 مورد را میخواهند؛ مواردی که همگی روی سروری تحت کنترل خودشان قابل دستیابی هستند: مدلی توانمند که بهصورت محلی اجرا شود، درگاهی که کلیدهای API آنها را نگه دارد و هزینههایشان را محدود کند، یا یک عامل کدنویسی که بهجای لپتاپشان روی دستگاه خودشان اجرا شود. این راهنما هر 3 مورد را با commandهای مربوط پوشش میدهد.
منظور معمول از «Claude با میزبانی شخصی»
جستوجوهای مربوط به «self hosted Claude» معمولاً چند خواسته متفاوت را شامل میشوند و هرکدام به پاسخ متفاوتی نیاز دارند.
برخی افراد حریم خصوصی میخواهند. آنها نمیخواهند promptها از شبکهشان خارج شوند. فقط یک مدل open weight محلی این نیاز را برطرف میکند، زیرا هر درخواست به Claude، ذاتاً درخواستی به Anthropic است.
برخی افراد میخواهند هزینه را کنترل کنند. آنها نگران agentی هستند که بدون کنترل، اعتبار حساب را مصرف کند. یک gateway این مشکل را برطرف میکند و با Claude کار میکند؛ بنابراین کیفیت مدل را حفظ میکنید.
برخی افراد میخواهند به laptop وابسته نباشند. آنها agentی میخواهند که هنگام بستن درِ laptop نیز به کار ادامه دهد. یک VPS این نیاز را برطرف میکند و Claude Code نیز بهخوبی روی آن اجرا میشود.
برخی افراد عبارت «self hosted OpenRouter» را جستوجو میکنند. این نیز یک gateway است و پاسخ معمول برای آن LiteLLM است.
مشخص کنید کدام نیاز را دارید، زیرا در هر مورد، معماری مناسب متفاوت است.
میزبانی مستقل از یک مدل باز با Ollama
اگر لازم است هیچ promptی سرور شما را ترک نکند، از یک مدل با وزنهای باز استفاده کنید. خانوادههایی که امروز روی یک سرور اجارهای واقعاً قابل استفاده هستند، شامل Llama، Qwen، Mistral، Gemma و DeepSeek میشوند. همه آنها وزنهایی منتشر میکنند که میتوانید دانلود و اجرا کنید.
Ollama سریعترین راه برای شروع است. اسکریپت نصب یک خط است و یک سرویس systemd را روی Ubuntu راهاندازی میکند.
curl -fsSL https://ollama.com/install.sh | sh
systemctl status ollamasystemctl status ollama باید active (running) را چاپ کند. سپس یک مدل را دریافت کنید و با آن گفتگو کنید.
ollama pull qwen3:8b
ollama run qwen3:8b "Summarise what a reverse proxy does in two sentences."اولین pull چندین گیگابایت داده دانلود میکند؛ بنابراین مدل باید پیش از پاسخگویی در RAM یا حافظه GPU جا شود. برای مدلهای quantised یک قاعده تقریبی وجود دارد: مدل دارای 8 میلیارد پارامتر حدود 6 GB فضای آزاد نیاز دارد، مدل دارای 14 میلیارد پارامتر حدود 10 GB و مدل دارای 70 میلیارد پارامتر به حافظهای بیشتر از ظرفیت بیشتر طرحهای VPS عمومی نیاز دارد. اگر حافظه سیستم کافی نباشد، kernel فرایند را متوقف میکند و Error: llama runner process has terminated را میبینید؛ در dmesg نیز خطایی درباره کمبود حافظه ثبت میشود. پیش از مقصر دانستن مدل، free -h را بررسی کنید.
Ollama همچنین یک HTTP API را روی 127.0.0.1:11434 ارائه میکند. همین قابلیت باعث میشود برای نرمافزارهای دیگر نیز مفید باشد، نه اینکه فقط یک ابزار گفتوگوی آزمایشی باشد.
curl http://127.0.0.1:11434/api/generate -d '{"model":"qwen3:8b","prompt":"ping","stream":false}'این port را به localhost محدود کنید. یک port باز Ollama روی IP عمومی، برای هر کسی که آن را پیدا کند یک GPU رایگان فراهم میکند. راهاندازی کامل، شامل واحد systemd، تشخیص GPU و قرار دادن reverse proxy در جلوی آن، در راهنمای اجرای Ollama روی VPS پوشش داده شده است. اگر همزمان به بیش از یک کاربر سرویس میدهید، ابتدا مقایسه Ollama و vLLM را بخوانید؛ زیرا طراحی تکجریانی Ollama، بسیار زودتر از رسیدن سختافزار به محدودیت، به گلوگاه تبدیل میشود.
درباره این فاصله صادق باشید. یک مدل باز خوب روی یک VPS با اندازه متوسط، برای خلاصهسازی، دستهبندی، تهیه پیشنویس و استخراج ساده واقعاً مفید است. در استدلال طولانی و چندمرحلهای، کار با codebaseهای بزرگ و استفاده عاملمحور از ابزارها، به مدل میزبانیشده پیشرو نزدیک نیست و هیچ مقدار prompt tuning این فاصله را از بین نمیبرد. مدل محلی را برای کارهایی انتخاب کنید که در آنها عملکرد خوبی دارد و هرجا دشواری کار واقعی است، هزینه مدل میزبانیشده را بپردازید.
دروازه اختصاصی خود را با LiteLLM اجرا کنید
این همان چیزی است که کاربران با عنوان «OpenRouter خودمیزبان» جستوجو میکنند. یک دروازه میان برنامههای شما و همه ارائهدهندگان مدل قرار میگیرد. برنامههای شما فقط یک کلید دارند که به سرور شما اشاره میکند. کلیدهای واقعی ارائهدهندگان فقط روی همان سرور نگهداری میشوند. میتوانید هزینه هر کلید را محدود کنید، برنامههای مختلف را به مدلهای متفاوت هدایت کنید و همه درخواستها را در یک مکان ثبت کنید.
LiteLLM انتخاب رایج است، زیرا از یک API سازگار با OpenAI استفاده میکند و درخواستها را از طریق همان endpoint به Anthropic، Ollama و بیشتر ارائهدهندگان دیگر ارسال میکند. آن را با یک فایل پیکربندی در 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 را راهاندازی کنید. این سرویس روی پورت 4000 به درخواستها گوش میدهد.
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 رفتار کنید و مقدار نمونه را استفاده نکنید. proxy را دقیقاً مانند یک 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."}]}'پاسخ سالم، یک JSON معمولی با آرایه choices است. خطای 401 یعنی header با نام Authorization با کلید اصلی شما مطابقت ندارد. خطایی که مدل را در 400 نامگذاری میکند یعنی مقدار model در درخواست شما با هیچ model_name در فایل پیکربندی مطابقت ندارد.
دلیل ساختن این سامانه بهجای فراخوانی مستقیم Anthropic، محدود کردن هزینه است. برای هر برنامه یک کلید مجازی جداگانه ایجاد کنید و برای هرکدام بودجه مستقلی تعیین کنید.
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}'این کلید میتواند حداکثر 100 دلار هزینه کند و فقط به یک مدل دسترسی داشته باشد. وقتی یک agent ساعت 3 صبح رفتار نادرستی دارد، دامنه آسیب فقط به یک کلید محدود میشود، نه کل حساب شما. این الگو، همراه با پایش مربوط به آن، در کنترل هزینه agent در یک VPS بررسی شده است. اگر هنوز درباره پرداخت بهازای هر token تصمیم نگرفتهاید، مقایسه هزینه API و اشتراک محاسبات لازم را ارائه میکند.
توجه کنید که دروازه چه کاری انجام نمیدهد. این سامانه Claude را محلی نمیکند و promptهای شما را از Anthropic پنهان نمیکند. درخواستها همچنان برای ارائهدهنده از سرور شما خارج میشوند. چیزی که به دست میآورید، کنترل کلیدها، هزینه، مسیریابی و گزارشها است.
اجرای Claude Code روی VPS شخصی
برآورده کردن آرزوی سوم از همه آسانتر است. Claude Code یک client است. این برنامه هر جا که Node.js را نصب کنید اجرا میشود و از طریق HTTPS با API ارتباط برقرار میکند. نصب آن روی سروری که مالک آن هستید باعث میشود agent پس از خاموش کردن laptop شما نیز به کار ادامه دهد. همچنین دامنه اثرگذاری agent به سیستمی محدود میشود که میتوانید آن را دوباره بسازید، نه به دستگاه اصلی شما.
npm install -g @anthropic-ai/claude-code
claude --versionآن را داخل tmux اجرا کنید تا قطع شدن اتصال SSH یک کار طولانی را متوقف نکند. این پیکربندی، از جمله مدیریت session، در اجرای Claude Code روی VPS با tmux پوشش داده شده است. برای agent یک user غیرمجاز اختصاص دهید و پیش از اعطای دسترسی نوشتن به هر چیزی که برایتان اهمیت دارد، قواعد ایمنی اجرای Claude Code روی server را مطالعه کنید.
این کار self-hosting برای agent است، نه برای model. دقیق بودن در این مورد اهمیت دارد، زیرا افراد این دو موضوع را با هم اشتباه میگیرند. شما مالک process، filesystem، خروجی شبکه و logها هستید. Anthropic همچنان مالک inference است.
هزینه واقعی هر گزینه
قیمتها تغییر میکنند؛ بنابراین این ارقام را بهعنوان تصویری کلی در نظر بگیرید، نه قیمت قطعی. در July 2026، قیمت Claude Sonnet 5 برابر با $3 بهازای هر million input token و $15 بهازای هر million output token است. قیمت Claude Opus 5 نیز بهترتیب $5 و $25 است. یک مدل محلی بهازای هر token هزینهای ندارد و در عوض، هزینه ماهانه سروری را دارد که چه از آن استفاده کنید و چه نکنید، همچنان در حال اجراست.
نقطه سربهسر پایینتر از چیزی است که بسیاری انتظار دارند. یک VPS با حافظه کافی برای اجرای یک مدل بازِ کاربردی، هر ماه هزینه قابلتوجهی دارد و بیشتر اوقات بدون استفاده میماند. اگر میزان استفاده شما مقطعی است، hosted API معمولاً ارزانتر است. اگر استفاده شما دائمی است یا دادههایتان نباید از شبکه شما خارج شوند، مدل محلی از هر دو نظر برتری دارد.
پاسخ ترکیبی و واقعبینانه همان چیزی است که بیشتر تیمها در نهایت انتخاب میکنند. یک مدل باز را بهصورت محلی برای کارهای پرتعداد و کمپیچیدگی اجرا کنید. درخواستهای دشوار را به یک مدل frontier میزبانیشده ارسال کنید. جلوی هر دو، یک gateway قرار دهید تا برنامهها نیازی نداشته باشند بدانند کدام مدل در حال استفاده است و بتوانید مرز میان آنها را بدون تغییر کد برنامه جابهجا کنید. این معماری، شکل عملی «Claude خودمیزبان» است و برخلاف نسخه تحتاللفظی آن، وجود دارد. اگر میخواهید کل پشته agent را نیز خودتان اجرا کنید، مجموعه بررسی agentهای AI خودمیزبان گزینههای موجود را پوشش میدهد.
FAQ
آیا میتوانم وزنهای مدل Claude را دانلود کنم و آنها را بهصورت محلی اجرا کنم؟
خیر. Anthropic تاکنون وزنهای هیچیک از مدلهای Claude را منتشر نکرده است و هیچ مجوزی برای میزبانی شخصی وجود ندارد. هر چیزی که در اینترنت بهعنوان «مدل Claude قابل دانلود» تبلیغ میشود، یا مدل دیگری با نامی گمراهکننده است یا wrapperی است که API را فراخوانی میکند. اگر به API key نیاز داشته باشد، محلی نیست.
نزدیکترین مدل open به Claude کدام است؟
تطابق دقیقی وجود ندارد و مدلهای برتر هر چند ماه تغییر میکنند. خانوادههای open weight که ارزش آزمایش دارند عبارتاند از Llama، Qwen، Mistral، Gemma و DeepSeek. برای خلاصهسازی، دستهبندی و ویرایشهای ساده کد، یک مدل open خوب با 8 تا 14 میلیارد پارامتر واقعاً کاربردی است. در استدلال چندمرحلهای طولانی و استفاده عاملمحور از ابزارها، فاصله با یک مدل frontier میزبانیشده همچنان زیاد است. بهجای اعتماد به leaderboard، مدل را با promptهای خودتان آزمایش کنید.
آیا LiteLLM یک OpenRouter خودمیزبان است؟
از نظر عملکردی، برای بخش مسیریابی و مدیریت key، بله. LiteLLM روی سرور شما اجرا میشود، یک endpoint سازگار با OpenAI ارائه میدهد و درخواستها را به Anthropic، Ollama و بیشتر providerهای دیگر proxy میکند. برای هر key سقف هزینه، مسیریابی مدل و یک محل واحد برای خواندن logها دارید. اما inference محلی ارائه نمیکند: درخواستهای مربوط به Claude همچنان به Anthropic ارسال میشوند.
آیا اجرای Claude Code روی سرور خودم، کد من را خصوصی نگه میدارد؟
خیر. Claude Code محتوای فایلهایی را که میخواند، به API مربوط به Anthropic ارسال میکند؛ صرفنظر از اینکه فرایند در کجا اجرا میشود. VPS برای شما جداسازی agent را فراهم میکند، نه حریم خصوصی محتوا را. یک کاربر اختصاصی و غیرممتاز برای آن ایجاد کنید، آن را از credentialها و repositoryهای نامرتبط دور نگه دارید و هر چیزی را که میتواند بخواند، محتوایی در نظر بگیرید که از سرور خارج میشود.