نشر تطبيق JavaScript على VPS: دليل خطوة بخطوة من الألف إلى الياء

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

مقدمة: لماذا VPS هو الحل الأمثل لتطبيق Node.js الخاص بك؟

\n

لقد كتبت تطبيقًا رائعًا بلغة JavaScript (Node.js)، واختبرته محليًا، والآن تريد أن يكون متاحًا على الإنترنت 24/7. غالبًا ما تكون الاستضافة المشتركة غير مناسبة لـ Node.js بسبب القيود، كما أن الخدمات السحابية (Heroku, Railway) قد تكون باهظة الثمن أو غير متوقعة من حيث الأداء. الخادم الخاص الافتراضي (VPS) هو الحل الوسط المثالي: تحكم كامل، أداء عالٍ، وسعر معقول.

\n

في هذا الدليل التفصيلي، سنشرح عملية نشر تطبيق JavaScript (Node.js) على VPS من الصفر. ستتعلم كيفية إعداد الخادم، تثبيت البرامج اللازمة، تشغيل التطبيق بأمان، وجعله متاحًا عبر نطاق. جميع أمثلة الأكواد عملية ومختبرة.

\n\n

1. إعداد الخادم: التهيئة الأولية لـ VPS

\n

للبدء، ستحتاج إلى استئجار VPS من أي مزود (DigitalOcean, Vultr, Timeweb, Selectel). الحد الأدنى من المواصفات: 1 vCPU، 1-2 GB RAM، 20-30 GB SSD. نظام التشغيل: Ubuntu 22.04 LTS (الإصدار الأكثر استقرارًا).

\n\n

1.1. الاتصال بالخادم عبر SSH

\n

بعد الحصول على عنوان IP وكلمة المرور، نتصل بالخادم عبر الطرفية (Mac/Linux) أو PuTTY (Windows):

\n
ssh root@عنوان_IP_الخادم_الخاص_بك
\n

نقوم فورًا بتغيير كلمة المرور وإنشاء مستخدم جديد (العمل كـ root ممارسة سيئة):

\n
adduser deploy_user\nusermod -aG sudo deploy_user\nsu - deploy_user
\n\n

1.2. تحديث النظام وتثبيت الحزم الأساسية

\n
sudo apt update && sudo apt upgrade -y\nsudo apt install -y curl git ufw build-essential
\n

نقوم بإعداد جدار الحماية الأساسي UFW (نترك فقط SSH والمنافذ التي سنستخدمها):

\n
sudo ufw allow OpenSSH\nsudo ufw allow 80/tcp\nsudo ufw allow 443/tcp\nsudo ufw enable
\n\n

2. تثبيت Node.js ومدير العمليات PM2

\n

لتشغيل تطبيق JavaScript على الخادم، نحتاج إلى Node.js. نستخدم مدير الإصدارات الرسمي NodeSource لتثبيت أحدث إصدار LTS:

\n\n

2.1. تثبيت Node.js (v20 LTS)

\n
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -\nsudo apt install -y nodejs
\n

نتحقق من التثبيت:

\n
node -v   # v20.x.x\nnpm -v    # 10.x.x
\n\n

2.2. تثبيت وإعداد PM2

\n

PM2 هو مدير عمليات متقدم لـ Node.js. يقوم تلقائيًا بإعادة تشغيل التطبيق عند تعطله، ويدير السجلات، ويسمح بتشغيل نسخ متعددة (التجميع).

\n
sudo npm install -g pm2
\n

نقوم بإعداد التشغيل التلقائي لـ PM2 عند إعادة تشغيل الخادم:

\n
pm2 startup systemd\nsudo env PATH=$PATH:/usr/bin pm2 startup systemd -u deploy_user --hp /home/deploy_user
\n\n

3. نشر التطبيق وتشغيله عبر PM2

\n

الآن نحن جاهزون لنقل تطبيق JavaScript الخاص بك إلى الخادم. هناك طريقتان شائعتان: عبر Git (موصى به) أو عبر SCP/FileZilla.

\n\n

3.1. استنساخ المستودع (Git)

\n
cd /home/deploy_user\ngit clone https://github.com/اسم_المستخدم_خاصتك/اسم_المستودع_خاصتك.git myapp\ncd myapp
\n

نقوم بتثبيت التبعيات وبناء المشروع (إذا لزم الأمر):

\n
npm install\n# إذا كان هناك سكريبت بناء: npm run build
\n\n

3.2. إنشاء ملف التكوين .env

\n

لا تقم أبدًا بتخزين الأسرار في الكود. قم بإنشاء ملف .env في مجلد المشروع:

\n
nano .env
\n

مثال على المحتوى:

\n
PORT=3000\nNODE_ENV=production\nDATABASE_URL=mongodb://localhost:27017/myapp\nJWT_SECRET=مفتاحك_السري_الفائق
\n\n

3.3. تشغيل التطبيق عبر PM2

\n

لنفترض أن نقطة الدخول لتطبيقك هي app.js أو server.js. نقوم بالتشغيل:

\n
pm2 start app.js --name "myapp"
\n

نتحقق من الحالة:

\n
pm2 status\npm2 logs myapp                

المدونات

توصيات الكتب