نصب و اجرای coding AI agent روی VPS
آموزش کامل راهاندازی Aider و Goose روی VPS برای کدنویسی در terminal با اتصال به مدلهای Ollama، مدیریت session در tmux و بررسی امنیت ابزارها.
چرا باید یک coding agent را روی یک VPS اجرا کنیم؟
یک coding agent ابزاری است که کد شما را میخواند، تغییرات را مینویسد و دستوراتی را برای تست آنها اجرا میکند؛ همگی از طریق terminal. اجرای آن روی یک VPS سه مزیت نسبت به لپتاپ شما دارد: پس از قطع اتصال به کار خود ادامه میدهد، مستقیماً در کنار کد و ابزارهای ساخت (build tools) شما قرار دارد، و میتواند با مدلی که خودتان میزبانی میکنید صحبت کند. آن را داخل یک session در tmux اجرا کنید تا بتوانید لپتاپ خود را ببندید و بعداً کار را ادامه دهید؛ دقیقاً مشابه الگوی running Claude Code on a VPS with tmux.
دو agent مبتنی بر terminal وجود دارند که دانستن آنها ضروری است. Aider یک گزینه native برای terminal و مبتنی بر git است: این ابزار هر تغییر را با یک پیام مناسب auto-commit میکند تا تاریخچه شما تمیز بماند و هر ویرایشی قابل بازگشت باشد. Aider یکی از قدیمیترین coding agentهای terminal است، هرچند سرعت انتشار آن کاهش یافته است. Goose از شرکت Block، قابلیتهای گستردهتری دارد: یک agent با لایسنس Apache-2.0، دارای یک اکوسیستم گسترده از extensionها و پشتیبانی از ارائهدهندگان متعدد از جمله مدلهای محلی Ollama است که اکنون تحت نظر Agentic AI Foundation (AAIF) از Linux Foundation توسعه مییابد. Aider برای یک گردش کار منضبط و git-centric مناسب است؛ Goose برای یک دستیار عمومیتر با مجموعهای گسترده از pluginها مناسب است.
آنچه نیاز دارید
شما به یک VPS دارای git، tmux و یک نسخه جدید از Python برای Aider، یا installer مخصوص Goose برای Goose نیاز دارید. همچنین به یک مدل نیاز دارید: یا یک API key میزبانی شده از ارائهدهندهای مانند Anthropic یا OpenAI، و یا یک مدل محلی که توسط Ollama on the same VPS سرویسدهی میشود. مسیر self-hosted باعث میشود کد شما روی سرور خودتان باقی بماند و هزینهای برای هر token نداشته باشید، اما به قیمت نیاز به حافظه کافی برای یک مدل توانمند.
نصب و اجرای Aider
Aider را در یک محیط ایزوله با استفاده از pipx نصب کنید؛ این ابزار از apt میآید زیرا Ubuntu 24.04 اجازه نصب مستقیم pip install را در خارج از یک virtual environment (طبق PEP 668) نمیدهد. سپس Aider را داخل پروژه خود و در یک session در tmux اجرا کنید تا در صورت قطع اتصال، برنامه باز بماند:
sudo apt install pipx
pipx ensurepath
pipx install aider-chat
tmux new -s aider
cd ~/my-project
aiderیک نکته در مورد نسخه: این روش نصب در Ubuntu 24.04 مطابق آنچه نشان داده شده کار میکند. در Ubuntu 26.04 این روش فعلاً با شکست مواجه میشود، زیرا وابستگیهای (dependencies) قفل شدهی Aider شامل یک نسخه قدیمی از numpy است که با Python 3.14 در نسخه 26.04 سازگار نیست. راه حل این است که یک Python 3.12 اختصاصی برای Aider فراهم کنید:
pipx install --python 3.12 --fetch-missing-python aider-chatدستور pipx یک interpreter مستقل فقط برای Aider دانلود میکند و نصب تکمیل میشود. این نشانهای از کاهش سرعت انتشار Aider است؛ اگر این موضوع برای شما آزاردهنده است، Goose گزینه فعالتر و با نگهداری بهتر است.
پس از اجرا، با فشردن Ctrl-b و سپس d از session جدا شوید (detach) تا agent با بسته بودن لپتاپ به کار خود ادامه دهد؛ بعداً با استفاده از tmux attach -t aider دوباره به آن متصل (reattach) شوید تا تغییرات را بخوانید. Aider مخزن شما را میخواند، ویرایشها را پیشنهاد میدهد، آنها را اعمال میکند و هر کدام را commit میکند؛ همچنین اگر یک تغییر شامل چندین فایل باشد، میتواند فایلهای اضافی را برای context دریافت کند. از آنجایی که هر تغییر یک commit است، بازگرداندن تغییرات توسط agent یک git revert ساده است که همان شبکه ایمنی است که استفاده از آن را راحت میکند. Goose با اسکریپت تکخطی مستند شده خود نصب میشود و به طور مشابه از طریق terminal اجرا میشود و وظایف را از طریق extensionهای خود پیش میبرد:
curl -fsSL https://github.com/aaif-goose/goose/releases/download/stable/download_cli.sh | bashمدل میزبانی شده یا مدل self-hosted
یک مدل میزبانی شده (hosted) بهترین کیفیت را به شما میدهد و به سختافزار محلی نیاز ندارد، اما برای هر token هزینه دارد و کد شما به ارائهدهنده ارسال میشود. هزینههای per-token سریعتر از آنچه اکثر مردم انتظار دارند جمع میشوند، زیرا agent در هر مرحله کل گفتگو را دوباره ارسال میکند. تحلیل Claude Code در مورد what a long agent session really spends on tokens در اینجا نیز صدق میکند، زیرا Aider و Goose به یک روش محاسبه میکنند. یک مدل self-hosted از طریق Ollama همه چیز را در سرور شما نگه میدارد و پس از پرداخت هزینه سختافزار، اجرای آن رایگان است، اما یک مدل coding که برای مفید بودن کافی باشد، به حافظه واقعی نیاز دارد. این همان موازنهای است که باید در نظر بگیرید: کیفیت و راحتی در مقابل حریم خصوصی و هزینه.
اگر از حالت self-hosted استفاده میکنید، سوال عملی این است که کدام مدل با سرور شما سازگار است. قبل از دانلود یک مدل هشت گیگابایتی روی سیستمی که گنجایش آن را ندارد، اندازه آن را بررسی کنید:
ایمنی: این ابزار فایلها را ویرایش میکند و دستورات را اجرا میکند
یک coding agent غیرفعال نیست. این ابزار فایلها را بازنویسی میکند و میتواند دستورات build و test را اجرا کند، بنابراین با همان دقتی که به هر فرآیند دیگری که میتواند سیستم شما را تغییر دهد، با آن برخورد کنید. سه عادت بیشتر از ریسکها را پوشش میدهد. در داخل یک git repository کار کنید تا هر تغییر قابل پیگیری و بازگشت باشد، که Aider این کار را به صورت خودکار برای شما انجام میدهد. agent را به عنوان یک کاربر معمولی و بدون دسترسی root اجرا کنید، طبق اصول least-privilege users، تا یک دستور اشتباه نتواند به کل سیستم آسیب بزند. و خود سرور را ایمن (hardened) نگه دارید، زیرا یک VPS مخصوص coding همچنان یک سرور عمومی است: SSH فقط با کلید (key-only)، یک فایروال با سیاست default-deny و موارد دیگر. راهنمای OpenClaw hardening guide همین رویکرد را برای یک agent خودمختارتر اتخاذ میکند و این اصول در همه جا کاربرد دارند.
برای متصل کردن یک coding agent به گردش کار خود، building an AI agent with Claude نشان میدهد که چگونه یک مدل ابزارهای شما را هدایت میکند؛ running Google's Gemini CLI on a VPS یک گزینه terminal دیگر است، و self-hosting OpenHands مسیر سنگینتر و خودمختار است. محبوبترین پروژه open source در این حوزه اکنون راهنمای مخصوص خود را دارد: running OpenCode on a VPS آن را با همان الگوی tmux و کاربر بدون دسترسی بالا میآورد.
FAQ
آیا میتوانم به جای API پولی، یک coding agent را با یک مدل محلی اجرا کنم؟
بله. هم Aider و هم Goose با مدلهای محلی که توسط Ollama سرویسدهی میشوند کار میکنند، بنابراین میتوانید یک coding agent را کاملاً self-hosted اجرا کنید، بدون هزینه per-token و بدون اینکه کدی از سرور شما خارج شود. چالش اصلی حافظه است: مدلی که به اندازه کافی برای نوشتن کد مفید توانمند باشد، به مقدار زیادی RAM یا VRAM نیاز دارد، بنابراین قبل از شروع، توان سختافزاری را با مدل تطبیق دهید.
Aider یا Goose، کدام را باید استفاده کنم؟
اگر گردش کار شما مبتنی بر terminal و git است و میخواهید از بالغترین و کمهزینهترین گزینه استفاده کنید، Aider را انتخاب کنید؛ این ابزار هر تغییر را auto-commit میکند تا تاریخچه شما قابل بازگشت باقی بماند. اگر دستیار گستردهتری با یک اکوسیستم بزرگ از extensionها و پشتیبانی از ارائهدهندگان متعدد میخواهید، Goose را انتخاب کنید. هر دو از طریق terminal اجرا میشوند و هر دو با Ollama کار میکنند، بنابراین هر دو برای یک VPS مناسب هستند.
برای یک مدل coding self-hosted به چه مقدار حافظه نیاز دارم؟
بستگی به اندازه مدل و میزان کوانتایز (quantized) شدن آن دارد. یک مدل کوچک کوانتایز شده میتواند روی چند گیگابایت اجرا شود، در حالی که یک مدل قویتر به مقدار بسیار بیشتری نیاز دارد و پنجرههای context طولانیتر این نیاز را افزایش میدهند. از ابزار تعیین اندازه بالا استفاده کنید تا قبل از دانلود، میزان حافظه مورد نیاز یک مدل و طول context را تخمین بزنید.
آیا اجازه دادن به یک AI agent برای ویرایش کد و اجرای دستورات ایمن است؟
با رعایت عادتهای صحیح، این کار قابل مدیریت است. کارهای خود را در یک git repository نگه دارید تا هر ویرایش یک commit قابل بازگشت باشد، agent را به جای root به عنوان یک کاربر بدون دسترسی اجرا کنید، و VPS را مانند هر سرور عمومی دیگری ایمن کنید. تغییراتی که commit میکند را به جای اعتماد کورکورانه، بررسی کنید، به خصوص هر دستوری که میخواهد روی سیستم شما اجرا شود.