مقدمة: لماذا نشر تطبيق JavaScript على VPS؟
تطوير تطبيق ويب حديث باستخدام JavaScript (Node.js) هو نصف المهمة فقط. النصف الثاني، الذي لا يقل أهمية، هو النشر، أي نشر مشروعك على خادم حقيقي يمكن الوصول إليه عبر الإنترنت. استخدام خادم خاص افتراضي (VPS) يمنحك تحكمًا كاملاً في البيئة، على عكس الاستضافة المشتركة. يمكنك تكوين الخادم وفقًا لاحتياجاتك، وتثبيت أي تبعيات، وضمان أداء عالٍ.
في هذا الدليل، سنشرح خطوة بخطوة عملية نشر تطبيق JavaScript (Node.js) نموذجي على VPS. سنغطي جميع المراحل: من الإعداد الأولي للخادم إلى تشغيل التطبيق في وضع الإنتاج باستخدام مدير العمليات PM2 والخادم الوكيل العكسي Nginx. المقالة موجهة للمطورين الذين لديهم معرفة أساسية بـ Node.js وسطر أوامر Linux.
1. تجهيز VPS والإعداد الأولي
الخطوة الأولى هي استئجار VPS من أي مزود (DigitalOcean، Linode، Vultr أو نظائرها الروسية). الخطة الدنيا الموصى بها: 1 vCPU، 1-2 GB RAM. نظام التشغيل: Ubuntu 22.04 LTS (أو أحدث).
1.1. الاتصال بالخادم عبر SSH
بعد الحصول على عنوان IP وكلمة مرور root، اتصل بالخادم من الطرفية الخاصة بك:
ssh root@your_server_IPإذا كنت تستخدم مفتاح SSH (موصى به)، حدد المسار إلى المفتاح الخاص:
ssh -i ~/.ssh/id_rsa root@your_server_IP1.2. إنشاء مستخدم وأمان أساسي
لا تعمل أبدًا كمستخدم root بشكل دائم. أنشئ مستخدمًا جديدًا وامنحه صلاحيات sudo:
adduser myuserusermod -aG sudo myuserبعد ذلك، قم بإعداد مفتاح SSH للمستخدم الجديد (انسخ المفتاح العام من جهازك المحلي) وقم بتعطيل تسجيل الدخول بكلمة مرور في ملف /etc/ssh/sshd_config:
PasswordAuthentication noأعد تشغيل خدمة SSH: sudo systemctl restart sshd.
1.3. تثبيت البرامج الضرورية
قم بتحديث مدير الحزم وقم بتثبيت Node.js (نوصي بإصدار LTS عبر NodeSource)، Git و Nginx:
sudo apt update && sudo apt upgrade -ycurl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -sudo apt install -y nodejs git nginxتحقق من الإصدارات: node -v و npm -v.
2. استنساخ المستودع وتثبيت التبعيات
الآن بعد أن أصبح الخادم جاهزًا، دعنا ننقل كود تطبيقك إليه.
2.1. استنساخ المشروع
انتقل إلى الدليل الرئيسي للمستخدم واستنسخ المستودع من GitHub (أو أي استضافة Git أخرى):
cd /home/myusergit clone https://github.com/your_username/your_repository.git myappcd myapp2.2. تثبيت التبعيات والتشغيل التجريبي
قم بتثبيت جميع حزم npm المحددة في package.json:
npm installإذا كان المشروع يستخدم متغيرات بيئة (على سبيل المثال، لقاعدة البيانات أو مفاتيح API)، فأنشئ ملف .env واملأه:
nano .envمثال على المحتوى:
PORT=3000DATABASE_URL=mongodb://localhost:27017/mydbNODE_ENV=productionقم بتشغيل التطبيق يدويًا للتأكد من أنه يعمل:
node app.jsتحقق من إمكانية الوصول عبر curl http://localhost:3000 أو افتح في المتصفح http://your_IP:3000 (بعد السماح بالمنفذ في جدار الحماية). إذا كان كل شيء يعمل، أوقف العملية (Ctrl+C).
3. إعداد مدير العمليات PM2
التطبيق الذي يتم تشغيله عبر node app.js سيتوقف بمجرد إغلاق جلسة SSH. للتشغيل المستمر، يُستخدم PM2 — وهو مدير عمليات لـ Node.js يقوم تلقائيًا بإعادة تشغيل التطبيق في حالة تعطله ويدير