ماشینهای توسعه
محیطهای توسعه ایزوله برای ساخت و تست. محیطهای کامل Linux با پشتیبانی Proyecta Cloud.
Proyecta برای هر پروژه یک ماشین توسعه (runtime) اختصاصی فراهم میکند. این یک container ایزوله با محیط کامل Linux است که اپلیکیشن شما در طول توسعه روی آن اجرا میشود.
ماشینهای توسعه چطور کار میکنند؟
Section titled “ماشینهای توسعه چطور کار میکنند؟”وقتی یک پروژه را باز میکنی، Proyecta:
- یک container ایزوله (pod) در cloud ایجاد میکند
- کدت را از GitHub clone میکند
- وابستگیها را نصب و محیط را آماده میکند
- سرور توسعه اپلیکیشنت را راهاندازی میکند
- یک پیشنمایش زنده در builder نمایش میدهد
میتوانی پیشرفت فرآیند provisioning را در Runtime Status Bar زیر نوار ابزار ببینی.
مراحل Provisioning
Section titled “مراحل Provisioning”نوار وضعیت این مراحل را در هنگام راهاندازی نشان میدهد:
| مرحله | توضیح |
|---|---|
| Creating pod | راهاندازی container ایزوله |
| Health check | تأیید اجرای container |
| Git init | Clone کردن مخزن |
| Environment setup | نصب وابستگیها (npm، pip و غیره) |
| Starting services | راهاندازی اپلیکیشن و زیرساخت |
| Ready | ماشین توسعهات کاملاً آنلاین است |
ماشین توسعهام مشکل دارد. چطور برطرفش کنم؟
Section titled “ماشین توسعهام مشکل دارد. چطور برطرفش کنم؟”اگر پیشنمایش بارگذاری نمیشود یا ماشین به نظر میرسد گیر کرده:
- Runtime Status Bar را برای پیامهای خطا بررسی کن
- از Terminal برای بررسی لاگها استفاده کن
- اگر هیچکدام جواب نداد، از هوش مصنوعی بخواه که در رفع اشکال کمک کند
سرویسهای زیرساخت
Section titled “سرویسهای زیرساخت”ماشین توسعهات میتواند شامل container های sidecar برای پایگاههای داده و سرویسها باشد:
- PostgreSQL — پایگاه داده رابطهای (پورت 5432)
- PostGIS — PostgreSQL با افزونههای جغرافیایی (پورت 5432)
- Redis — حافظه کش درونحافظهای (پورت 6379)
- MongoDB — پایگاه داده سندمحور (پورت 27017)
- MySQL — پایگاه داده رابطهای (پورت 3306)
- MailHog — سرور تست ایمیل با رابط وب (پورت SMTP: 1025، پورت UI: 8025)
سرویسهای در حال اجرا و وضعیت آنها را در پنل Services ببین.
حالتهای چرخه عمر
Section titled “حالتهای چرخه عمر”ماشینهای توسعه از این حالتهای چرخه عمر عبور میکنند:
| حالت | توضیح |
|---|---|
| Pending | در انتظار ایجاد |
| Initializing | در حال آمادهسازی محیط |
| Running | فعال و سالم |
| Suspended | متوقفشده برای صرفهجویی در منابع (به سرعت از سر گرفته میشود) |
| Archived | ذخیرهشده در حافظه سرد (بازیابی زمان بیشتری میبرد) |
| Restoring | در حال بازیابی از حافظه archived |
| Failed | فرآیند provisioning یا عملیات با خطا مواجه شد — ماشین را میتوان مجدداً provision کرد |
| Terminated | به طور دائمی متوقف شده |
ماشینها پس از 60 دقیقه عدم فعالیت به طور خودکار suspend میشوند و پس از 24 ساعت در حالت suspension به archive منتقل میشوند.
سؤالات متداول
Section titled “سؤالات متداول”اگر ماشین توسعه از کار بیفتد، اپلیکیشن منتشرشدهام چه میشود؟
backend اپلیکیشنت (توابع serverless و پایگاه داده Convex) روی زیرساخت ابری خود Convex اجرا میشود و صرف نظر از وضعیت ماشین توسعهات در دسترس میماند. اما فایلهای frontend اپلیکیشنت از ماشین توسعه سرو میشوند — اگر این ماشین suspend یا archived شود، بازدیدکنندگان تا زمان از سرگیری ماشین با خطای 503 مواجه میشوند. این موضوع را برای اپلیکیشنهایی که میخواهی همیشه در دسترس عموم باشند در نظر داشته باش؛ با از سرگیری ماشین، سایت بازمیگردد.
آیا میتوانم ماشین توسعه سریعتری داشته باشم؟
در حال حاضر تمام ماشینهای توسعه با تخصیص منابع یکسانی اجرا میشوند. اگر برای یک پروژه بزرگ به ظرفیت بیشتری نیاز داری، با پشتیبانی تماس بگیر.
آیا میتوانم مستقیماً به ماشین توسعه دسترسی داشته باشم؟
بله. از Terminal داخلی برای دسترسی کامل به shell محیط توسعهات استفاده کن.