xdea

از localhost تا Production؛ سایتت چطور واقعاً آنلاین میشه؟

از localhost تا Production یعنی بردن پروژه از لپ‌تاپت به جایی که همه ببینن: هاست، دامنه، قفل آدرس و آپدیت. کل زنجیره رو ساده و قدم‌به‌قدم ببین.

۶ دقیقه خوندن
از localhost تا Production؛ سایتت چطور واقعاً آنلاین میشه؟

از localhost تا Production یعنی بردن پروژه‌ت از لپ‌تاپ خودت به جایی که هر کسی با یه آدرس ساده بتونه بازش کنه. localhost همون نسخه‌ایه که فقط رو کامپیوتر خودت اجرا میشه، و Production یعنی نسخه واقعی که کاربرها باهاش کار می‌کنن.

جواب کوتاه: برای اینکه پروژه‌ت آنلاین بشه، چهار تا چیز لازم داری: یه جای همیشه‌روشن که کدت روش اجرا بشه، یه اسم (دامنه) که مردم تایپش کنن، یه وصل‌کننده که اون اسم رو به اون جا برسونه، و قفل کنار آدرس. بعدش هم یه راه مرتب برای آپدیت کردن.

چرا چیزی که رو لپ‌تاپم کار می‌کنه، برای بقیه باز نمیشه؟

وقتی تو ترمینال می‌زنی npm run dev و آدرس localhost:3000 باز میشه، سایتت فقط داره تو خونه خودت اجرا میشه. localhost یعنی «همین کامپیوتر». اگه همین آدرس رو برای دوستت بفرستی، اون داره کامپیوتر خودش رو نگاه می‌کنه، نه مال تو رو.

یه مثال ساده: پروژه‌ت الان مثل غذاییه که تو آشپزخونه خودت پختی. خوشمزه‌ست، ولی کسی جز خودت نمی‌تونه ازش بخوره. برای اینکه بقیه هم بخورن، باید یه رستوران داشته باشی: یه جا با آدرس معلوم که همیشه درش بازه.

تازه لپ‌تاپت رو هم می‌بندی، خاموشش می‌کنی، با خودت می‌بریش. سایت واقعی یه جایی لازم داره که هیچ‌وقت در کیف نره.

مسیر از localhost تا Production، حلقه به حلقه

کل مسیر رو میشه این‌طوری دید:

کد روی لپ‌تاپ → هاست (جایی که کد همیشه روشنه) → دامنه (اسم سایت) → DNS (وصل کردن اسم به هاست) → SSL (قفل کنار آدرس) → سایت آنلاین → آپدیت‌های بعدی

هر حلقه رو جدا باز می‌کنیم.

۱. هاست: جایی که پروژه‌ت همیشه روشنه

هاست (Host) یه کامپیوتره که یه جای دیگه، تو یه مرکز داده، شبانه‌روز روشنه و به اینترنت وصله. کدت رو می‌بری اونجا و همونجا اجراش می‌کنی. همون «رستوران» مثال بالا.

یه نکته که خیلی‌ها رو گیر میندازه: کدی که رو لپ‌تاپت کار می‌کنه، لزوماً اونجا بدون تغییر کار نمی‌کنه. نسخه Node یا Python فرق داره، یه کتابخونه نصب نیست، یا یه تنظیم (مثل رمز دیتابیس یا کلید یه سرویس) فقط رو سیستم خودت بوده. این تنظیم‌ها معمولاً تو یه فایل به اسم .env هستن و باید جداگونه رو جای جدید هم تعریف بشن.

اگه پروژه‌ت دیتابیس داره، اون هم باید رو یه جای همیشه‌روشن باشه، نه رو لپ‌تاپت.

۲. دامنه: اسمی که مردم تایپ می‌کنن

هر جای روشن تو اینترنت یه آدرس عددی داره که کسی حفظش نمی‌کنه. دامنه همون اسم خوانایی مثل myshop.ir هست که جای اون عدد تایپ میشه. دامنه رو جدا می‌خری و سالانه تمدیدش می‌کنی. اگه تمدید یادت بره، سایتت با اینکه سالمه دیگه باز نمیشه.

۳. DNS: دفترچه تلفن اینترنت

DNS در واقع دفترچه تلفن اینترنته: اسم سایتت رو به آدرس واقعی جایی که سایتت روشه وصل می‌کنه. وقتی دامنه رو خریدی، باید تو تنظیماتش بگی «این اسم مال این آدرسه».

تغییرات این دفترچه فوری به همه جا نمی‌رسه. گاهی چند ساعت طول می‌کشه تا همه دنیا اسم جدید رو بشناسن. برای همین اگه تازه وصلش کردی و هنوز باز نمیشه، همیشه به این معنی نیست که چیزی خرابه.

۴. SSL: قفل کنار آدرس

گواهی SSL همون چیزیه که باعث میشه آدرس سایتت با https باز بشه و کنارش یه قفل کوچیک بیاد. کارش اینه که اطلاعاتی که بین مرورگر کاربر و سایتت رد و بدل میشه رمزنگاری بشه، که کسی وسط راه نتونه راحت بخونتش.

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

۵. اجرا و آپدیت: کاری که هیچ‌وقت تموم نمیشه

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

هر بار باید نسخه جدید رو از لپ‌تاپت به جای اصلی ببری، بدون اینکه سایت وسط کار از دسترس خارج بشه. اینجاست که خیلی‌ها می‌فهمن ساختن با AI راحت شده، ولی روشن نگه‌داشتن و آپدیت کردن هنوز کار واقعی می‌خواد.

کجاها معمولاً گیر می‌کنیم؟

اگه اولین بارته، احتمالاً یکی از این‌ها سرت میاد:

  1. «رو سیستم خودم کار می‌کرد!» تنظیمات فایل .env یا نسخه ابزارها رو جای جدید فرق داره.
  2. سایت بالا اومده ولی خالیه یا خطا میده. دیتابیس هنوز رو لپ‌تاپته یا به جای جدید وصل نشده.
  3. دامنه رو وصل کردم ولی باز نمیشه. یا تنظیم DNS اشتباهه، یا هنوز به همه جا نرسیده.
  4. قفل نیومده یا هشدار میده. گواهی نصب نشده یا فقط رو یکی از آدرس‌ها (با www یا بدون اون) نصبه.
  5. هر آپدیت یه چیزی رو خراب می‌کنه. چون نسخه‌ای که آزمایش کردی با نسخه‌ای که رفته بالا یکی نیست.

این‌ها نشونه بلد نبودن نیستن؛ تقریباً همه یه بار از این مسیر رد شدن. اگه دوست داری ببینی کل این مسیر از اولین ایده چه شکلیه، راهنمای ساخت MVP با AI از صفر تا Production رو بخون.

یه چک‌لیست ساده قبل از آنلاین کردن

قبل از اینکه لینک سایتت رو برای کسی بفرستی، این‌ها رو یه بار مرور کن:

  1. پروژه رو یه بار با حالت نهایی (npm run build) رو سیستم خودت اجرا کن، نه فقط حالت توسعه.
  2. همه تنظیم‌های فایل .env رو یه جا بنویس تا رو جای جدید جا نیفته. این فایل رو هیچ‌وقت عمومی نکن.
  3. دیتابیس رو رو جایی بذار که همیشه روشنه.
  4. دامنه رو بخر و تاریخ تمدیدش رو یه جا یادداشت کن.
  5. آدرس رو هم با www هم بدون اون، و هم رو گوشی امتحان کن.
  6. قبل از هر آپدیت بزرگ، خودت یه نسخه از فایل‌ها و دیتابیس جایی جدا نگه دار.

اگه سایتت آنلاین شد ولی کند باز میشه، اون یه بحث جداست که تو چرا بعضی سایت‌ها سریع‌اند و بعضی نه مفصل توضیح دادیم.

لازمه همه این‌ها رو خودم انجام بدم؟

نه لزوماً. بعضی‌ها از یاد گرفتن این زنجیره لذت می‌برن و ارزشش رو هم داره. بعضی‌ها ترجیح میدن وقتشون رو بذارن رو خود محصول و کاربرها.

خیلی از پروژه‌های شخصی هم دقیقاً همین‌جا متوقف میشن، نه موقع ساختن؛ درباره‌ش تو چرا پروژه‌های شخصی هیچ‌وقت Launch نمی‌شوند نوشتیم. اگه ترجیح میدی این بخش با کس دیگه‌ای باشه، ما تو xdea سایت‌ها رو برای صاحبشون راه‌اندازی می‌کنیم یا از جای قبلی منتقل می‌کنیم.

سوال‌های پرتکرار

localhost با Production چه فرقی داره؟

localhost نسخه‌ایه که فقط رو کامپیوتر خودت اجرا میشه و بقیه نمی‌بیننش. Production نسخه‌ایه که رو یه جای همیشه‌روشن اجرا میشه و همه با یه آدرس بهش دسترسی دارن.

بدون دامنه هم میشه سایت رو آنلاین کرد؟

از نظر فنی آره، با همون آدرس عددی. ولی کسی اون عدد رو حفظ نمی‌کنه، مرورگرها معمولاً بدون دامنه قفل آدرس نشون نمیدن و برای کار واقعی تقریباً همیشه دامنه لازمه.

چرا بعد از وصل کردن دامنه، سایتم هنوز باز نمیشه؟

معمولاً چون تغییر تنظیمات DNS هنوز به همه جا نرسیده. چند ساعت صبر کن و از یه اینترنت دیگه، مثلاً گوشی، هم امتحان کن. اگه بعد از یه روز هنوز باز نشد، احتمالاً تنظیم اشتباه وارد شده.

اگه پروژه رو با AI ساخته باشم، فرقی می‌کنه؟

برای آنلاین کردن نه. مسیر همونه. فقط چون کد رو خودت ننوشتی، ممکنه ندونی به چه تنظیم‌ها و ابزارهایی وابسته‌ست. قبل از شروع، از همون ابزار AI بپرس پروژه برای اجرا به چی نیاز داره.

خلاصه

  • localhost یعنی فقط رو کامپیوتر خودت؛ Production یعنی جایی که همه می‌بینن.
  • زنجیره آنلاین شدن: هاست، دامنه، DNS، قفل آدرس، و بعد آپدیت‌های مرتب.
  • بیشتر گیرها از فرق تنظیمات لپ‌تاپ با جای اصلی میاد، نه از خود کد.
  • آنلاین شدن یه بار اتفاق میفته، ولی روشن نگه‌داشتن و آپدیت کردن همیشگیه.

قدم بعدی بعد از آنلاین شدن اینه که آدم‌های واقعی ازش استفاده کنن؛ درباره‌ش تو از «دارم می‌سازمش» به «کاربر دارد استفاده می‌کند» نوشتیم.

بیشتر بخون

سایتت رو بسپار به ما

تو بساز، روشن نگه‌داشتنش با ما. راه‌اندازی، نگهداری و پشتیبانی آدم‌های واقعی.

شروع کن