11 KiB
11 KiB
مشخصات درسنامه: استقرار عملی پروژه پورتفولیو در لیارا (Liara) و ورسل (Vercel)
- شناسه در سیلابس:
L12.5 - فصل: فصل ۱۲: انتشار روی اینترنت (Ch 12)
- نوع محتوا: 📘 درسنامه متنی
- زمان تقریبی مطالعه: ۲۰ دقیقه
- پیشنیازهای مستقیم:
L12.4(تکامل میزبانی وب و انتخاب PaaS)
۱. اهداف یادگیری (Learning Objectives - Bloom's Taxonomy)
دانشجو پس از مطالعهٔ این درسنامه باید بتواند:
- درک کند (Understand): فرآیند کامل دیپلوی پروژه Next.js به همراه پکیجها و وابستگیها را در دو پلتفرم محبوب لیارا (بومی) و Vercel (بینالمللی) گامبهگام پیاده کند.
- تحلیل/ارزیابی کند (Evaluate): لاگهای زنده زمان ساخت (Build Logs) در داشبورد ابری را بازبینی کرده و خطاهای احتمالی زمان استقرار را تشخیص دهد.
- بهکار ببندد (Apply): پایگاه داده ابری Supabase را به پروژه مستقرشده متصل کرده و دامنههای مجاز بازگشت (Redirect URLs) را در کنسول احراز هویت سوپابیس ثبت نماید.
- ایجاد کند (Create): یک پایپلاین انتشار خودکار از طریق گیتهاب ایجاد کند که با هر کامیت، نسخه زنده پورتفولیو به صورت خودکار بهروزرسانی شود.
۲. محدوده و مرزهای محتوا (Scope & Boundaries)
آنچه باید پوشش داده شود (In-Scope):
- لحظه تاریخی: دیدن پروژه روی یک آدرس عمومی اینترنت!
- تبدیل کدهای داخل ادیتور به یک سایت زنده اینترنتی که با هر گوشی و لپتاپی باز میشود.
- مسیر اول: استقرار روی پلتفرم ابری بومی لیارا (Liara.ir):
- ساخت یک برنامه از نوع Next.js در کنسول لیارا با انتخاب ریجن ایران.
- استقرار با ابزار خط فرمان لیارا (Liara CLI) یا اتصال مستقیم به مخزن گیتهاب.
- پیکربندی بهینهساز کانتینر در
next.config.jsبا ویژگیoutput: 'standalone'برای کاهش شگفتانگیز حجم بیلد. - دریافت زیردامنه رایگان و پایدار (مانند
my-portfolio.liara.run).
- مسیر دوم: استقرار روی پلتفرم بینالمللی Vercel:
- ورود به vercel.com با حساب گیتهاب، انتخاب مخزن پورتفولیو و زدن دکمه Deploy.
- رصد انیمیشن زنده بیلد کدهای Next.js و دریافت آدرس اختصاصی
*.vercel.app.
- تکمیل زنجیره اتصال به پایگاه داده Supabase:
- چرا بعد از دیپلوی لاگین با گوگل/گیتهاب کار نمیکند؟
- حل قطعی: ثبت آدرس پروداکشن در بخش Authentication
\rightarrowURL Configuration\rightarrowRedirect URLs در داشبورد Supabase.
- قابلیت نجاتبخش بازگشت آنی (Instant Rollback):
- اگر تغییری منتشر شد که باگ داشت، چطور با یک کلیک در پنل نسخه قبلی را بدون نیاز به بیلد مجدد برگردانیم.
- دستورات چندسکویی نصب ابزارهای خط فرمان لیارا و ورسل:
- نصب در منوهای کشویی ویندوز، مک و لینوکس:
- نصب Liara CLI:
npm install -g @liara/cli - نصب Vercel CLI:
npm install -g vercel
- نصب Liara CLI:
- نصب در منوهای کشویی ویندوز، مک و لینوکس:
- کالاوتهای آموزشی و هشدار کوئرا:
- کالاوت بنفش (
<details class="violet">): ویژگیoutput: 'standalone'در Next.js که فایلهایnode_modulesچندصد مگابایتی را به چند مگابایت خالص تبدیل میکند. - کالاوت سبز (
<details class="green">): لذت مشاهده اولین پیام موفقیت سبز «Deployment Completed» در داشبورد ابری. - کالاوت قرمز (
<details class="red">): تله آدرس Redirect سوپابیس؛ فراموشی ثبت دامنه جدید در تنظیمات Supabase مانع ورود کاربران به پنل ادمین میشود.
- کالاوت بنفش (
آنچه نباید وارد آن شویم (Out-of-Scope):
- پیکربندی متغیرهای محیطی با جزییات کامل (در درس بعدی، ۱۲.۶، به صورت اختصاصی پوشش داده میشود).
- خرید و اتصال دامنه اختصاصی شخصی (در درس ۱۲.۷ بررسی میشود).
۳. مفاهیم کلیدی و کلمات تخصصی (Key Concepts & Terms)
| اصطلاح انگلیسی | معادل فارسی مصوب | توضیح یکخطی ساده |
|---|---|---|
| Standalone Output | خروجی مستقل سرور | قابلیت Next.js برای بستهبندی تنها کدهای ضروری در یک فایل سبک و بهینه برای کانتینرها |
| Build Logs | لاگهای فرآیند ساخت | پیامهای متنی زنده در پنل ابری که جزئیات دانلود پکیجها و کامپایل کدها را نمایش میدهند |
| Instant Rollback | بازگشت آنی به نسخه قبل | امکان سوییچ فوری به نسخه پایدار قبلی سایت در عرض یک ثانیه در صورت بروز مشکل در بیلد جدید |
| Liara CLI | ابزار خط فرمان لیارا | رابط متنی ترمینال برای ارسال مستقیم فایلهای پروژه به سرورهای ابری لیارا |
| Redirect URL Whitelist | لیست سفید آدرسهای مجاز بازگشت | تنظیمات امنیتی سوپابیس برای ممانعت از بازگشت توکنهای لاگین به دامنههای ناشناس و مشکوک |
۴. جایگاههای تصاویر و نمودارها (Visual & Diagram Placeholders)
راهنمای ایجنت نویسنده: تمام تصاویر باید در پوشهٔ
images/ذخیره شده و در جدول تکخانهای وسطچین درج شوند:
- تصویر کاور درس:
images/cover.png- موضوع: نمایش دو سفینه فضایی نئونی مدرن با لوگوهای لیارا و ورسل که کدهای پروژه را به اوج آسمان ابری هدایت میکنند.
- مراحل استقرار در داشبورد لیارا:
images/liara-deployment-steps.png- موضوع: اسکرینشات از مراحل انتخاب پلتفرم Next.js، ساخت برنامه و مشاهده لاگهای بیلد موفق در کنسول لیارا.
- فرآیند Import مخزن در داشبورد Vercel:
images/vercel-import-repo-screen.png- موضوع: اسکرینشات از صفحه اتصال مخزن پورتفولیو از گیتهاب در ورسل و زدن دکمه Deploy با جشن پرتاب کاغذهای رنگی (Confetti).
- تنظیم Redirect URL در کنسول Supabase:
images/supabase-redirect-url-setting.png- موضوع: اسکرینشات از داشبورد Supabase Auth با اضافه شدن آدرسهای دامنه پروداکشن در فیلد Redirect URLs.
۵. بخشبندی و ساختار محتوایی پیشنهادی درسنامه (README.md)
- تیتر اصلی:
# استقرار عملی پروژه پورتفولیو در لیارا (Liara) و ورسل (Vercel) - مقدمه: لحظهای که ماهها برایش تلاش کردهاید؛ پورتفولیوی شما آماده تماشای جهان است!
- جدول کاور درس
- آمادهسازی پروژه برای استقرار سرورلس:
- فعالسازی ویژگی طلایی
output: 'standalone'درnext.config.js.
- فعالسازی ویژگی طلایی
- آموزش عملی استقرار در لیارا (میزبانی پایدار بومی):
- گام ۱: ساخت اکانت در Liara.ir و ورود به پنل.
- گام ۲: ساخت برنامه جدید از نوع Next.js.
- گام ۳: استقرار با کامند
liara deployدر ترمینال یا اتصال اتوماتیک گیتهاب. - گام ۴: مشاهده لاگهای اجرای کانتینر و دریافت لینک اختصاصی
*.liara.run.
- آموزش عملی استقرار در Vercel (استاندارد جهانی):
- ورود با گیتهاب، انتخاب ریپازیتوری، زدن دکمه Deploy و تماشای بیلد خودکار.
- هماهنگسازی پایگاه داده Supabase با آدرس پروداکشن جدید:
- ثبت نشانی جدید سایت در لیست سفید Redirect URLs کنسول سوپابیس برای کارکرد بینقص ورود ادمین.
- جعبه ابزار خروج اضطراری: قابلیت Instant Rollback:
- چگونه در کمتر از ۵ ثانیه اشتباهات ناخواسته را در پنل به نسخه سالم قبلی برگردانیم.
- دستورات چندسکویی نصب و ورود به CLIهای لیارا و ورسل:
- منوی کشویی سهگانه برای ویندوز، مک و لینوکس:
- Windows (PowerShell):
npm install -g @liara/cli vercel liara login - macOS (Terminal):
npm install -g @liara/cli vercel liara login - Linux (Bash):
npm install -g @liara/cli vercel liara login
- Windows (PowerShell):
- منوی کشویی سهگانه برای ویندوز، مک و لینوکس:
- باکس نکته Quera (
<details class="violet">): اهمیت ممیزی حافظه رم اختصاصیافته در پلنهای لیارا (پلن پایه ۲۵۶ مگابایت یا ۵۱۲ مگابایت برای Next.js). - باکس هشدار Quera (
<details class="red">): عدم تعریف متغیرهای محیطی در پنل ابری منجر به خطای ۵۰۰ یا صفحه سفید در پروداکشن میشود (موضوع درس بعد). - باکس رضایتبخش Quera (
<details class="green">): تست باز کردن آدرس عمومی سایت روی گوشی موبایل خارج از شبکه وایفای خانه و مشاهده کارکرد بدون نقص آن. - جمعبندی درسنامه: اجرای موفق اولین دیپلوی زنده؛ ورود به مبحث حیاتی تنظیم متغیرهای محیطی پروداکشن در پنلهای ابری در درس بعدی.
۶. معیارهای پذیرش (Acceptance Criteria for Reviewer)
- مراحل استقرار گامبهگام در هر دو پلتفرم لیارا و ورسل به صورت تصویری و متنی شرح داده شود.
- تنظیم کلیدی
output: 'standalone'در فایل کانفیگ Next.js آموزش داده شود. - رفع باگ رایج Redirect URL در احراز هویت Supabase به طور عملی گنجانده شود.
- دستورات خط فرمان Liara CLI در قالب منوهای چندسکویی ارائه گردد.