از تجربهی شخصی: ArvanCloud برای مدت طولانی مطمئنترین انتخاب بود، ولی اخیراً Liara هم عملکرد بهتری داشته. هر دو رو چک کن و ببین کدوم توی لحظهای که داری کار میکنی بهتر جواب میده.
۳. میرور پکیج منیجرهای اپلیکیشن
باید مطمعن بشی که هر پکیج منیجری که استفاده میکنی داره از میرور های داخل ایران استفاده میکنه.
مثال میزنم اگر از npm استفاده میکنی برای پکیج های جاوا اسکریپتی / تایپ اسکریپتی باید بری میرور ایران ان پی ام رو پیدا کنی و ست کنی. چیزایی که الان کار میکنن لیارا و رانفلر هستند اما از اونجایی که رانفلر پول میگیره فقط در صورتی استفاده کنید که خیلی سرعت براتون مهمه وگرنه میرور های دیگه کارتون راه میندازن.
از پی اچ چی دارید و از کامپوزر استفاده میکنید همینطور.
کارگو برای راست. ناگت برای سی شارپ و هر چیزی خلاصه ببینید پکیج منیجرتون چیه و میرورشو به روشی که توضیح میدن ست کنید.
اگر پکیج منیجرتون لینک دانلود و یا وریفای پکیج هارو ذخیره میکنه در جایی - مثلا npm در package-lock اینکارو میکنه - مطمعن شید که اون لینک ها هم آپدین شدن مثلا برای ان پی ام:
اینجاست که ماجرا کمی دردسرتر میشه. مثلاً آرچ PostgreSQL 17 به بعد رو توی repo رسمیش نداره. معمولاً باید میرور رسمی خود PostgreSQL رو اضافه کنی — ولی اون میرور از ایران جواب نمیده.
راهحل: به devneeds.ir مراجعه کن. میرور ایرانی از نسخههای مختلف PostgreSQL اونجا هست که از نت ملی هم پاسخگوئه.
برای اوبونتو، PostgreSQL repository رسمی معمولاً توی apt بدون مشکل کار میکنه — ولی اگه روی نت ملی isolated هستی، اینجا هم باید میرور ایرانی پیدا کنی.
۵. تست روی سیستم خودت قبل از deploy
یه قدم که خیلیها رد میکنن اینه که همهی این تنظیمات رو روی ماشین محلی خودت هم چک کنی. اگه روی ماشین خودت با همین میرورها npm install بزنی و همه چیز دانلود بشه، با اطمینان بیشتری میتونی روی سرور هم همین کار رو بکنی.
این یه شبیهسازی سادهست: مطمئن میشی که lockfile ها درست هستن و هیچ dependency ای نیست که فقط از خارج قابل دسترسه.
SSL روی سرور ایرانی
این یه بحث جداست — و صادقانه بگم، راحت نیست. Let's Encrypt از ایران مشکل داره، و خیلی از راهحلهای خودکار SSL روی شبکهی ملی کار نمیکنن. devneeds.ir مستندات مربوط به ست کردن SSL در این شرایط رو داره — بهتره مستقیم از اونجا بخونی چون وضعیت ممکنه تغییر کرده باشه و اطلاعات بهروز باشه.
شوخی نیست — دردسره. ولی مجبوریم.
خلاصهی checklist
قبل از deploy روی هر سرور ایرانی:
میرور توزیع لینوکس → devneeds.ir یا ArvanCloud
میرور Docker daemon → ArvanCloud یا Liara
میرور پکیج منیجرها (npm، pip، Composer و بقیه) → liara.ir/mirrors
lockfile ها رو پاک و rebuild کن تا لینکها آپدیت بشن
پایگاه دادههای خارج از repo سیستم عامل → devneeds.ir چک کن
روی ماشین محلی با همین میرورها تست کن قبل از deploy
اگه اینها رو انجام بدی، احتمال اینکه deploy ات بدون مشکل بره بالاست — و مهمتر از اون، اگه یه روز نت قطع شد، میتونی بدون وابستگی به اینترنت خارجی آپدیت و نگهداری کنی. این آمادگی نباید ضروری باشه، ولی متأسفانه هست.