انتقل إلى المحتوى

الميزات

BombVault بسيط افتراضياً وعميق عند الحاجة. تُظهر الواجهة الأساسيات فقط حتى تقلب مفتاح Simple / Advanced. تجمع هذه الصفحة مجموعة الميزات الكاملة.

نطاق النسخ الاحتياطي

ماذا ما الذي يُحفَظ
Docker containers مجلد appdata إضافة إلى تعريف الحاوية (الصورة، متغيرات البيئة، المنافذ، التسميات، الوحدات).
KVM / libvirt VMs صورة (صور) قرص الـ VM، وتعريف XML، وذاكرة UEFI NVRAM (إيقاف تشغيل آمن أو لقطة حية، عبر SSH). تعود اللقطات الحية تلقائياً إلى نسخة احتياطية آمنة إذا تعذّر إنشاء اللقطة، فلا يفشل نسخ الـ VM احتياطياً بمجرد خطأ.
Unraid flash فلاش USB بالكامل (/boot): نظام التشغيل، الترخيص، إعداد المصفوفة، المشاركات، وإعداد الشبكة والإضافات. الاستعادة هي تنزيل .zip بنقرة واحدة ولا تكتب فوق الفلاش قيد التشغيل أبداً.
إعدادات التطبيق مجلد /config الخاص بـ BombVault (قاعدة بيانات الإعدادات، بيانات الاعتماد خارج الموقع، زوج مفاتيح libvirt SSH)، مُلتقَط بلقطة عبر VACUUM INTO في SQLite فلا تُلتقَط قاعدة بيانات بوضع WAL أثناء الكتابة. يُستعاد عبر إعادة تشغيل ذاتية، فلا تُكتَب البيانات فوق قاعدة البيانات الحية تحت مقبض مفتوح.
الملفات والمجلدات مجموعات ملفات مسمّاة: أي مجلد على الخادم (مشاركة، مستنداتك، مكتبة صور)، ولكلٍّ منها أنماط استبعاد اختيارية خاصة بكل مجموعة. تكافؤ كامل مع النطاقات الأخرى (الجداول الزمنية، الاحتفاظ، النسخ خارج الموقع، فحوص السلامة وتمارين الاستعادة).

الاستعادة

  • استعادة كاملة بنقرة واحدة. اختر لقطة، انقر Restore. انتهى.
  • الاستعادة من المحلي أو من خارج الموقع. لكل متصفح نسخ احتياطية مفتاح Local / Off-site، فإذا فُقد مستودع محلي أو تلف يمكنك سرد النسخ والاستعادة مباشرة من النسخة المتماثلة خارج الموقع. الحذف لكل مصدر: إزالة نسخة احتياطية تؤثر فقط على النسخة التي تعرضها.
  • يُعاد تثبيت الحاويات تلقائياً. يُعاد تطبيق تعريف الحاوية على واجهة Docker API، فتظهر الحاوية من جديد في تبويب Docker على Unraid تماماً كما كانت.
  • يُعاد إنشاء الـ VMs تلقائياً. يُعاد استيراد XML عبر SSH فيظهر الـ VM من جديد في مدير الأجهزة الافتراضية مع إعادة ربط قرصه وذاكرة UEFI NVRAM، حتى بعد حذف الـ VM. تعيد Discover backups بناء إدخال اختفى بالكامل (مثلاً بعد تثبيت جديد).
  • استعادة فردية. استعِد حاوية واحدة أو VM واحداً أو مجموعة ملفات واحدة دون المساس بالبقية.
  • استعادة الفلاش هي تنزيل .zip. يُبثّ إلى متصفحك باسم flash-<id>.zip، جاهز للإسقاط في أداة إنشاء USB من Unraid. لا يُمَس /boot قيد التشغيل أبداً.
  • تصدير zip مجدوَل للفلاش. بعد كل نسخة احتياطية للفلاش، اكتب اللقطة اختيارياً كملف .zip عادي إلى مجلد تختاره (ملف flash-latest.zip واحد يُستبدَل أو سجل متجدد). وجّهه إلى مجلد Syncthing أو rclone حتى تغادر نسخة USB القابلة للإقلاع الخادمَ تلقائياً.
  • فحص تعارض قبل التنفيذ. قبل إيقاف أو إزالة أي شيء، تتحقق الاستعادة من أن عنوان IP الثابت للحاوية ومنافذ المضيف المنشورة متاحة، وتُجهض برسالة واضحة بدلاً من ترك استعادة نصف مكتملة.
  • استعادة على مستوى الملفات. وسّع Files للقطة حاوية، صفِّ، علّم أي عدد من الملفات والمجلدات، ثم استعِد المحدَّد في مكانه أو داخل مجلد تختاره.
  • استعادة مجموعة ملفات. استعِد لقطة مجموعة ملفات في مكانها (بعد تأكيد صريح) أو داخل مجلد تختاره، ولا يحدث ذلك بصمت أبداً. تعمل الاستعادة الانتقائية هنا أيضاً.
  • تحافظ الاستعادة على حالة التشغيل. حاوية أو VM كان يعمل عند نسخه احتياطياً يعود يعمل؛ وما كان متوقفاً يبقى متوقفاً. علّم Leave stopped after restore لإعادة الإنشاء دون تشغيل.
  • استعادة حزمة كاملة. تُجمَّع الحاويات من نفس مشروع Docker Compose في لوحة Stacks. تعيد Restore stack بناء كل عضو من أحدث نسخة احتياطية له متوقفاً، ثم تشغّلها اختيارياً وفق ترتيب depends_on.
  • تقدم حي، وإلغاء، وتغذية راجعة عن الانشغال. تُظهر استعادة طويلة شريط نسبة مئوية حياً ويمكن إلغاؤها بتأكيد مُدرك للنوع. تُسجَّل الاستعادة المُلغاة على أنها مُلغاة، لا فاشلة.
  • تعافٍ موجَّه. يرشد تبويب Recovery مخصَّص تثبيتاً جديداً عبر حالة الكارثة. راجع النسخ خارج الموقع والتعافي.
  • الاستعادة من مستودع BombVault آخر. تفتح جلسة لمرة واحدة للقراءة فقط مستودعَ نسخة BombVault مختلفة باستخدام APP_KEY الخاص بتلك النسخة، فيمكنك سحب حاوية من الخادم A إلى الخادم B دون المساس بإعداداتك. راجع النسخ خارج الموقع والتعافي.

التخزين والجدولة

  • نسخ احتياطية تزايدية ومُزالة التكرار عبر restic، فلا تنتفخ حتى أقراص الـ VM الكبيرة داخل المستودع.
  • الوجهات: مسار محلي، أو خارج الموقع. SMB/CIFS وNFS (ركّب المشاركة على Unraid ووجّه مسار نسخ احتياطي إليها)، أو خلفيات restic الأصلية دون rclone (s3:...، rest:http://host:8000/repo، b2:...، sftp:user@host:/repo)، أو أي remote في rclone عبر rclone:<remote>:<bucket>/path. تُخزَّن جميع بيانات الاعتماد مشفَّرة.
  • أهداف SSH لا تحتاج تثبيت أي شيء على الطرف البعيد. يتطلب sftp: فقط خادم SSH، فيعمل حتى Raspberry Pi مجرّد (دون Docker، دون restic) كوجهة خارج الموقع. تُثبَّت مفاتيح المضيف تلقائياً عند أول اتصال.
  • نسخة خارج الموقع (محلي + بعيد). احتفظ بالنسخة المحلية السريعة وأضف نسخة متماثلة أو أكثر خارج الموقع، مُنسَخة عبر restic copy على أساس بذل أفضل جهد (عثرة خارج الموقع لا تُفشل النسخة المحلية أبداً). لكل نطاق جدوله الزمني الخاص خارج الموقع، إضافة إلى زر Replicate now.
  • أهداف متعددة خارج الموقع لكل نطاق. يمكن لكل نطاق (الحاويات، الـ VMs، الفلاش، الإعدادات ومجموعات الملفات) النسخ إلى عدة وجهات خارج الموقع في آن واحد، لا وجهة واحدة فقط. أضف أهدافاً إضافية في تبويب Off-site، لكلٍّ مستودعه الخاص وفئة تخزين S3 وعلامة append-only واحتفاظ وميزانية نمو. تُنقَل نسختك الحالية خارج الموقع بوصفها الهدف الأول، فلا يتغير شيء حتى تضيف هدفاً ثانياً، ويُنسَخ كل هدف لنطاقٍ ما وفق جدول ذلك النطاق خارج الموقع.
  • ترتيب نسخ احتياطي يدوي. اضبط الترتيب الدقيق الذي تُنسَخ به حاوياتك من لوحة backup-order في صفحة Containers. تتبع عمليات التشغيل المجدولة ومتعددة التحديد ذلك؛ وأي حاوية تتركها غير مرتَّبة تحتفظ بسلوك الأكثر تأخّراً أولاً السابق، ولا تتغير نسخة حاوية واحدة.
  • احتفاظ قابل للضبط: keep-last / يومي / أسبوعي / شهري، يُقلَّم تلقائياً بعد كل نسخة احتياطية، ويُضبَط لكل مصدر (المحلي بجوار مسارات النسخ الاحتياطي، وخارج الموقع في تبويب Off-site حتى تحتفظ بالنسخ خارج الموقع أطول كأرشيف).
  • جدولة لكل نطاق (يومي / أسبوعي بما فيه مجموعات متعددة الأيام / كل N أيام / cron خام)، وكلها تُحرَّر في مكان واحد في Settings, Schedules.
  • حدود نطاق التراسل خارج الموقع. حُدّ معدل رفع/تنزيل restic حتى لا يُشبع النسخ شبكة WAN لديك.
  • فئة تخزين باردة وأرشيفية (S3). لمستودع S3 أصلي خارج الموقع يمكنك اختيار فئة التخزين، مقيّدة بالمستويات القابلة للقراءة عند الاستعادة (Standard، Standard-IA، One Zone-IA، Intelligent-Tiering، Glacier Instant Retrieval) فلا يعطّل تسعير الأرشفة استعادةً بصمت أبداً. تُستبعَد عمداً مستويات الأرشفة العميقة التي تحتاج أولاً إلى إذابة غير متزامنة (Glacier Flexible، Deep Archive). خلفيات S3 الأصلية فقط؛ أما remotes في rclone فتضبط فئتها في إعداد rclone.
  • تبقى مجلدات النسخ الاحتياطي قابلة للنسخ خارج الجهاز. بعد كل نسخة احتياطية يخفّف BombVault شجرة المستودع المحلي إلى أدلة 0755 / ملفات 0644 (المستودعات مشفَّرة، فلا شيء مكشوف) حتى لا يُحجَب مستخدم مزامنة غير root عبر SMB. تعيش تعريفات الاستعادة داخل كل مستودع، فمجلد مستودع منسوخ مكتفٍ ذاتياً بالكامل.

الرؤية والتحقق والمراقبة

  • حالة الحماية (RPO). تُظهر لوحة التحكم مؤشراً أخضر / كهرماني / أحمر لكل نطاق، مقارِناً آخر نسخة احتياطية ناجحة بجدولها الزمني، فتتحول نسخة متأخرة إلى الأحمر بدلاً من الاختباء في سجل.
  • خريطة حرارية لصحة النسخ الاحتياطي. تقويم على غرار مساهمات GitHub لنتائج النسخ الاحتياطي اليومية لكل نطاق، مع مبدّل Containers / VMs / Flash / Config / Files.
  • توقيت التشغيل في كل مكان. يقرأ كل إدخال في سجل التشغيل start, end (duration)، وتحمل كل حاوية وكل VM قائمتها الخاصة Recent runs في صفحتها.
  • لوحة تحكم يمكنك إعادة ترتيبها. بدّل وضع التخصيص لسحب البطاقات إلى ترتيبك وإخفاء ما لا تحتاجه. يُحفَظ التخطيط لكل متصفح.
  • حجم المستودع واتجاه إزالة التكرار. حجم المستودع الحالي، ونسبة إزالة التكرار، وعدد اللقطات لكل نطاق، مع مخطط بياني مصغّر لنمو التخزين.
  • تمارين التحقق من الاستعادة. يثبت BombVault دورياً أن نسخك الاحتياطية قابلة للاستعادة (restic check --read-data-subset، محدودة) ويُظهر شارة آخر تحقق من قابلية الاستعادة لكل نطاق.
  • عمليات ذاتية الإصلاح. يُمسَح ويُعاد المحاولة مرة واحدة تلقائياً لقفل restic يتيماً مثبَتاً (تركه إعادة تشغيل أثناء عملية). الاحتفاظ ثابت الهوية (يُقلَّم لكل عنصر، محصَّن ضد تغييرات المسار أو المضيف) ويُرسِل فشلُ الاحتفاظ إشعاراً.
  • حقيبة استعادة مفتاح التشفير. تنزيل بنقرة واحدة للمفتاح الرئيسي، وكلمة مرور restic المشتقة، ومواقع المستودعات وأوامرها بالضبط، فيمكنك الاستعادة دون BombVault يعمل. راجع النسخ خارج الموقع والتعافي.
  • تصدير إعداداتك واستيرادها. تكتب بطاقة تصدير الإعدادات واستيرادها في صفحة الإعدادات إعداداتك بالكامل (إعدادات النطاقات، الأهداف خارج الموقع، الجداول الزمنية، الاحتفاظ، الإشعارات) إلى ملف JSON محمول، فلا يعني الانتقال إلى جهاز جديد أو استنساخ إعداد إعادة إدخال كل شيء يدوياً. أنت تختار ما إذا كنت ستُضمّن بيانات اعتماد خارج الموقع والإشعارات؛ ومعها يكون الملف حساساً مثل حقيبة الاستعادة الخاصة بك. يعرض الاستيراد معاينة ويطلب تأكيداً، ولا يمس بيانات نسخك الاحتياطية أو سجلها أبداً.
  • الإشعارات. Webhook (Discord / Slack / Gotify / ntfy)، Matrix، Healthchecks.io، البريد الإلكتروني (SMTP)، خادم Apprise API ذاتي الاستضافة، ونظام الإشعارات الأصلي في Unraid. السياسة لكل نسخة احتياطية: أبداً / عند الفشل / دائماً. يمكن لتشغيل مجدوَل لعناصر كثيرة إرسال ملخص واحد N من M نجحت. تحصل Healthchecks على دورة الحياة الكاملة (/start، ثم النجاح أو /fail) كلما ضُبِط رابط.
  • /metrics من Prometheus. اختياري (معطَّل افتراضياً، رمز bearer اختياري) لـ Grafana أو Uptime Kuma. يكشف حالة النسخ الاحتياطي وأحجامها وطوابعها الزمنية، دون أسرار أو مسارات في التسميات.

الحماية من برامج الفدية

  • نسخة خارج الموقع غير قابلة للتغيير (append-only). علّم مستودعاً خارج الموقع بأنه append-only حتى لا تستطيع برامج الفدية أو مضيف مخترَق حذف نسخك الاحتياطية أو إعادة كتابتها. يفرض ذلك الطرفُ البعيد (خادم restic/rest-server في وضع --append-only)؛ ولا يفعل BombVault سوى التحقق منه، ولا يُظهر الأخضر بناءً على مجرد ادعاء إعداد.
  • اختبار العبث. يثبت BombVault دورياً ضمانة append-only بمحاولة حذف فعلية على المستودع خارج الموقع (موجَّهة إلى كائن غير موجود): الرفض يعني محميّاً، والقبول يعني غير محميّ. النتيجة غير الحاسمة لا تقلب الحكم المخزَّن أبداً.
  • إعداد موجَّه لخارج الموقع. يرشدك معالج من اختيار الخلفية عبر مقتطف نشر rest-server جاهز للّصق، واختبار اتصال، ومفتاح عدم القابلية للتغيير، واستراتيجية احتفاظ.
  • تمارين التعافي من الكوارث (خارج الموقع). استعِد هدفاً حقيقياً من المستودع خارج الموقع إلى بيئة اختبار قابلة للتخلص، وتحقق منه ملفاً بملف وبايتاً ببايت، ثم نظّف. راجع النسخ خارج الموقع والتعافي.
  • بطاقة تقييم الحماية من برامج الفدية. بطاقة في لوحة التحكم بوضعية خضراء / كهرمانية / حمراء لكل نطاق وقائمة تحقق مؤرَّخة العمر؛ يرتبط كل صف أحمر مباشرة بالإصلاح. لا تتحول إلى الأخضر إلا على حقائق مُتحقَّق منها.
  • إنذار ميزانية النمو. لنسخة خارج الموقع غير قابلة للتغيير (حيث لا تُقلَّم اللقطات القديمة عمداً أبداً)، اضبط ميزانية حجم واحصل على تنبيه قبل أن تنفلت.
  • لوحة تحكم المُستقبِل (الجانب المُستقبِل). على الجهاز الذي يستقبل نسخاً غير قابلة للتغيير خارج الموقع من BombVault آخر، فعّل مفتاح Receiver (الإعدادات) للكشف عن تبويب Receiver. سجّل مستودعاً مستقبَلاً للقراءة فقط (مفتوحاً بمفتاح النسخة المُرسِلة) لرؤية جرد لقطاته مجمَّعاً بحسب المصدر، ومتى وصل كل مصدر آخر مرة، وتشغيل restic check مستقل على الجهاز المُستقبِل. ينبّهك عندما يتوقف مصدر عن الإرسال ضمن نافذة تحددها (مفتاح رجل ميت) أو عندما يفشل فحص سلامة. للقراءة فقط بصرامة، فلا يكتب أبداً إلى المستودع المستقبَل، ومعطَّل افتراضياً. راجع النسخ خارج الموقع والتعافي.

عمليات التصدير النصية

  • تصدير نصي للحاوية. يكتب زر Export لكل حاوية نسخة قابلة للتصفح وخالية من الأدوات بجوار المستودع: <name>.tar.gz لمجلدات النسخ الاحتياطي إضافة إلى قالب Unraid <name>.xml. يبقى restic هو المحرك؛ وهذه نسخة راحة إضافية.
  • تصدير نصي للـ VM. للـ VMs نفس Export (plain tar): <name>.tar.gz لصورة (صور) القرص إضافة إلى <name>.xml، قابل للاستعادة بـ virsh define مع القرص، دون حاجة إلى BombVault أو restic.
  • تشفير عمليات التصدير النصية (age). تقع عمليات التصدير خارج restic، فهي نص عادي افتراضياً. فعّل تشفير age ضمن الإعدادات وأضف مستلماً أو أكثر (مفتاح age عام أو مفتاح SSH عام). عندئذٍ يُختَم كل تصدير (ملفات .tar.gz للحاوية والـ VM، وملفات .xml المرافقة لها، وملف الفلاش المضغوط) لهؤلاء المستلمين، وتفك تشفيره لاحقاً خارج الجهاز بالمفتاح الخاص المطابق. كقاعدة أمان، مع تفعيل التشفير وعدم ضبط مستلم صالح، يفشل التصدير برسالة خطأ واضحة بدلاً من كتابة نص عادي أبداً.

أخرى

  • انسخ الكثير احتياطياً دفعة واحدة. حدّد حاويات متعددة واضغط Back up selected. تعمل الدفعة على جانب الخادم، فتستمر حتى لو أغلقت التبويبة أو فقدت الاتصال. لا ينسخ BombVault حاويته الخاصة احتياطياً أبداً (ومن ثم لا يوقفها).
  • متصفح لقطات بقائمة نقاط استعادة، وحذف لكل لقطة، وشجرة مجلدات قابلة للطي للاستعادة على مستوى الملفات.
  • صيانة المستودع لكل نطاق: Verify (restic check)، وUnlock (مسح قفل عالق)، وPrune (يطبّق سياسة الاحتفاظ عند الطلب حين تكون مضبوطة، وإلا استعادة مساحة عادية).
  • خطافات ما قبل/بعد النسخ الاحتياطي لكل حاوية. تُنفَّذ أوامر الصدفة داخل الحاوية (مثلاً mysqldump إلى appdata قبل النسخ الاحتياطي)؛ ويُلغي خطاف ما قبل الفاشل النسخةَ الاحتياطية.
  • إيقاف حاويات أخرى أثناء النسخ الاحتياطي، مع إعادة تشغيل مقيَّدة بالحالة الصحية. سمِّ حاويات معتمِدة (مثلاً قاعدة بيانات) لإيقافها أثناء نسخ هذه احتياطياً. بعد ذلك يعيدها BombVault وفق ترتيب depends_on في Compose وينتظر افتراضياً أن يبلّغ كلٌّ منها عن حالته الصحية (أو أنه يعمل، إن لم يكن له فحص صحة) قبل تشغيل الحاويات التي تعتمد عليه، فتكون تبعية مثل Pi-hole أو قاعدة بيانات أو بوابة VPN فعلاً قيد التشغيل قبل الخدمات التي تحتاجها، بدلاً من عودتها بـ connection refused. الانتظار محدود بمهلة لكل حاوية (120 ثانية افتراضياً) فلا يمكن أبداً لحاوية بطيئة أو لا تصح أن تعلّق التشغيل؛ ويعيش كل من الانتظار والمهلة في Settings, Schedules (أوقف الانتظار لإعادة التشغيل السابقة دفعة واحدة). يغلّف نفس إعادة التشغيل المرتَّبة والمقيَّدة بالحالة الصحية أيضاً تحديثَ الصورة بعد النسخ الاحتياطي، ففي يوم يصل فيه تحديث تُبقى التبعيات موقوفة طوال إعادة الإنشاء ولا تُعاد إلا مقيَّدة بالحالة الصحية بمجرد انتهائه.
  • أنماط استبعاد لكل حاوية. اسرد الأدلة الفرعية التي تتخطّاها داخل وحدة منسوخة احتياطياً، واحدة في كل سطر. اكتب المسارات كما تراها داخل الحاوية؛ تُظهر معاينة حية ما يُترجَم إليه كل سطر وتحذّر عندما لا يستبعد سطرٌ شيئاً.
  • التحديث بعد نسخة احتياطية ناجحة (متقدم، معطَّل افتراضياً). فعّل هذا على حاوية فيسحب BombVault أحدث صورة ويعيد إنشاءها، لكن فقط حين توجد فعلاً صورة أحدث، فتوجد دائماً نقطة استعادة حديثة أولاً. إضافات اختيارية: إشعار لكل حاوية مُحدَّثة وتنظيف الصور (لا تُحذَف أبداً صورة أساس تشترك فيها حاويات أخرى). بعد التحديث يطلب BombVault أيضاً من Unraid إعادة فحص حالة تحديث تلك الحاوية بالذات، فتُمسَح لافتة update available القديمة في تبويب Docker بنفسها بدلاً من بقائها (تمر تحديثات Unraid مباشرة عبر Docker API، فحالته المخزَّنة، وفي بعض الإصدارات ملخص مخزَّن، تُبقي اللافتة ظاهرة لولا ذلك). إنها بذل أفضل جهد، ولا تؤثر على النسخة الاحتياطية أبداً، ومفعّلة افتراضياً ولها مفتاح في الإعدادات.
  • الاستعادة إلى مجلد بديل للاستنساخ أو الفحص.
  • مقارنة اللقطات وعلاماتها. قارِن لقطتين لرؤية ما تغيّر، وضع علامات على اللقطات لتصفيتها.
  • ما الجديد بعد التحديث. تظهر ملاحظات الإصدار مرة واحدة لكل نسخة جديدة، مُقدَّمة من ملاحظات مضمَّنة في الملف الثنائي، فيعمل الحوار دون اتصال.
  • HTTPS جاهز افتراضياً (موقّع ذاتياً، أو أحضِر شهادتك الخاصة خلف عاكس بروكسي).
  • فحص صحة Docker. تبلّغ الحاوية عن حالتها الصحية / غير الصحية من /api/health الخاص بها، فيمكن لأداة إصلاح ذاتي إعادة تشغيلها إذا علِق المحرك يوماً.
  • واجهة داكنة/فاتحة بـ 26 لغة مع منتقي أعلام.