دیپلوی پروژه Django روی Heroku: راهنمای جامع
این مقاله به آموزش گام به گام دیپلوی یک پروژه Django روی پلتفرم Heroku میپردازد. Heroku یک پلتفرم ابری محبوب برای میزبانی و اجرای برنامههای وب است که فرآیند دیپلوی را برای توسعهدهندگان ساده میکند. این آموزش برای توسعهدهندگان پایتون با تمرکز بر دیپلوی و DevOps با پایتون طراحی شده است.
پیشنیازها
قبل از شروع، اطمینان حاصل کنید که موارد زیر را دارید:
- یک حساب کاربری Heroku
- Heroku CLI نصب شده و پیکربندی شده
- Git نصب شده
- یک پروژه Django فعال
- Python 3.6 یا بالاتر
مرحله ۱: آمادهسازی پروژه Django
برای دیپلوی موفقیتآمیز، پروژه Django شما باید برای Heroku آماده شود. این شامل ایجاد فایلهای مورد نیاز و پیکربندی پروژه است.
۱.۱. فایل requirements.txt
فایل requirements.txt شامل لیستی از تمام پکیجهای پایتون مورد نیاز پروژه شما است. برای ایجاد این فایل، از دستور زیر در ترمینال استفاده کنید:
pip freeze > requirements.txt
این دستور تمام پکیجهای نصب شده در محیط مجازی شما را در فایل requirements.txt ذخیره میکند.
۱.۲. فایل Procfile
فایل Procfile به Heroku میگوید که چگونه برنامه شما را اجرا کند. این فایل باید در ریشه پروژه شما ایجاد شود و محتوای آن به شکل زیر باشد:
web: gunicorn your_project_name.wsgi --log-file -
به جای your_project_name، نام پروژه Django خود را قرار دهید. gunicorn یک سرور WSGI است که برای اجرای برنامههای Django در محیط تولید استفاده میشود.
۱.۳. تنظیمات Django
تنظیمات Django شما باید برای محیط Heroku پیکربندی شود. این شامل تنظیم ALLOWED_HOSTS و DEBUG است.
ALLOWED_HOSTS: این تنظیمات مشخص میکند که کدام دامنهها مجاز به دسترسی به برنامه شما هستند. در محیط تولید، باید دامنه Heroku خود را به این لیست اضافه کنید.DEBUG: این تنظیمات باید در محیط تولید رویFalseتنظیم شود.
میتوانید این تنظیمات را در فایل settings.py پروژه Django خود انجام دهید. برای مثال:
ALLOWED_HOSTS = ['your-heroku-app-name.herokuapp.com', '.herokuapp.com'] DEBUG = False
به جای your-heroku-app-name، نام برنامه Heroku خود را قرار دهید.
۱.۴. فایل staticfiles
Heroku به طور پیشفرض فایلهای استاتیک (مانند CSS، JavaScript و تصاویر) را سرو نمیکند. برای سرو فایلهای استاتیک، باید از یک سرویس CDN مانند Amazon S3 یا از افزونههای Heroku استفاده کنید. در این آموزش، از افزونه Collectstatic استفاده میکنیم.
ابتدا، باید فایلهای استاتیک خود را جمعآوری کنید. برای این کار، از دستور زیر استفاده کنید:
python manage.py collectstatic
این دستور تمام فایلهای استاتیک را در یک پوشه جمعآوری میکند.
مرحله ۲: ایجاد برنامه Heroku
پس از آمادهسازی پروژه Django، میتوانید یک برنامه Heroku ایجاد کنید.
۲.۱. ورود به Heroku
ابتدا، با استفاده از Heroku CLI وارد حساب کاربری خود شوید:
heroku login
۲.۲. ایجاد برنامه
سپس، یک برنامه Heroku ایجاد کنید:
heroku create your-app-name
به جای your-app-name، نام دلخواه برای برنامه خود را قرار دهید. اگر نامی را مشخص نکنید، Heroku به طور تصادفی یک نام برای شما انتخاب میکند.
مرحله ۳: دیپلوی پروژه
اکنون میتوانید پروژه Django خود را روی Heroku دیپلوی کنید.
۳.۱. اضافه کردن ریموت Git
ابتدا، ریموت Git Heroku را به پروژه خود اضافه کنید:
heroku git:remote -a your-app-name
به جای your-app-name، نام برنامه Heroku خود را قرار دهید.
۳.۲. دیپلوی کد
سپس، کد خود را روی Heroku دیپلوی کنید:
git add . git commit -m "Deploy to Heroku" git push heroku master
این دستورات کد شما را به ریموت Heroku ارسال میکنند. Heroku به طور خودکار پروژه شما را نصب و اجرا میکند.
۳.۳. تنظیمات پیکربندی
برخی از تنظیمات پیکربندی را باید به صورت دستی در Heroku تنظیم کنید. این تنظیمات شامل تنظیمات پایگاه داده و کلیدهای مخفی است.
DATABASE_URL: این تنظیمات URL اتصال به پایگاه داده شما را مشخص میکند. Heroku به طور پیشفرض یک پایگاه داده PostgreSQL را برای شما فراهم میکند.SECRET_KEY: این تنظیمات یک کلید مخفی است که برای رمزنگاری دادهها استفاده میشود.
میتوانید این تنظیمات را با استفاده از دستور زیر تنظیم کنید:
heroku config:set DATABASE_URL=your_database_url SECRET_KEY=your_secret_key
به جای your_database_url و your_secret_key، مقادیر مناسب را قرار دهید.
۳.۴. اجرای Migrationها
پس از تنظیمات پیکربندی، باید Migrationهای پایگاه داده را اجرا کنید:
heroku run python manage.py migrate
مرحله ۴: بررسی دیپلوی
پس از دیپلوی، میتوانید برنامه خود را در Heroku بررسی کنید.
۴.۱. باز کردن برنامه
برای باز کردن برنامه خود، از دستور زیر استفاده کنید:
heroku open
۴.۲. بررسی لاگها
برای بررسی لاگهای برنامه خود، از دستور زیر استفاده کنید:
heroku logs --tail
نکات تکمیلی
- استفاده از محیط مجازی: همیشه از یک محیط مجازی برای مدیریت پکیجهای پایتون خود استفاده کنید.
- مدیریت کلیدهای مخفی: از یک سرویس مدیریت کلیدهای مخفی مانند HashiCorp Vault برای ذخیره و مدیریت کلیدهای مخفی خود استفاده کنید.
- مانیتورینگ: از یک سرویس مانیتورینگ مانند New Relic یا Datadog برای نظارت بر عملکرد برنامه خود استفاده کنید.
- مقیاسپذیری: Heroku امکان مقیاسپذیری برنامههای شما را فراهم میکند. میتوانید تعداد Dynoهای خود را افزایش دهید تا عملکرد برنامه خود را بهبود بخشید.
این مقاله یک راهنمای جامع برای دیپلوی پروژه Django روی Heroku ارائه میدهد. با دنبال کردن این مراحل، میتوانید به راحتی برنامه Django خود را روی Heroku دیپلوی و اجرا کنید.

بدون دیدگاه