🛠️ مهارة إدارة السيرفر (Server Management Skill)
هذه المهارة تهدف لضمان استقرار النظام (Stability) وتجنب "التخمين" أثناء التعامل مع السيرفر.
📋 ميثاق العمل (The Protocol)
1. التعامل مع قاعدة البيانات (PostgreSQL)
- •القاعدة الذهبية: لا تفرض كلمة مرور جديدة قبل التأكد من اسم قاعدة البيانات والمستخدم.
- •التحقق: استخدم دائماً
SELECT datname FROM pg_database;وSELECT rolname FROM pg_roles;. - •التغيير: يتم تغيير الباسورد عبر ملف SQL مؤقت يُرفع داخل الحاوية (Docker Container) لتجنب أخطاء Shell Quoting.
2. إدارة PM2 و NestJS
- •المنفذ (Port): في بيئة Linux، المنافذ أقل من 1024 تتطلب صلاحيات Root. استخدم دائماً المنفذ
3000أو أعلى للخدمات العادية. - •تحديث البيئة: لا تستخدم
pm2 restartوحده؛ استخدم دائماًpm2 restart APP_NAME --update-envلضمان قراءة التغييرات في ملفات.env.
3. طلبات الـ API (JSON-Safe Protocol)
- •القاعدة: لتجنب أخطاء الرموز (
",') في الـ JSON، استخدم دائماً صيغةbashمتعددة الأسطر مع الـ SSH. - •النمط:
أو استدعاء ملف bash مؤقت إذا كان الـ JSON ضخماً.bash
ssh MyServer "bash -c \"curl -s -X POST http://localhost:3000/api/tenants \\ -H 'Content-Type: application/json' \\ -d '{\\\"id\\\": \\\"tenant-id\\\", \\\"name\\\": \\\"Tenant Name\\\"}'\""
4. الصلاحيات (Sudo)
- •إذا واجهت
Permission deniedأوNot in sudoersللمستخدمnewAI:- •لا تطلب من المستحدم تنفيذ الأمر يدوياً.
- •استخدم قناة SSH لإصلاح الصلاحيات (
usermod -aG sudo) أو تنفيذ الأمر كـroot.
5. بروتوكول التعامل مع المشاكل المستمرة
- •القاعدة: إذا واجهت مشكلة تقنية (مثل خطأ 500 أو فشل بناء)، حاول إصلاحها بحد أقصى مرتين (2 attempts).
- •الإجراء عند الفشل: إذا استمرت المشكلة بعد المحاولة الثانية، توقف فوراً وأرسل "تقرير حالة مفصل" للمستخدم يتضمن:
- •ما الذي حاولت فعله.
- •سجلات الأخطاء الدقيقة (Error Logs).
- •طلب التوجيه بالحل المقترح من قبل المستخدم.
- •الهدف: تجنب الدخول في حلقات إصلاح غير مجدية وضمان تدخل المستخدم في الوقت المناسب.
🚀 أوامر التحقق السريع (Health Checks)
- •التحقق من الاتصال:
curl -I http://localhost:3000/health - •فحص سجلات الأخطاء:
pm2 logs APP_NAME --lines 50 --raw - •فحص المنافذ:
sudo ss -tulpn
6. بروتوكول التنفيذ المنفرد (Atomic Execution)
- •القاعدة الذهبية: يمنع منعاً باتاً دمج الأوامر البرمجية في سطر واحد باستخدام
&&أو;عند التعامل مع السيرفر أو البناء. - •التنفيذ: يجب تنفيذ كل خطوة كأمر مستقل (Separate Command Call).
- •خطوة الدخول للمجلد: أمر مستقل. (عشان نتأكد إننا في المكان الصح ومفيش خطأ في المسار)
- •خطوة الحذف: أمر مستقل. (عشان نتأكد إن الملفات القديمة اتمسحت فعلاً مش مجرد تجاهل للخطأ)
- •خطوة البناء: أمر مستقل. (عشان لو في خطأ في الكود يظهر فوراً ونعرف مكانه فين بالضبط)
- •خطوة التشغيل: أمر مستقل. (عشان نضمن إن كل شيء جاهز للعمل بكفاءة)
- •الهدف: الحصول على تغذية راجعة (Feedback) فورية ودقيقة لكل مرحلة، وتجنب "تراكم الأخطاء" (Cascading Errors) الذي يخفي السبب الحقيقي للفشل.
C:\Users\Dell\Desktop\52\doc\protocol.txt بروتوكول انشاء الملفات
C:\Users\Dell\Desktop\52\doc\SERVER_INFO.md
معلومات هامة جدا عن السيرفر
هذه المهارة تضمن عدم تكرار الأخطاء التقنية التي حدثت وتوفر "كود نظيف" وسيرفر مستقر، وهي وسيلة تعليمية لفهم كيفية إدارة الأنظمة الضخمة.