#DEPLOY

جيتي من إنستغرام بكلمة DEPLOY؟ ها الدليل التقني الكامل مع الأوامر والتفاصيل اللي ماتكفاش فـ Carousel.

KLIK / 004 / deployment

قبل Deploy: ستة فحوصات باش ماتكتشفش المشكل عند أول مستخدم

لائحة عملية قبل نشر تطبيق: الاختبارات، الأسرار والصلاحيات، Production build، البيانات والنسخ الاحتياطي، المراقبة وRollback قابل للتنفيذ.

لائحة فحص قبل النشر حد حاسوب، صورة توضيحية
KAEL || LABS · صورة توضيحية مولدة بالـ AI

«عندي خدام» كتولي جملة ناقصة نهار كاتعطي الرابط لشي واحد. عندك Session مفتوحة، Cache عامر، وإعدادات فالحاسوب نسيتي أنها ماكايناش فالسيرفر. المستخدم الأول ماعندو حتى وحدة من هاد الامتيازات. قبل Deploy، خاصك تشوف النسخة بعينيه، وتعرف شنو غادي دير إلا عطلات.

هاد اللائحة ماكاتضمنش أن التطبيق آمن بالكامل. كتعاونك تجرب الحوايج اللي كتتعطل بزاف، وتسجل شنو خدام وشنو باقي خاصو إصلاح. الأمثلة التقنية هنا كتخص مشروع Node وVite ملي كاتكون هادي فعلاً البنية ديالو؛ تطبيق Flutter ولا Backend مختلف خاصو أوامر ودليل خاصين به. راجعنا المصادر الرسمية نهار 25 أكتوبر 2026. الأمثلة كاتشرح طريقة الفحص؛ خاصك تنفذها وتسجل النتيجة فالمشروع ديالك.

1. جرّب الخدمة اللي جا عليها المستخدم

كتب المسار الأساسي بلغة عادية قبل ما تختار Test framework. فخدمة مشاركة الملفات: مستخدم يرفع ملف، ينسخ الرابط، شخص آخر يفتحو، ومن بعد الرابط كيسالي فالتوقيت المحدد. جرّب كذلك ملف كبير بزاف، رابط غير موجود وقطع الشبكة. الصفحة اللي كاتبان بلا Error ماكاتثبتش هاد المسار.

شغل الاختبارات الموجودة، ومن بعد جرّب النسخة فجلسة جديدة بلا Login قديم. شوف الموبايل، Keyboard، Form errors، وحالة ماكايناش فيها بيانات. إلا التطبيق ثنائي اللغة، جرب التبديل والروابط المباشرة، ماشي غير الصفحة الرئيسية. سجل النتيجة: شنو داز، شنو فشل، وشنو ماقدرتيش تجرب.

الأولوية للمسارات اللي كتضيع بيانات، كاتكشفها، ولا كتسبب مصاريف. ماخاصكش مئات Tests كتعاود نفس التنفيذ باش تحس براسك واجد. اختبار صغير كيشد خطأ حقيقي أحسن من لائحة كبيرة ماكاتقربش من المشكل اللي واجهتي.

الفحوصات الستة كتغطي الخدمة الأساسية، الصلاحيات، Build، استرجاع البيانات، المراقبة وRollback.
الفحوصات الستة كتغطي الخدمة الأساسية، الصلاحيات، Build، استرجاع البيانات، المراقبة وRollback.

2. الأسرار والصلاحيات: الواجهة ماشي خزنة

راجع API keys، Passwords، Tokens وملفات Environment قبل Build. فـ Vite، القيم اللي كاتبدا بـ VITE_ كتتعرض للـ Client حسب نظام Env ديالو. ماتحطش فيها Secret ديال خدمة مؤدى عنها على أساس أن .env ملف مخفي. أي سر خاص بالسيرفر يبقى فمسار سيرفر فعلي، ومايتطبعش فـ Log.

جرب بحساب ماعندوش الصلاحية: واش يقدر يقرا ملف مستخدم آخر غير بتبديل ID فالـ URL؟ إخفاء زر فالواجهة ماكيكفيش. خاص التحقق يكون فالمكان اللي كيرجع البيانات أو كينفذ العملية. إلا هاد المسار مازال ماواضحش، ماتفتحو للعموم باش «نجربو ونشوفو».

إلا Secret دخل لـ Git ولا خرج فـ Screenshot، حيدو من الملف وبدلو من المصدر؛ الحذف بوحدو ماكيرجعوش سري. استعمل صلاحيات محدودة، وراجع الحسابات التجريبية قبل مشاركة المشروع. OWASP كيشرح دورة حياة الأسرار؛ ماشي خاصك تبني نظام جديد إذا Hosting كيوفر Secret storage مناسب.

3. ابنِ نسخة Production وجربها هي

فمشروع npm عندو Lockfile ملتزم به، npm ci كيعتمد عليه وكيوقف إلا ماكانش مطابق لـ package.json. كيمسح node_modules الموجودة قبل التثبيت؛ استعملو فنسخة عمل مناسبة أو CI، ماشي وسط خدمة حية معتمدة على نفس المجلد. راجع كذلك Scripts قبل تشغيلها، حيث التثبيت يقدر ينفذ Lifecycle scripts.

فمشروع Vite بالإعداد المعتاد، أوامر Build وPreview الموثقة هي:

npm run build
npm run preview

الأسماء خاصها تكون معرفة فـ package.json ديال مشروعك. Preview باش تشوف Build محلياً، ماشي سيرفر Production. إلا كاين Prerender، راجع HTML الناتج والروابط و404 وMetadata. دير Refresh فصفحة داخلية مباشرة باش تكشف مشاكل Routing عند المستضيف.

تأكد من Environment الخاصة بالإصدار: Endpoint الصحيح، Redirect URLs، ودومين الخدمة. Build ناجح بمتغير خطأ يقدر يعطيك واجهة كتفتح وماكاتوصلش للخدمة. ماشي ضروري تبدل Toolchain باش تدير هاد الفحص؛ المطلوب هو تجرب Artifact اللي ناوي تنشر.

4. البيانات: Backup مجرّب، ماشي ملف سميتو backup

إلا عندك Database، حدد شنو كتنسخ: الجداول، الملفات المرفوعة، إعدادات الخدمة والأسرار فمكانها المحمي. فـ PostgreSQL، pg_dump واحد من المسارات الموثقة لنسخة من Database. صيغة الأمر، Authentication وطريقة Restore كيتعلقو بالإعداد عندك؛ ماتلصقش أمر مجهول فوق قاعدة حية.

اختبر الاسترجاع فبيئة منفصلة. واش البيانات كتقرا؟ واش الملفات المرتبطة بهاد السجلات باقين موجودين؟ سجل التاريخ والنسخة ومكان التخزين ومن عندو الوصول. إلا Backup والأصل فنفس القرص وبنفس صلاحيات الوصول، عطب فالقرص ولا مسح بالغلط يقدر يضيعهم بجوج.

قبل Migration، عرف واش التغيير قابل للرجوع. حذف Column أو تبديل معنى حقل يقدر يخلي التطبيق القديم مايبقاش يقدر يقرا البيانات. إلا الرجوع للـ Code ماكافيش، خاصك Plan للبيانات حتى هي. Static website بلا Database ماكيحتاجش Migration وهمية؛ احتافظ بالمصدر ونسخة Build وإعدادات Hosting الضرورية.

5. منين غادي تعرف أن شي حاجة عطلات؟

اختار إشارات مرتبطة بالخدمة: فشل إرسال، أخطاء API، وقت استجابة أو عملية كتوقف قبل النهاية. Logs خاصها تعاون تربط المشكل بطلب أو وقت، بلا Passwords ولا محتوى وثائق الناس. المراقبة كتحتاج حتى واحد يشوف التنبيه ويعرف شنو يدير به.

OpenTelemetry كيوفر أدوات ومعايير لـ Traces، Metrics وLogs؛ ماشي خدمة تخزين وتحليل كاملة بوحدو. تقدر تستعمل الموجود فـ Hosting إلا كافي، ولا Backend مراقبة مناسب إلا احتجتي. راجع المصاريف والاحتفاظ بالبيانات قبل إرسال كل Event لخدمة خارجية.

دير خطأ تجريبي غير مؤذٍ فبيئة الاختبار وشوف واش الإشارة وصلات للوجهة اللي كتراقبها. Dashboard فارغ يقدر يعني أن ماكاينش خطأ، أو ببساطة أن الربط ماخدامش. الفرق ماكيبانش بلا تجربة محددة.

6. خطّة Rollback قبل ما تحتاجها

كتب آخر نسخة معروفة خدامة، طريقة الرجوع ليها، والصلاحية اللي كتحتاج. خزن نسخة Release أو Artifact بعلامة واضحة. إلا كاتستعمل CI، راجع Approvals، Environment وConcurrency باش جوج Deployments مايدوسوش على بعضهم. GitHub كيوثق هاد Controls، ولكن اختار اللي مناسب للخدمة اللي عندك.

حدد شنو غادي يخليك توقف: فقدان بيانات، فشل المسار الأساسي، ولا Error متكرر. جرّب طريقة الرجوع فـ Staging مع نفس القيود المهمة. الرجوع للـ Code ماشي دائماً رجوع للـ Database، وماخصوش يمسح بيانات تزادت من بعد النشر بلا قرار واضح.

الورقة الصغيرة اللي تبقى مع Release

سجل المسؤول عن النشر، النسخة، وقت التجربة ونتيجتها. هاد الجدول نموذج تسليم، ماشي شهادة أمان:

الفحصالدليل اللي تسجل
المسار الأساسيالخطوات والنتيجة فنسخة Build
الأسرار والصلاحياتشنو تراجع وشنو باقي ما تأكدش
البياناتتاريخ Backup ونتيجة Restore
المراقبة والرجوعتجربة التنبيه وطريقة Rollback

إلا واحد النقطة ماجربتيهاش، كتبها بلا تزيين. هاد الصراحة كتعاونك تقرر واش Release واجدة أو خاصها تبقى فالتجربة. وتقدر ترجع لـ Workflow ديال Vibe Coding باش تربط أي إصلاح قادم بمتطلب واختبار، بدل سلسلة ديال Prompts ماعندهاش نهاية.