SubLaneSubLane

المساندة والاستعادة

SubLane دليل: دعم وإعادة.

حالما تستخدم حالتك، تخلق الدعم قبل ترقية أو نقل الخواديم. الطلب الأول.

SubLane يمكن أن يصدّر حالة تشغيلية، التحقق من الدعم، واستعادة ذلك إلى دليل جديد. النظام يُعدّ استخدام نفس المصادقة على المحفوظات وإعادة التنفيذ، والاسترداد لا يلغي أبداً حالة التشغيل؛ والتحول إلى البيانات المستعادة هو إعادة تشغيل واضحة للمشغل.

ما هو مدرج

النسخ الجديدة ملفات age ثنائية مشفرة بكلمة مرور. بعد فك التشفير يحتوي أرشيف gzip/tar على:

  • sublane.db: ثابت SQLite طلق ناري، بما في ذلك بيانات WAL الملتزمة.
  • credentials.key: the matching encryption key for PARTscription accreditation and recoverable gateway keys.
  • manifest.json: صيغة الشكل، وقت الخلق، SubLane تركيب نسخ، ونسخة شيما، وحجم الملفات، وفحص SHA-256.

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

تتطلب الصادرات الجديدة كلمة مرور من 12 إلى 128 حرفًا. لا يحتفظ SubLane بها؛ احفظها منفصلة عن النسخة، إذ لا يمكن استعادة النسخة المشفرة عند فقدانها. تبقى أرشيفات .tar.gz القديمة غير المشفرة قابلة للتحقق والاستعادة دون كلمة مرور، لكنها تحتوي على مفاتيح قابلة للقراءة ويجب حفظها في مكان خاص.

خط القيادة

تشغيل الأوامر من دليل مع ما يكفي من المساحة المجانية لقاعدة البيانات طلقات سريعة ومحفوظات مضغطة:

Command line · 1
mkdir -p backups
./bin/sublane backup --password-stdin --output ./backups/team.sublane-backup.tar.gz.age < /secure/backup-password
./bin/sublane backup verify --password-stdin --input ./backups/team.sublane-backup.tar.gz.age < /secure/backup-password
./bin/sublane restore --password-stdin --input ./backups/team.sublane-backup.tar.gz.age --data-dir ./data-restored < /secure/backup-password

backup يقرأ SUBLANE_DATA_DIR أو ./dataمع اختياري --data-dir تجاوز. restore دائما ما يتطلب دليلا جديدا صريحا؛ وحتى الدليل الفارغ الحالي لا بد من وجوده، ولا يمكن أبدا استبدال ملفات المحفوظات الموجودة ودليل استعادة الأدلة. JSON نتيجته العملية، المسار، البيانات الوصفية الاحتياطية. sublane --help قوائم الأوامر.

أوامر النفقة لا تبدأ HTTP خادم SDK المنفذون OAuth(ب) أو التحقق من الإطلاقات التلقائية، ولا تعتمد على عنوان الخادم/تشكيلات عامة - مُحددة بمهلة خمسة عشر دقيقة، وتستجيب للموقع SIGINT/SIGTERM.() وتقتصر طلقات قاعدة البيانات على 4 جي بي، وتستخدم المحفوظات IO العازلة المُلزَمة.() وإتاحة حيز للأقراص من أجل الاستخراج والهجرة عند التحقق من المحفوظات نفسها أو إعادتها إليها.

بعد إعادة ناجحة:

  1. أوقفوا التيار SubLane خدمة
  2. حافظ على دليل البيانات الأصلي
  3. ابدأ SubLane مع الدليل المستعادة:
Command line · 2
SUBLANE_DATA_DIR=./data-restored ./bin/sublane
  1. وقّع مرة أخرى وتحقق من المستعملين والمجمعات والمفاتيح والحسابات المتوقعة قبل استئناف حركة المرور بالفريق.

الدليل الأصلي متاح للتراجع عن طريق التوقف SubLane والتبديل SUBLANE_DATA_DIR لا تديروا مدخلين ضد دليل البيانات نفسه، وتعيدوا جميع القوائم المخزنة إلى الطلقة: لا تشمل الإلغاءات الرئيسية اللاحقة، وتغييرات كلمة السر، والسجلات الجديدة، وقد يكون مقدم الاشتراك قد أبطل مواقد قديمة العهد منذ تقديم الدعم؛ وإعادة تأويل الحسابات المتضررة عند الضرورة، والتحقق من التشفير والنزاهة المحلية دون الاتصال بمقدمي الخدمات.

الوصلة الشبكية

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

  • تحميل احتياطي ويخلق ويحمّل محفوظات كاملة في حين أن الحالة لا تزال متاحة.
  • التحقق من الدعم يفحص الملف المختار ويعرض وقت إنشاءه SubLane النسخ وحجم قاعدة البيانات.
  • استعدوا تحميل وتوثيق الملف مرة أخرى، ثم إنشاء <current data directory>/restore-readyوتظهر الصفحة الطريق الكامل والتعليمات المتعلقة بإعادة التشغيل، وتستمر الحالة الراهنة في الركض مع بياناتها الأصلية حتى يقوم المشغل باستبدال الأدلة.

قائمة restore-ready يحجب مسارات أخرى الإعداد، ويفحصها على الخادم أو يستخدمها كهدف جديد مختلف، ولا يمكن أن يكون هناك دليل على الشبكة API4 - إذا أعدت بيانات الاسترداد ولكن عملية المراجعة الحيّة فشلت، يحتفظ الدليل ويفيد الصفحة بفشل مراجعة الحسابات؛ ويفحصه قبل إعادة النظر فيه.

وتقتصر حمولات الشبكة وعمليات التنزيل على 256 ميغابايت من البيانات المضغوطة؛ وتحتاج عمليات الدعم الأكبر إلى شركة CLI. One export/verification/restore operation runs at a time per server. Upload, processing and download have bounded deadlines. .sublane-backup-* دليل؛ إزالة أدلة التلقيم المتروكة فقط عندما لا تجري أي عملية احتياطية.

وتُراجع حسابات الصادرات والاستعادة المعدة دون تسجيل محتويات المحفوظات، أو أسماء الملفات، أو مسارات الملفات أو وثائق التفويض. Cache-Control: no-store- تتدفق الصفحات من الملف المختار؛ ويتلقى المصفح المحفوظات المحملة كخليط مؤقت، ويصدر URL بعد بدء عملية التنزيل.

دعم المصفوفين واستعادة الضوابط:

Backup page with download, archive verification and restore preparation

Docker Compose

التصدير والتحقق داخل الحاوية الجارية:

Docker Compose · 3
docker compose -f docker.compose.yaml exec sublane sh -c 'mkdir -p /data/backups'
docker compose -f docker.compose.yaml exec -T sublane sublane backup --password-stdin --output /data/backups/team.sublane-backup.tar.gz.age < /secure/backup-password
docker compose -f docker.compose.yaml exec -T sublane sublane backup verify --password-stdin --input /data/backups/team.sublane-backup.tar.gz.age < /secure/backup-password
docker compose -f docker.compose.yaml cp sublane:/data/backups/team.sublane-backup.tar.gz.age ./team.sublane-backup.tar.gz.age

وللاسترجاع، نُقل الدعم إلى موقع خاص مكتوب داخل الحاوية، ثم نُعد دليلاً مستقلاً:

Docker Compose · 4
docker compose -f docker.compose.yaml exec -T sublane sublane restore --password-stdin --input /data/backups/team.sublane-backup.tar.gz.age --data-dir /data/restore-ready < /secure/backup-password

إعادة تشغيل الشبكة تنتج نفس الهدف لتفعيلها، وخلق منطقة محلية Compose التجاوز، مثلاً docker.compose.restore.yaml:

Docker Compose · 5
services:
  sublane:
    environment:
      SUBLANE_DATA_DIR: /data/restore-ready

ثم وقف العملية الأصلية والبدء بالتجاوز:

Docker Compose · 6
docker compose -f docker.compose.yaml stop sublane
docker compose -f docker.compose.yaml -f docker.compose.restore.yaml up -d

بالنسبة للحاوية التي توقفت بالفعل، استخدم docker compose -f docker.compose.yaml run --rm --no-deps sublane ... بدلاً من exec (ب) إدارة أوامر الصيانة ضد حجم البيانات المسمّى به، والاحتفاظ بالتجاوزات المختارة في أوامر النشر اللاحقة، وعدم إزالة الحجم المسمّى خلال هذا الإجراء.

دال - التقييم وسلوك الفشل

التحقق من الدخول والحجم الدقيقين للمحفوظات، وخلاصات SHA-256، ونزاهة الزبيب، ونسخة الكيماوي الموحدة المدعومة، SQLite السلامة والمفاتيح الأجنبية، والسجلات الإبداعية المقيدة، وإلغاء وثائق تفويض الحسابات والمشفوعة API المفاتيح، وصلات التقييم أيضاً SQLite وتُرفض القيم والبيانات الخاصة بشركة SQL في 1 MiB. Symlinks, pathversal, duplicate/unexpected files, missing files, truncated archives and unknown future schemas, Older development schemas are not accepted by this prerelease build.

وتغلق شركة " ريستر " وتتزامن مع قاعدة بياناتها/مفتاحها المعد قبل نشر الدليل الجديد بأكمله مع عملية حظر الإحلال الذري، وتحتاج شركة " لينكس " و " ماكوس " إلى دعم في هذه العملية؛ وتفشل عملية غير مدعومة دون الرجوع إلى موقع مسمى، ولا يُدخل أي جدول إضافي لقاعدة البيانات أو نقلة شيما بدعم احتياطي. SQLite الاختراع يستعمل SQLite الدعم على الإنترنت API من خلال سائق جو مثبت بدلا من نسخ ملف قاعدة بيانات حية

نقطة النهايةالغرض
GET /api/settings/backupقراءة الحد الأقصى لحجم الشبكة واستعادة الوجهة الثابتة
POST /api/settings/backup/exportJSON {password} → .age
POST /api/settings/backup/verifymultipart/form-data: password + file
POST /api/settings/backup/restoremultipart/form-data: password + file

الاستخدام application/gzip أو application/octet-stream يعود عدد المحفوظات غير المستقرة 400، ويعود عدد المقصد الحالي 409، ويعاد 413 شحنة زائدة، ويعود 429 عملية مشغولة إلى 429 عملية مؤقتة. Retry-After- عودة الخزن وغير ذلك من حالات الفشل التشغيلي أشعلت 503 أخطاء.

credentials.key · كلمة مرور النسخة الاحتياطية

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

SUBLANE_CREDENTIALS_KEY_FILE: ملف مفتاح خاص اختياري خارج دليل البيانات؛ يحافظ على الموقع الحالي إذا لم يُضبط.

إذا كنت تستخدم مفتاحًا منفصلًا، فانقل credentials.key المستعاد إلى موقع خاص جديد خارج دليل البيانات وحدّث SUBLANE_CREDENTIALS_KEY_FILE قبل إعادة التشغيل، دون استبدال مفتاح النسخة الأصلية.

استخدم 12–128 حرفًا. احفظ كلمة المرور منفصلة؛ لا يمكن إعادة تعيينها عند فقدانها. مطلوبة للنسخ المشفرة. اتركها فارغة للأرشيفات القديمة غير المشفرة.

--key-file FILE · --password-stdin · scrypt: 18 (~256 MiB)

اقرأ كلمة المرور عبر --password-stdin من ملف خاص بسطر واحد وصلاحيات 0600؛ لا تضعها في معاملات الأمر أو متغيرات البيئة.

تستخدم الواجهة multipart/form-data بحقل password قبل file. تظل عمليات الرفع الخام القديمة مقبولة دون كلمة مرور.

ترحيل مفتاح Compose تلقائيًا

يوفّر مستودع التطبيق scripts/separate-key.sh لعمليات نشر Compose الحالية التي تستخدم SubLane v0.12.0+. احفظ السكربت وافحصه قبل تشغيله على مضيف Docker. صدّر أولًا نسخة استرداد مشفرة بكلمة مرور وتحقق منها.

فصل المفتاح الحالي
sudo bash scripts/separate-key.sh --dir /srv/sublane --key-dir /srv/sublane-secrets

يشير --dir إلى مجلد النشر الحالي الذي يحتوي على docker.compose.yaml وملف .env الاختياري. يجب أن يكون --key-dir مسارًا مطلقًا جديدًا في تخزين دائم على المضيف، خارج موضع تركيب البيانات الفعلي ومجلد الاسترداد، مع وجود المجلد الأب مسبقًا. تُدعم مسارات ASCII المعتادة بما فيها المسافات. يلزم Linux محلي مع Docker rootful دون إعادة تعيين userns أو SELinux، إضافة إلى Compose وBash وjq وGNU coreutils. يجب أن تكون الخدمة سليمة وباسم sublane، وأن يكون مجلد بياناتها جذر تركيب bind أو وحدة تخزين مسماة قابلة للكتابة. يجب أن يستخدم Compose مسافتين لإزاحة الخدمات وخريطة كتلية لـ environment وقائمة كتلية لـ volumes. تُرفض البنى غير المدعومة قبل إيقاف الخدمة.

يفحص السكربت المشروع والصورة وموضع تركيب البيانات وأذونات المفتاح الأصلي الخاصة وحجمه البالغ 32 بايت وبصمته. يحافظ على نص Compose واستيفاء المتغيرات ويقارن التكوين الموحّد. يظل مجلد المضيف الجديد مملوكًا لـ root بأذونات 0700؛ ويُركّب فقط ملف المفتاح ذي الأذونات 0600 والمملوك لمعرّفَي UID/GID للخدمة داخل الحاوية للقراءة فقط. لا تُرفع صلاحيات الخدمة.

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

تؤدي الأخطاء أو الإشارات القابلة للالتقاط بعد بدء التحويل إلى محاولة التراجع. ويمكن التراجع صراحةً حتى بعد نجاح الترحيل:

التراجع عن فصل المفتاح
sudo bash scripts/separate-key.sh --dir /srv/sublane --rollback

تبقى سجلات الاسترداد الخاصة في /srv/sublane/.key-migration. يعيد التراجع التكوين الأصلي والمفتاح المطابق، ثم يعيد إنشاء الخدمة الأصلية ويتحقق منها. يرفض الكتابة فوق تغييرات لاحقة في التكوين أو البيئة أو فوق مفتاح مختلف، ولا يخفض إصدار الصورة أو قاعدة البيانات. يظل المفتاح الخارجي وسجلات الاسترداد محفوظين بأذونات خاصة بعد التراجع. يرفض الترحيل الجديد استبدال السجلات أو الوجهات الموجودة؛ احفظ السجلات المتحقق منها بأمان واختر مجلد مفتاح جديدًا قبل إعادة المحاولة.

يشترك السكربت مع برنامج التثبيت في .update-lock؛ لا تُجرِ عمليات نشر أخرى بالتزامن معه. بعد الإنهاء القسري أو انقطاع الكهرباء، تأكد من عدم وجود ترحيل أو تحديث قيد التشغيل، واحذف فقط مجلد القفل المتروك الفارغ .update-lock، ثم استخدم --rollback. إذا تعذر التحقق من التراجع، يُحتفَظ بمواد مفتاح الاسترداد وسجل operation.log الخاص. احتفظ بمجلد الاسترداد ومجلد المفتاح الخارجي حتى اكتمال الاسترداد. تظل مسؤولًا عن حفظ النسخ الدائمة وكلمات مرورها كلٍّ على حدة.

نسخ احتياطية مشفرة تلقائيًا

فعّل إعدادات النشر أدناه. يجب أن يكون المجلد خاصًا (0700)، وكلمة المرور المستقلة من 12–128 محرفًا في ملف عادي خاص (0600، دون رابط رمزي)، منفصلًا عن مجلدي البيانات والنسخ. يُعاد قراءتها عند كل تشغيل.

Automatic backup deployment settings
export SUBLANE_BACKUP_DIR=/srv/sublane-backups
export SUBLANE_BACKUP_PASSWORD_FILE=/secure/sublane/backup-password
export SUBLANE_BACKUP_INTERVAL=24h
export SUBLANE_BACKUP_KEEP=7

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

SUBLANE_BACKUP_INTERVAL: 1h–720h (default 24h). SUBLANE_BACKUP_KEEP: 1–365 (default 7).

استخدم مجلد نسخ احتياطي مخصصًا لكل مثيل.

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

في Docker استخدم مسارات الحاوية واربط ملف كلمة المرور الخاص ومجلد النسخ المخصص القابل للكتابة عبر تجاوز Compose محلي، مع منح مستخدم الخدمة الإذن. حجم tmpfs الافتراضي /tmp هو 64 MiB. للتحقق الأكبر استخدم ربطًا خاصًا منفصلًا قابلًا للكتابة واضبط TMPDIR في التجاوز.