بالا آوردن یک پروژه ساده جنگو روی اینترنت

سلام من در حال یادگیری جنگو بودم که این فکر به سرم زد که چطور میتونم پروژه ای که نوشتم رو روی اینترنت بذارم که برای همه قابل دسترسی باشهخب یه راهش این هست ادم بره VPS بخره و بخواد وابستگی ها مختلف رو نصب کنه وب سرورش رو بالا بیاره DNS ها رو تنظیم کنه منابع رو مدیریت کنه و .....یه راه دیگه اش هم این هست که از سرویس هایی به اسم PaaS استفاده کنیم که خودشون همه این کارا رو برای ما انجام میدن و ما فقط کافیه پروژه خودمون رو روش اپلود کنیممن تصمیم گرفتم از سرویس ابری فندق استفاده کنم چون هم سازنده هاش رو دوست دارم و ادم های باحالی هستن هم به صورت رایگان یه فضایی رو در اختیارتون قرار میده که بتونید پروژه های سبک و تستی خودتون رو روش بالا بیارین به طور مرسوم برای استفاده از این سرویس ها شما نیاز دارید که داکر بلد باشین اما فندق برای یه سری فریمورک ها مثل جنگو خودش تقریبا همه کارها رو براتون انجام میده که میتونید بدون دانش دانکر پروژه خودتون رو روی سرویس هاشون دیپلوی کنیدتمام این آموزش برگرفته شده از سرکله زدن من با مستندات فندق که میتونید از اینجا بخونیدشخب قبل از هرکاری لازمه که توی سایت فندق یه حساب کاربری درست کنید میتونید از لینک برای ثبت نام استفاده کنید بعد از ساخت حساب کاربری نیازه که دوتا تغیر رو توی پروژه جنگو خودتون اعمال کنید اول از همه فایل setting.py رو داخل ادیتور خودتون باز کنید و دنبال این خط بگردینALLOWED_HOSTS = []و اون رو به ALLOWED_HOSTS = ['*']تغیر بدین اینطوری جنگو اجازه میده که بقیه هم بتونن به برنامه شما دسترسی داشته باشنتغیر دوم این هست که یه متغیر STATIC_ROOTرو به آخرین خط فایل setting.py اضافه کنید و مقدارش رو برابر با مسیر فایل های static پروژه اتون قرار بدین که معمولا توی همون پوشه پروژه جنگو قرار داره مثلا برای من میشهSTATIC_ROOT='/static/'خب کار ما فایل های جنگو تموم شد فقط دوتا تغیر ایجاد کردیم اول اینکه اجازه بدیم بقیه از بیرون به پروژه ما دسترسی داشته باشن دوم اینکه یه مقدار برای STATIC_ROOT ست کردیم چون CLI فندق بهش نیاز داره که در ادامه بهش میرسیمآخرین تغیر و فایلی که باید ایجاد کنیم یه فایل requirements.txt هست تا به فندق بفهمونیم پروژه ما چه وابستگی هایی رو داره برای انجام اینکار دو راه وجود داره اما قبل از اون طریق ترمینال وارد پوشه اصلی پروژه اتون بشید چون این فایل باید اونجا باشهبه دو روش میتونید این فایل رو ایجاد کنید یا میتونید از طریق دستور pip freeze > requirements.txtتمام پکیچ هایی که نصب کردین رو داخل فایل requirements.txt کپی کنید (اینکار در صورتی توصیه میشه که از virtualenv ها استفاده میکنید چون در غیر این صورت هر پکیچی که از طریق pip نصب کردین کپی میشه داخل فایل requirements.txt )یا اگه فقط از جنگو استفاده کردین به صورت دستی یه فایل requirements.txt درست کنید و این مقادیر رو داخلش کپی کنید asgiref==3.3.1Django==3.1.7pytz==2021.1sqlparse==0.4.1خب حالا ما همه مقدمات کار برای بالا اوردن سرویس جنگوی خودمون روی فندق رو آماده کردیم بریم سر وقت CLI فندقداخل ترمینال این دستور رو وارد کنید و اینتر رو بزنید (قبلش مطعمن بشید با دستور exit از virtualenv خودتون خارج شده باشین )pip install fandogh_cli --upgradeبا اینکار CLI فندق رو روی سیستم خودتون نصب میکنید و اینطوری میتونید از طریق ترمینال سرویس های خودتون رو کنترل و برسی کنیدبعد از نصب CLI فندق دستور fandogh loginرو بزنید و برای لاگین کردن از ادرس ایمیل و پسوردی که توی فندق حساب ساختین استفاده کنید (به خاطر نکات امنیتی پسوردی که وارد میکنید توی ترمینال نمایش داده نمیشه)خب حالا همه چیز برای فندق اماده اس تا بتونه برنامه ما رو میزبانی کنه از طریق ترمینال به پوشه پروژه خودتون برید و دستور زیر رو وارد کنیدfandogh source init‍‍بعد از وارد کردن این دستور یه پیغام نمایش داده میشه که میخواد به سرویستون یه اسم بدین اسم دلخواه خودتون رو وارد کنید و اینتر رو بزنید Service Name: mywebsiteبعدش یه لیست براتون باز میشه که شامل پروژه هایی هست که فندق خودش میتونه به صورت خودکار Dockerfile شون رو ایجاد کنه که چون پروژه ما جنگو هست عدد ۲ رو وارد کنید و اینتر رو بزنید-[1] Static Website-[2] Django Project-[3] Laravel Project...Please choose one of the project types above: 2بعدش ازتون میپرسه فایل های پروژه اتون کجاس که چون ما توی پوشه اصلی پروژه هستیم نیازی نیست چیزی رو وارد کنیم و اینتر رو میزنیم تا این مرحله هم رد بشهThe context directory [.]:بعدش از ما ورژن پایتون مورد نظرمون رو میپرسه اگه ورژن خاصی مد نظرتون هست وارد کنید در غیر این صورت این سوالم خالی بذارید و اینتر بزنیدPython version [3.7]:بعدش از شما ادرس فایل WSGI رو میپرسه اینجا لازمه که یکم دقت کنید چون اگه مسیر این فایل رو درست وارد نکنید وقتی وارد ادرسی که بهتون میده بشید با خطای ۵۰۴ مواجه میشید (فایل WSGI معمولا توی همون پوشه ای هست که فایل setting.py وجود داره و اسمش wsgi.py هست) دقت کنید که مسیر فایل ها با . جدا میشه نه با / و نیازی نیست اخرش py. رو هم بنویسیدمعمولا خودش فایل های WSGI رو که پیدا میکنه نمایش میده و شما فقط کافیه همون رو عینا تایپ کنید و اینتر بزنیدPossible wsgi modules are:- myproject.wsgiWSGI module: myproject.wsgiبعدش از شما مسیر فایل های static رو میپرسه که همون چیزی رو که قبلا توی فایل setting.py وارد کردین وارد میکنید اگرم پروژتون فایل استاتیک نداره مقدار " رو وارد کنیدStatic Path [static]: /static/توی اخرین مرحله ازتون ادرس پوشه media رو میپرسه اگه همچین پوشه ای ندارید فقط کافیه اینتر رو بزنید تا ازش رد بشینخب کار تموم شد الان فقط کافیه دستور fandogh source runرو بزنید و بقیه کار ها رو به فندق بسپرید خودش همه فایل ها رو روی سرویس خودش اپلود میکنه Dockerfile مورد نیاز رو میسازه و بقیه داستان هااگه همه چیز رو درست انجام داده باشین و یه عالمه پیغام روی صفحه ترمینال نشون داده میشه و در اخر این عبارت رو مینویسه You can press ctrl + C to exit details service state monitoringمیتونید ادرس پروژه انلاین خودتون رو توی این قسمت پیدا کنید و توی مرورگر واردش کنید تا نتیجه کارتون رو ببینید Domains:در آینده هم اگه تغیری توی پروژتون دادین فقط کافیه مجددا دستور fandogh source runبزنید تا تغیراتتون اعمال بشه (اگه از طریق pip چیزی رو نصب کردین باید فایل requirements.txt رو هم آپدیت کنید )امیدوارم که این آموزش به کارتون اومده باشه اگه سوالی داشتین خوشحال میشم توی بخش نظرات بپرسید تا باهم جوابش رو پیدا کنیم