كيف ارفع مشروع MERN على digitalocean ؟

قمت بانشاء مشروع MERN Stack

ماهي الخطوات المطلوبة لرفع المشروع؟

بحثت عن شروح عربية لم اجد

يرجى الدخول لحسابك أو تسجيل حساب لتستطيع إضافة تعليق
حساب جديد دخول

التعليقات

Mustafa_Suleiman أضف ردا

سيتعين عليك القيام بالتالي:

  1. قم زيارة موقع DigitalOcean وأنشئ حسابًا جديدًا إذا لم يكن لديك حساب بالفعل.
  2. إنشاء Droplet وهو خادم افتراضي يعمل على منصة DigitalOcean، فقم بإنشاء Droplet جديد بتكوينات الموارد التي تناسب متطلبات مشروعك (مثل حجم الذاكرة وسرعة المعالج ونظام التشغيل المفضل)، ويفضل استخدام نظام تشغيل Linux مثل Ubuntu.
  3. تثبيت Node.js و MongoDB على الخادم الافتراضي الذي أنشأته في الخطوة السابقة.
  4. تحميل ملفات المشروع الخاصة بك إلى الخادم باستخدام أدوات مثل SSH أو SFTP، وبإمكانك استخدام تطبيقات مثل FileZilla لنقل الملفات بين جهازك والخادم.
  5. فتح مجلد المشروع وتثبيت جميع الاعتماديات المطلوبة باستخدام npm أو yarn، سواء بتشغيل الأمر npm install أو yarn install في مجلد المشروع.
  6. إنشاء ملف .env لتكوين المتغيرات البيئية الخاصة بمشروعك، مثل تكوينات قاعدة البيانات والمفاتيح السرية. يجب حماية هذا الملف وعدم نشره علنًا.
  7. تشغيل التطبيق باستخدام أمر مثل npm start أو yarn start، وستظهر رسالة توضح أن التطبيق يعمل على الخادم.
  8. وفي حال كنت ترغب في استخدام اسم نطاق مخصص لمشروعك، عليك بتكوين النطاق ليشير إلى عنوان IP العام للخادم الخاص بك.
  9. بعد ذلك يجب تكوين جدار الحماية على الخادم الخاص بك لتحسين أمانه باستخدام أدوات مثل UFW لتكوين جدار الحماية.
  10. الآن افتح متصفح الويب وانتقل إلى عنوان IP العام للخادم الخاص بك أو النطاق المكون للتحقق من أن التطبيق يعمل.

ومن الأفضل أن تقوم بالبحث على يوتيوب عن how to deploy MERN project on digitalocean وستجد الكثير من الشروحات، قم بمشاهدتها حتى لو مع الترجمة إن توفرت، أو مشاهدة الخطوات فقط.

أما في المحتوى العربي ابحث عن "رفع مشروع على digitalocean" وستجد نتائج جيدة خاصة بمشاريع nodejs.

لنلخص الأمر في ثلاث مراحل:

المرحلة الأولى - إنشاء Droplet:

اختر التوزيعة المناسبة ثم الخطة ثم جهة مركز البيانات block storage وقم بتأكيد إنشاء Droplet.

المرحلة الثانية - الوصول إلى الخادم:

افتح نافذة موجه أوامر ومن خلال SSH قم بالاتصال مع خادمك:

ssh root@server_ip_address

قم بإضافة مستخدم أعطه صلاحيات root:

adduser <username>
usermod -aG sudo <username>

المرحلة الثالثة - تسطيب Firewall:

من خلال SSH نفذ الأوامر:

sudo ufw app list
sudo ufw allow OpenSSH
sudo ufw enable

المرحلة الرابعة - تسطيب الدومين

المرحلة الخامسة - تثبيت البرمجيات:

يمكنك استعمال ميزة 1 click applications من خلال متجر Digital ocean لتثبيت Node مباشرة.

المرحلة السادسة - نسخ ملفات المشروع من مستودع غيت:

قم باستنساخ مستودع غيت الى داخل استضافتك:

git clone <repositorylink>

المرحلة السابعة - إدارة تطبيق الويب الخاص بك باستخدام PM2:

ادخل الى تطبيقك وشغل npm install ثم اترك pm2 يشغل تطبيقك:

pm2 start <app-entry-filepath> --name name-your-app

المرحلة الثامنة - اعرض تطبيقك للعالم الخارجي باستخدام NGINX كوكيل:

قم بالوصول الى ملف الاعداد الخاص بـ nginx وافتحه باستخدام nano:

sudo nano /etc/nginx/sites-available/default

ثم بتعديله ليصبح:

location / {
    proxy_pass http://localhost:3000; 
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header Host $host;
    proxy_cache_bypass $http_upgrade;
}

طبعا فإنك ستحتاج ضبط APP_URL الصحيح مكان http://localhost:3000 في حال ما لم يكن كذلك.

احفظ الملف وأعد تشغيل nginx:

sudo nginx -t
sudo systemctl restart nginx

يفترض أن يجعل هذا تطبيقك حيا.

تعديل * ثمان مراحل

كل الشكر على الشرح

لدي بعض الاسئلة

س1 : انا استخدم جهاز وندوز وفي الديجتال اوشن يطلب منك تحديد نظام تشغيل السيرفر وفي العادة تنصح ان تكون احدى توزيعات لينكس فهل يمكن ان تسبب هذه اي مشكلة؟ اي اذا كان جهازي وندوز ونظام تشغيل السيرفر لينكس ؟

س2 : ماهو الامر sudo ?

س3 : في المرحلة الخامسة حين اركب برمجيات node js هل استطيع من خلالها انشاء بريد الكتروني رسمي ؟ لوحة التحكم التي اعرفها هي سي بنل ويبدو انها خاصة لل php

س 4 : هل يجب ان ارفع مشروعي اولا على الجيت ام يمكن رفعه من جهازي مباشرة ؟

س 5 : ماهو PM2 ؟

س6 : ماهو NGINX ؟