رفتن به محتوا

ماشین‌های توسعه

محیط‌های توسعه ایزوله برای ساخت و تست. محیط‌های کامل Linux با پشتیبانی Proyecta Cloud.

Proyecta برای هر پروژه یک ماشین توسعه (runtime) اختصاصی فراهم می‌کند. این یک container ایزوله با محیط کامل Linux است که اپلیکیشن شما در طول توسعه روی آن اجرا می‌شود.

ماشین‌های توسعه چطور کار می‌کنند؟

Section titled “ماشین‌های توسعه چطور کار می‌کنند؟”

وقتی یک پروژه را باز می‌کنی، Proyecta:

  1. یک container ایزوله (pod) در cloud ایجاد می‌کند
  2. کدت را از GitHub clone می‌کند
  3. وابستگی‌ها را نصب و محیط را آماده می‌کند
  4. سرور توسعه اپلیکیشنت را راه‌اندازی می‌کند
  5. یک پیش‌نمایش زنده در builder نمایش می‌دهد

می‌توانی پیشرفت فرآیند provisioning را در Runtime Status Bar زیر نوار ابزار ببینی.

نوار وضعیت این مراحل را در هنگام راه‌اندازی نشان می‌دهد:

مرحلهتوضیح
Creating podراه‌اندازی container ایزوله
Health checkتأیید اجرای container
Git initClone کردن مخزن
Environment setupنصب وابستگی‌ها (npm، pip و غیره)
Starting servicesراه‌اندازی اپلیکیشن و زیرساخت
Readyماشین توسعه‌ات کاملاً آنلاین است

ماشین توسعه‌ام مشکل دارد. چطور برطرفش کنم؟

Section titled “ماشین توسعه‌ام مشکل دارد. چطور برطرفش کنم؟”

اگر پیش‌نمایش بارگذاری نمی‌شود یا ماشین به نظر می‌رسد گیر کرده:

  1. Runtime Status Bar را برای پیام‌های خطا بررسی کن
  2. از Terminal برای بررسی لاگ‌ها استفاده کن
  3. اگر هیچ‌کدام جواب نداد، از هوش مصنوعی بخواه که در رفع اشکال کمک کند

ماشین توسعه‌ات می‌تواند شامل container های sidecar برای پایگاه‌های داده و سرویس‌ها باشد:

  • PostgreSQL — پایگاه داده رابطه‌ای (پورت 5432)
  • PostGIS — PostgreSQL با افزونه‌های جغرافیایی (پورت 5432)
  • Redis — حافظه کش درون‌حافظه‌ای (پورت 6379)
  • MongoDB — پایگاه داده سندمحور (پورت 27017)
  • MySQL — پایگاه داده رابطه‌ای (پورت 3306)
  • MailHog — سرور تست ایمیل با رابط وب (پورت SMTP: 1025، پورت UI: 8025)

سرویس‌های در حال اجرا و وضعیت آن‌ها را در پنل Services ببین.

ماشین‌های توسعه از این حالت‌های چرخه عمر عبور می‌کنند:

حالتتوضیح
Pendingدر انتظار ایجاد
Initializingدر حال آماده‌سازی محیط
Runningفعال و سالم
Suspendedمتوقف‌شده برای صرفه‌جویی در منابع (به سرعت از سر گرفته می‌شود)
Archivedذخیره‌شده در حافظه سرد (بازیابی زمان بیشتری می‌برد)
Restoringدر حال بازیابی از حافظه archived
Failedفرآیند provisioning یا عملیات با خطا مواجه شد — ماشین را می‌توان مجدداً provision کرد
Terminatedبه طور دائمی متوقف شده

ماشین‌ها پس از 60 دقیقه عدم فعالیت به طور خودکار suspend می‌شوند و پس از 24 ساعت در حالت suspension به archive منتقل می‌شوند.

اگر ماشین توسعه از کار بیفتد، اپلیکیشن منتشرشده‌ام چه می‌شود؟

backend اپلیکیشنت (توابع serverless و پایگاه داده Convex) روی زیرساخت ابری خود Convex اجرا می‌شود و صرف نظر از وضعیت ماشین توسعه‌ات در دسترس می‌ماند. اما فایل‌های frontend اپلیکیشنت از ماشین توسعه سرو می‌شوند — اگر این ماشین suspend یا archived شود، بازدیدکنندگان تا زمان از سرگیری ماشین با خطای 503 مواجه می‌شوند. این موضوع را برای اپلیکیشن‌هایی که می‌خواهی همیشه در دسترس عموم باشند در نظر داشته باش؛ با از سرگیری ماشین، سایت بازمی‌گردد.

آیا می‌توانم ماشین توسعه سریع‌تری داشته باشم؟

در حال حاضر تمام ماشین‌های توسعه با تخصیص منابع یکسانی اجرا می‌شوند. اگر برای یک پروژه بزرگ به ظرفیت بیشتری نیاز داری، با پشتیبانی تماس بگیر.

آیا می‌توانم مستقیماً به ماشین توسعه دسترسی داشته باشم؟

بله. از Terminal داخلی برای دسترسی کامل به shell محیط توسعه‌ات استفاده کن.