برمجت تطبيقك بـ Node.js أو Next.js أو Express أو Laravel، وشيفرتك موجودة على GitHub؟ انشره في الجزائر دون FTP، ودون خادم تديره بنفسك، ودون بطاقة بنكية دولية. اربط مستودعك مرة واحدة: مع كل git push يُحدَّث موقعك تلقائيًا.
هذا ما توفّره استضافة Sahara Pro وSahara Business. يعمل تطبيقك باستمرار دون أن يدخل في وضع السكون، على اسم نطاقك الخاص، وتدفع بالدينار بالبطاقة الذهبية أو بطاقة CIB أو بالدفع عبر CCP.
لماذا النشر من GitHub
- وداعًا لنقل الملفات. لا حاجة إلى ضغط الملفات ورفعها عبر FTP ثم فكّها. مستودعك هو المرجع الوحيد.
- تحديث واحد = push واحد. صحّح شيفرتك وادفعها إلى
main: يبدأ النشر تلقائيًا. - لا خطر على موقعك المنشور. إذا فشل البناء لا تُفعَّل النسخة الجديدة، ويواصل زوارك تصفح النسخة السابقة التي تعمل.
- تطبيقك يبقى قيد التشغيل. يُعاد تشغيل خادم Node.js تلقائيًا إذا توقف، ومع كل نشر جديد. لا حاجة لإبقاء اتصال SSH مفتوحًا.
- خادم حقيقي وليس موقعًا ثابتًا فقط. واجهات Express البرمجية، وعرض Next.js من جهة الخادم، والمهام في الخلفية: الواجهة الخلفية لتطبيقك تستجيب دائمًا.
ما تحتاجه للبدء
- استضافة Sahara Pro أو Sahara Business. هما العرضان اللذان يشملان Node.js والوصول عبر SSH. تستضيف Sahara Pro حتى ثلاثة مواقع: مثالية للفصل بين تطبيقك وموقعك التعريفي. اكتشف العروض.
- شيفرتك على GitHub، مع ملف
package.jsonيحتوي على السكربتينbuildوstart. - اسم نطاقك. مع اشتراك لمدة 12 أو 24 شهرًا، يكون النطاق مجانيًا في السنة الأولى للامتدادات المؤهلة. ابحث عن نطاق.
اربط حسابك على GitHub
في لوحة استضافتك، افتح GitHub connection ثم Connect GitHub. يسألك GitHub عن المستودعات التي تريد مشاركتها: ننصحك بالسماح فقط بتلك التي تريد نشرها. تظهر مستودعاتك بعدها في القائمة، العامة منها والخاصة.
اختر مستودعك وأمر البناء
اضغط على Deploy بجانب المستودع، واختر موقعك، ثم الفرع الذي تريد نشره، وغالبًا ما يكون main.
في خانة Build script، اكتب الأمر الذي يثبّت التبعيات ويبني مشروعك:
| مشروعك | Build script |
|---|---|
| npm | npm install && npm run build |
| pnpm | npx pnpm@10 install --frozen-lockfile && npx pnpm@10 build |
| Laravel | composer install --no-dev --optimize-autoloader |
استعمل مدير الحزم والإصدار المحدّدين في مشروعك: إذا كان ملف package.json يحدّد "packageManager": "pnpm@10…" فاحتفظ بـ pnpm 10.
اترك خيار Auto deploy on push مفعّلًا ليُحدَّث موقعك مع كل push.
خانة Publish directory مخصّصة فقط للمواقع الثابتة بالكامل، مثل مشروع Vite أو React بعد بنائه: اكتب حينها المجلد الناتج عن البناء، مثل dist. أما التطبيقات التي تعمل بخادم (Next.js أو Express) فاترك هذه الخانة فارغة.
شغّل تطبيق Node.js
افتح Worker processes ثم Configure وNode.js:
- Node.js version: اختر إصدارًا متوافقًا مع مشروعك. يتطلب Next.js 16 مثلًا الإصدار 20.9 من Node.js أو أحدث.
- Startup command: الأمر الذي يشغّل خادمك.
- Working directory:
deploys/current، وهو مجلد النسخة المنشورة. - HTTP Proxy: مفعّل، مع ترك Path فارغًا لخدمة الموقع كله.
- Port: المنفذ الذي يستمع عليه تطبيقك، مثل
3000.
يجب أن يستمع تطبيقك على 0.0.0.0 وعلى المنفذ المختار:
| مشروعك | Startup command |
|---|---|
| Next.js | npx next start -H 0.0.0.0 -p 3000 |
| Express | node dist/server.js مع app.listen(3000, "0.0.0.0") في شيفرتك |
| Nuxt أو Remix أو Astro SSR… | أمر start الخاص بمشروعك على المنفذ المختار |
اضغط على Launch: بعد ثوانٍ قليلة يستجيب تطبيقك على نطاقك.
تابع عمليات النشر
تظهر كل عملية نشر مع الـ commit الخاص بها وتاريخها وسجلها الكامل. عند حدوث خطأ، يعرض View logs السطر الذي فشل بالضبط: تبعية ناقصة، أو إصدار غير مناسب من Node.js، أو سكربت غير موجود.
ويمكنك أيضًا إعادة نشر نسخة في أي وقت عبر Deploy now.
متغيرات البيئة والمفاتيح السرية
لا تضع مفاتيحك أبدًا على GitHub. أنشئ ملف .env على الخادم خارج المجلد العام، عبر مدير الملفات أو SSH، وحمّله في تطبيقك، مثلًا بـ dotenv أو بخيار --env-file في Node.js. بهذا تبقى مفاتيح Supabase أو Stripe أو Chargily Pay أو Resend سرية.
قاعدة بسيطة: موقع واحد، مصدر واحد
يعرض كل موقع مصدرًا واحدًا في كل مرة: تطبيقك من GitHub، أو موقعًا من Sahara AI، أو WordPress. إذا شغّلت تطبيق Node.js على موقع يعرض WordPress أو Sahara AI، فإن التطبيق يحلّ محله، حتى لو بقيت الملفات القديمة على القرص.
للجمع بينهما، استعمل موقعًا آخر من عرضك (مثل app.votredomaine.com للتطبيق وvotredomaine.com للموقع التعريفي)، أو اعرض واجهتك البرمجية على مسار محدد مثل /api عبر خانة Path.
أسئلة شائعة
هل يدخل تطبيقي في وضع السكون إذا لم يزره أحد؟ لا. يعمل باستمرار ويستجيب من الطلب الأول، على عكس الصيغ المجانية التي تتوقف بعد بضع دقائق دون نشاط.
هل يمكنني استعمال TypeScript؟
نعم. ابنِ شيفرتك ضمن أمر البناء (tsc أو next build أو vite build…)، ثم شغّل النسخة المبنية.
وإذا كنت أفضّل العمل عبر SSH؟ الوصول عبر SSH وSFTP مشمول في Sahara Pro وBusiness. يمكنك الجمع بين الطريقتين: GitHub للشيفرة، وSSH للمهام العرضية.
هل يُحفظ موقعي احتياطيًا؟ نعم، تلقائيًا. بعد الاستعادة، أعد تشغيل تطبيقك ببساطة من Worker processes. أما البيانات المستضافة لدى خدمة خارجية مثل Supabase فتُحفظ احتياطيًا من جهتها.
أطوّر موقعًا لعميل: لمن تعود الاستضافة؟ لعميلك، إذا أنشأت الحساب باسمه. يدفع ويجدّد بنفسه، ويمنحك وصولًا تقنيًا بمفتاح SSH الخاص بك.
انشر تطبيقك اليوم
اربط GitHub، وادفع شيفرتك، واترك الباقي لـ SaharaCloud. دفع بالدينار ودعم بالعربية والفرنسية.