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

ahmad_111

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

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

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


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

المرحلة الأولى - إنشاء 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 ؟