گردو
راهنمای عملی Python

چطور پروژه پایتون را روی گردو دیپلوی کنیم؟

راهنمای عملی استقرار Django، FastAPI و Flask روی PaaS گردو از Git یا Gerdoo CLI، همراه با دستور ساخت، دستور اجرا، متغیرها، افزونه‌ها و دامنه‌ها.

پاسخ کوتاه

برای دیپلوی پروژه Python بدون مدیریت سرور، مخزن Git را به PaaS گردو متصل کنید یا داخل پوشه پروژه فرمان gerdoo deploy را اجرا کنید. گردو وابستگی‌ها را نصب می‌کند، برنامه را در کانتینر ایزوله بالا می‌آورد و دامنه موقت و SSL در اختیار شما می‌گذارد.

آخرین بازبینی: ۱۴۰۵/۰۶/۱۵

پیش‌نیازهای پروژه

وابستگی‌ها را در requirements.txt یا pyproject.toml ثبت کنید. برنامه باید روی متغیر PORT و آدرس 0.0.0.0 گوش دهد و داده حساس را از متغیرهای محیطی بخواند.

# FastAPI
uvicorn main:app --host 0.0.0.0 --port $PORT

# Django
gunicorn config.wsgi:application --bind 0.0.0.0:$PORT

روش اول: استقرار از Git

  1. در پنل گردو یک پروژه و محیط بسازید.
  2. یک سرویس جدید ایجاد و مخزن GitHub یا GitLab و شاخه موردنظر را انتخاب کنید.
  3. فیلد «دستور اجرا» و در صورت نیاز «دستور ساخت» را ثبت کنید.
  4. مقادیر SECRET_KEY و DATABASE_URL را در بخش «متغیرها» وارد کنید.
  5. استقرار را اجرا کنید و پس از موفقیت بررسی سلامت، در بخش «دامنه‌ها» دامنه اختصاصی را متصل کنید.

روش دوم: استقرار مستقیم با Gerdoo CLI

CLI برای پروژه‌ای مناسب است که هنوز به Git متصل نشده یا باید از خط CI/CD منتشر شود.

curl -fsSL https://get.gerdoo.cloud/install.sh | sh
gerdoo login
cd my-python-project
gerdoo deploy

اولین اجرای gerdoo deploy سرویس را می‌سازد و پوشه را به آن متصل می‌کند. دفعات بعد همان فرمان نسخه تازه را منتشر می‌کند. وضعیت و لاگ‌ها را با gerdoo status و gerdoo logs ببینید.

دیتابیس، فایل و محیط عملیاتی

  • برای PostgreSQL، MySQL یا Redis از بخش «افزونه‌ها» یک سرویس متصل به پروژه بسازید.
  • برای فایل‌های رسانه‌ای Django از بخش «ذخیره‌سازی» فضای ماندگار اضافه کنید یا MinIO را به‌کار ببرید.
  • پیش از انتشار در محیط عملیاتی، migration و collectstatic را در «دستور ساخت» کنترل کنید.
  • برای خطاهای شروع، در بخش «استقرارها» لاگ ساخت و سپس در بخش «لاگ‌ها» خروجی زنده اجرا را بررسی کنید؛ مقدار «دستور اجرا» و PORT را هم کنترل کنید.
  • جزئیات «متغیرها»، «دامنه‌ها» و بازگشت به نسخه قبلی در مستندات PaaS آمده است.

سوالات پرتکرار

برای دیپلوی Python روی گردو به Dockerfile نیاز دارم؟

خیر. گردو پروژه‌های رایج Python را از فایل‌هایی مانند requirements.txt و pyproject.toml تشخیص می‌دهد. اگر به محیط کاملاً سفارشی نیاز دارید، می‌توانید Dockerfile خودتان را هم ارائه کنید.

Django، FastAPI و Flask پشتیبانی می‌شوند؟

بله. کافی است وابستگی‌ها و فرمان اجرای وب‌سرور را در مخزن مشخص کنید؛ برای Django معمولاً Gunicorn و برای FastAPI معمولاً Uvicorn استفاده می‌شود.

آیا می‌توان پروژه را بدون اتصال Git منتشر کرد؟

بله. Gerdoo CLI پوشه محلی را بسته‌بندی و مستقیماً منتشر می‌کند. این مسیر برای توسعه محلی و CI/CD مناسب است.

دیتابیس و فایل‌های آپلودی کجا نگهداری می‌شوند؟

دیتابیس را به‌صورت افزونه متصل و فایل‌ها را روی دیسک ماندگار یا فضای سازگار با S3 مانند MinIO نگهداری کنید؛ فایل‌سیستم نسخه اجرایی جای ذخیره دائمی داده نیست.