# نسخ Nibleaf احتياطيًا واستعادته وترقيته

> اجمع بيانات Postgres وتخزين الكائنات في مجموعة استعادة واحدة، واختبر الاستعادة في بيئة معزولة، ثم رقِّ إصدار Nibleaf المثبّت أو تراجع إلى الإصدار السابق.

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

## إنشاء نسخة احتياطية

عند التنفيذ من نسخة محلية للمستودع، يستخدم السكربت المضمّن افتراضيًا
`docker-compose.prod.yml` و`./backups` ومدة احتفاظ محلية تبلغ 14 يومًا ووحدة
تخزين maxio المضمّنة:

```bash
./scripts/backup.sh
```

في مجلد أنشأه المثبّت الإرشادي حيث يحمل ملف Compose الاسم
`docker-compose.yml`، وجّه السكربت إلى ذلك الملف:

```bash
COMPOSE_FILE=docker-compose.yml ./scripts/backup.sh
```

ينشئ السكربت ملف `pg_dump` بتنسيق مخصّص، وينشئ أرشيف تخزين مضغوطًا عندما تكون
وحدة تخزين Docker المهيّأة موجودة. لا تلتقط خطوة وحدة تخزين Docker حاويات R2
أو S3 الخارجية؛ استخدم إمكانات المزوّد لإدارة الإصدارات أو النسخ المتماثل، أو
أنشئ نسخة احتياطية مستقلة للحاوية.

انقل الملفين إلى خارج المضيف باستخدام بيانات اعتماد منفصلة، وسجّل المعرّفات
والأحجام والطوابع الزمنية وسياسة الاحتفاظ وإصدار التطبيق.

## اختبار الاستعادة

لا تستبدل بيئة الإنتاج مطلقًا عند إجراء تمرين. أنشئ قاعدة بيانات ووجهة تخزين
ومصدر تطبيق معزولة. اتبع أوامر الاستعادة الموثّقة في أعلى
`scripts/backup.sh`، ثم تحقق من المشاريع والعضويات وأشجار الصفحات والمسودات
الحالية وعمليات النشر ذات الحالة `READY` والأصول المرفوعة وعزل المصادقة والبحث
العام.

سجّل الزمن المنقضي وكل خطوة يدوية. لا يُعد رمز خروج ناجح لمهمة النسخ الاحتياطي
دليلًا على قابلية الاستعادة من دون نجاح استعادة معزولة.

## ترقية إصدار مثبّت

اقرأ ملاحظات كل إصدار وسيط، وتحقق من أي تغييرات خاصة بالإصدار في الترحيل أو
التهيئة. أنشئ نسخة احتياطية واختبر استعادتها، ثم غيّر `NIBLEAF_VERSION` في
`.env` إلى وسم إصدار موجود:

إمكانات أغسطس 2026 الست مدمجة حاليًا في المصدر، بينما يبقى بيان الاستضافة
الذاتية المنشور على v0.1.2. لا تخترع وسمًا أحدث ولا تستبدل الملخصات الرقمية
المثبتة لبرنامج التثبيت وCompose. عند توفر ناتج مستقبلي مطابق، استخدم
[دليل ترحيل الإصدار المجمع](/self-hosting/combined-release-migration)
لترتيب اعتماد البحث والاستخدام والإضافات والتكاملات وMCP.

```dotenv
NIBLEAF_VERSION=vX.Y.Z
```

اسحب الخدمات وأعد إنشاءها:

```bash
docker compose -f docker-compose.prod.yml pull
docker compose -f docker-compose.prod.yml up -d
```

تحقق من ملخّص الصورة الرقمي، وسجل الترحيل، وسلامة الخدمات، وتسجيل الدخول،
وعملية رفع واحدة، وعملية نشر واحدة، وعملية بحث واحدة، وصفحة عامة واحدة.

## التراجع الآمن إلى الإصدار السابق

إذا لم يُنفّذ أي ترحيل للمخطط، فثبّت الصورة السابقة وأعد إنشاء الخدمات. وإذا
غيّر ترحيل أحادي الاتجاه قاعدة البيانات، فأوقف عمليات الكتابة واستعد مجموعة
الاستعادة السابقة للترقية قبل تشغيل التطبيق الأقدم.

بالنسبة إلى مخطط الإمكانات المجمع، فضّل التراجع في وقت التشغيل واعكس MCP ثم
التكاملات ثم الإضافات ثم الاستخدام وأخيرًا البحث، ولا تفعل ذلك إلا بعد نشر شيفرة
لا تقرأ الحالة المحذوفة. يملك ترحيل التكاملات الحقل الاختياري المشترك
`ApiKey.expiresAt`؛ فلا تحذفه ما دام MCP أو مستهلك آخر يعتمد عليه.

لا تجمع ترقية التطبيق مع تغيير الإصدار الرئيسي لـPostgreSQL. تعامل مع ترقية
قاعدة البيانات على أنها مشروع مستقل للتفريغ والاستعادة.
