ITSkillsCenter
الأعمال الرقمية

النسخ الاحتياطية لـ Outline والاستعادة: درس 2026

2 min de lecture

📍 المقالة الرئيسية: Outline 2026.

Outline هو الذاكرة المؤسسية لشركتك: إجراءات، runbooks، تقارير، وثائق منتج. فقدانها كارثة تشغيلية. هذا الدرس يفصل إجراء النسخ الاحتياطي 3-2-1 مع restic مشفر إلى Backblaze B2، واختبار استعادة شهري إلزامي.

المتطلبات

Outline في الإنتاج ببيانات حقيقية. حساب Backblaze B2 أو MinIO ثانوي. المستوى: متوسط. الوقت: ساعة + 30 دقيقة شهرياً.

الخطوة 1 — تحديد العناصر للنسخ

  • PostgreSQL: كل الوثائق، المستخدمين، الصلاحيات، تاريخ النسخ.
  • MinIO bucket outline: صور، ملفات مرفقة.
  • Redis: جلسات، cache (قابل للتجدد).
  • متغيرات البيئة: SECRET_KEY، تكوين OIDC.

الخطوة 2 — تهيئة restic repository

export RESTIC_REPOSITORY="s3:s3.eu-central-003.backblazeb2.com/outline-backup-prod"
export AWS_ACCESS_KEY_ID="votre-keyID-B2"
export AWS_SECRET_ACCESS_KEY="votre-applicationKey-B2"
export RESTIC_PASSWORD="passphrase-très-très-forte-unique"
restic init

الخطوة 3 — سكربت نسخ Postgres

#!/bin/bash
set -euo pipefail
TS=$(date +%Y%m%d-%H%M%S)
TMP=/tmp/outline-pg-$TS

docker exec outline-db pg_dump -U outline -d outline -F c -f /tmp/outline-$TS.dump
docker cp outline-db:/tmp/outline-$TS.dump $TMP.dump

restic backup $TMP.dump --tag outline-db --tag prod
restic forget --keep-daily 7 --keep-weekly 4 --keep-monthly 12 --prune
rm -f $TMP.dump

curl -s "https://ntfy.sh/votre-topic" -d "Outline DB backup OK $TS"

الخطوة 4 — سكربت نسخ MinIO

#!/bin/bash
mc mirror minio-prod/outline /tmp/outline-files/
restic backup /tmp/outline-files --tag outline-files --tag prod
restic forget --keep-daily 14 --keep-weekly 8 --keep-monthly 24 --prune
rm -rf /tmp/outline-files

الخطوة 5 — جدولة Cron

0 */6 * * * /srv/scripts/outline-backup-db.sh
0 4,16 * * * /srv/scripts/outline-backup-files.sh
0 5 * * 0 restic check --read-data-subset=10%

الخطوة 6 — اختبار استعادة شهري

restic snapshots --tag outline-db | tail -5
restic restore latest --tag outline-db --target /tmp/restore

docker run -d --name pg-test -e POSTGRES_PASSWORD=test postgres:16
sleep 10
docker cp /tmp/restore/tmp/outline-*.dump pg-test:/tmp/
docker exec pg-test pg_restore -U postgres --create -d postgres /tmp/outline-*.dump

docker exec pg-test psql -U postgres -d outline -c "SELECT COUNT(*) FROM documents;"

الخطوة 7 — توثيق runbook

Wiki داخلي (في Outline نفسه!) مع: URL repository B2، مرجع Vaultwarden لـ RESTIC_PASSWORD، إجراء استعادة كامل، تاريخ آخر اختبار ناجح، جهة اتصال طوارئ.

الخطوة 8 — استعادة في حالة كارثة

إذا دُمِّر خادم Outline:

  1. توفير VPS Hetzner CX22 جديد.
  2. تثبيت Coolify + Outline.
  3. تكوين متغيرات env (SECRET_KEY) من Vaultwarden.
  4. Restic restore Postgres dump → docker exec outline-db pg_restore.
  5. Restic restore ملفات MinIO → mc mirror.
  6. تحديث DNS إذا تغير IP.

احسب 1 إلى 3 ساعات حسب الحجم.

الأخطاء الشائعة

الخطأ الحل
نسخة احتياطية تالفة استخدم -F c format custom
كلمة سر restic مفقودة 3 نسخ مستقلة
اختبار استعادة يفشل استعد على نفس إصدار Postgres

التكيف مع السياق

تكلفة Backblaze: 200 GB = 1.20 USD/شهرياً. Egress مجاني Cloudflare. اختبار على Raspberry Pi محلي.

دروس الإخوة

الأسئلة المتكررة

Restic vs borgbackup؟ Restic يدعم S3 أصلياً.

RPO مقبول؟ 6 ساعات لـ wiki قياسي.

للاستزادة

Besoin d'un site web ?

Confiez-nous la Création de Votre Site Web

Site vitrine, e-commerce ou application web — nous transformons votre vision en réalité digitale. Accompagnement personnalisé de A à Z.

À partir de 250.000 FCFA
Parlons de Votre Projet
Publicité