[{"data":1,"prerenderedAt":117},["ShallowReactive",2],{"seo-verification":3,"blog-deployer-nodejs-vps-ar":6},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"id":7,"slug":8,"title":9,"excerpt":10,"readTime":11,"views":12,"isPinned":13,"publishedAt":14,"category":15,"categories":21,"featuredImage":23,"bgImage":24,"posterImage":25,"relatedSolution":26,"intro":28,"sections":29,"ctaTitle":72,"ctaBody":73,"ctaButton":74,"ctaUrl":75,"relatedPosts":76},43,"deployer-nodejs-vps","نشر تطبيق Node.js على VPS","انشر تطبيق Node.js في بيئة الإنتاج على VPS: PM2 وبروكسي عكسي Nginx وشهادة SSL من Let's Encrypt وبدء تشغيل تلقائي عند الإقلاع.",8,591,false,"2026-05-08T00:00:00+00:00",{"id":16,"name":17,"slug":18,"color":19,"icon":20},4,"التطوير","developpement","bg-warning\u002F10 text-warning","dev",[22],{"id":16,"name":17,"slug":18,"color":19,"icon":20},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fdeployer-nodejs-vps-poster.svg",{"categorySlug":18,"appSlug":27},"nodejs","تشغيل تطبيق Node.js في بيئة الإنتاج يتطلب أكثر من مجرد `node app.js`: تحتاج إلى مدير عمليات يعيد تشغيل التطبيق عند تعطّله، وبروكسي عكسي لـHTTPS، وبدء تشغيل تلقائي عند الإقلاع. على VPS، تتحكم في كل حلقة من هذه السلسلة، خلافًا لمنصة مُدارة تفوترك حسب الاستخدام.",[30,34,44,47,69],{"type":31,"title":32,"body":33},"h2","لماذا تنشر Node.js على VPS بدلاً من منصة مُدارة؟","منصات serverless وPaaS عملية في البداية، لكن تكلفتها ترتفع مع ازدياد الزيارات، وتفرض قيودًا (timeouts وcold starts وحدود على اتصالات WebSocket). يمنحك VPS عملية Node.js دائمة، واتصالات طويلة (WebSocket وSSE) دون حد مصطنع، وموارد مخصّصة وتكلفة ثابتة قابلة للتوقّع. أنت من يقرّر إصدار Node ومدير العمليات والبروكسي العكسي واستراتيجية التحديث، دون الاعتماد على أعراف مزوّد معيّن.",{"type":35,"title":36,"items":37},"ul","ما الذي تكسبه مع VPS لتشغيل Node.js",[38,39,40,41,42,43],"عملية Node.js دائمة، مثالية لـWebSocket وSSE والمهام الطويلة دون cold start","إعادة تشغيل تلقائية عند التعطّل وعند إعادة إقلاع الخادم بفضل PM2","وضع cluster لاستغلال جميع أنوية المعالج في VPS دون تغيير شيفرتك","بروكسي عكسي Nginx أمام Node لأجل HTTPS والضغط والملفات الثابتة","تكلفة ثابتة وقابلة للتوقّع، دون فوترة لكل طلب ودون مفاجآت في التوسّع (scaling)","تحكم كامل في إصدار Node.js وفي اعتماديات النظام",{"type":31,"title":45,"body":46},"المتطلبات المسبقة","يعمل تطبيق Node.js اعتيادي (واجهة API بـExpress أو Nest أو Fastify) بأريحية على VPS بـ1 إلى 2 vCPU و1 إلى 2 غيغابايت من ذاكرة RAM؛ وخصّص ذاكرة RAM أكبر إذا كنت تُصرّف واجهة أمامية ثقيلة أثناء البناء أو تشغّل workers. ثبّت Node.js عبر nvm أو مستودع NodeSource لتثبيت إصدار LTS، إضافةً إلى PM2 كمدير عمليات وNginx كبروكسي عكسي. تحتاج إلى نطاق يشير إلى عنوان IP الخاص بـVPS وإلى فتح المنفذين 80\u002F443.",{"type":48,"title":49,"steps":50},"steps","نشر تطبيق Node.js في الإنتاج",[51,54,57,60,63,66],{"title":52,"body":53},"تجهيز VPS وتثبيت Node.js","على VPS بنظام Ubuntu 22.04، حدّث النظام وثبّت إصدار LTS من Node عبر nvm (`nvm install --lts`) أو مستودع NodeSource. تحقّق باستخدام: `node -v` و`npm -v`. أنشئ مستخدمًا غير جذري (non-root) مخصّصًا للتطبيق بدلًا من تشغيل كل شيء بصلاحيات root.",{"title":55,"body":56},"جلب الشيفرة والبناء","استنسخ مستودعك على VPS، وثبّت اعتماديات الإنتاج (`npm ci --omit=dev`)، وشغّل عملية البناء عند الحاجة (`npm run build`). ضع المتغيرات الحساسة في ملف `.env` غير مُودَع في المستودع أو في متغيرات بيئة الخدمة.",{"title":58,"body":59},"تشغيل التطبيق باستخدام PM2","ثبّت PM2 بشكل عام (`npm install -g pm2`) ثم شغّل التطبيق: `pm2 start app.js --name monapp -i max`. يفعّل العلَم `-i max` وضع cluster على جميع الأنوية. ويعيد PM2 تشغيل العملية تلقائيًا عند تعطّلها.",{"title":61,"body":62},"تفعيل بدء التشغيل التلقائي عند الإقلاع","أنشئ سكربت systemd باستخدام `pm2 startup`، ونفّذ الأمر الظاهر، ثم ثبّت الحالة الراهنة باستخدام `pm2 save`. وعند إعادة إقلاع VPS التالية، سيُعاد تشغيل تطبيقك تلقائيًا دون أي تدخل.",{"title":64,"body":65},"إعداد Nginx كبروكسي عكسي","ثبّت Nginx وأنشئ مضيفًا افتراضيًا (virtual host) لنطاقك يوجّه الطلبات إلى منفذ Node المحلي (مثال: `proxy_pass http:\u002F\u002Flocalhost:3000;`). أضف ترويسَتَي `Upgrade` و`Connection` إذا كنت تستخدم WebSocket. اختبر الإعداد (`nginx -t`) ثم أعد التحميل.",{"title":67,"body":68},"التأمين بـHTTPS عبر Let's Encrypt","ثبّت Certbot وإضافته الخاصة بـNginx، ثم نفّذ `certbot --nginx -d yourdomain.com`. يحصل Certbot على الشهادة، ويضبط إعادة التوجيه من HTTP إلى HTTPS، ويجدول التجديد التلقائي. أصبح تطبيق Node لديك الآن يُقدَّم عبر HTTPS.",{"type":70,"body":71},"tip","لعمليات نشر دون انقطاع، ادمج وضع cluster في PM2 مع `pm2 reload monapp` بدلًا من `restart`: يعيد PM2 تشغيل الـworkers واحدًا تلو الآخر، مع الإبقاء دائمًا على نسخة واحدة على الأقل متاحة أثناء التحديث. ثم راقب الذاكرة باستخدام `pm2 monit` وحدّد حدًّا لإعادة التشغيل التلقائي (`--max-memory-restart 500M`) لمنع تسرّبات الذاكرة في الإنتاج.","ضع تطبيق Node.js الخاص بك في الإنتاج على VPS سحابي","انشر VPS سحابيًا من ServOrbit مع قالب التطوير: Node.js وPM2 وNginx مُهيّأة مسبقًا لنقل تطبيقك إلى الإنتاج عبر HTTPS.","استعرض VPS السحابي","\u002Fvps-cloud",[77,91,104],{"id":78,"slug":79,"title":80,"excerpt":81,"readTime":82,"views":83,"isPinned":13,"publishedAt":84,"category":85,"categories":86,"featuredImage":23,"bgImage":24,"posterImage":88,"relatedSolution":89},5,"deployer-laravel-vps","نشر Laravel على خادم VPS: دليل الإنتاج","انقل Laravel إلى بيئة الإنتاج على خادم VPS: PHP وworkers والذاكرة المؤقتة وقاعدة البيانات وreverse proxy وHTTPS مُهيّأة بشكل نظيف.",7,2840,"2026-02-09T00:00:00+00:00",{"id":16,"name":17,"slug":18,"color":19,"icon":20},[87],{"id":16,"name":17,"slug":18,"color":19,"icon":20},"\u002Fblog\u002Fcovers\u002Fdeployer-laravel-vps-poster.svg",{"categorySlug":20,"appSlug":90},"laravel-stack",{"id":92,"slug":93,"title":94,"excerpt":95,"readTime":11,"views":96,"isPinned":13,"publishedAt":97,"category":98,"categories":99,"featuredImage":23,"bgImage":24,"posterImage":101,"relatedSolution":102},44,"deployer-django-vps","نشر تطبيق Django على VPS","انشر Django على VPS: Gunicorn وNginx وPostgreSQL وDocker وSSL. دليل كامل لمطوّري Python الراغبين في الاستضافة الذاتية.",628,"2026-05-07T00:00:00+00:00",{"id":16,"name":17,"slug":18,"color":19,"icon":20},[100],{"id":16,"name":17,"slug":18,"color":19,"icon":20},"\u002Fblog\u002Fcovers\u002Fdeployer-django-vps-poster.svg",{"categorySlug":18,"appSlug":103},"django",{"id":105,"slug":106,"title":107,"excerpt":108,"readTime":82,"views":109,"isPinned":13,"publishedAt":110,"category":111,"categories":112,"featuredImage":23,"bgImage":24,"posterImage":114,"relatedSolution":115},45,"deployer-fastapi-vps","نشر تطبيق FastAPI على VPS","انشر FastAPI على VPS باستخدام Uvicorn وGunicorn وNginx وSSL. دليل لمطوّري Python الراغبين في واجهة API غير متزامنة (async) ذاتية الاستضافة.",665,"2026-05-06T00:00:00+00:00",{"id":16,"name":17,"slug":18,"color":19,"icon":20},[113],{"id":16,"name":17,"slug":18,"color":19,"icon":20},"\u002Fblog\u002Fcovers\u002Fdeployer-fastapi-vps-poster.svg",{"categorySlug":18,"appSlug":116},"fastapi",1785097282183]