إشارة التحذير: الإصدار #1318 من papermerge-core
في 5 سبتمبر 2026، نشر Eugen Ciur الإصدار #1318 على مستودع papermerge/papermerge-core بعنوان صريح: "Looking for a maintainer". الإعلان مباشر: سيصبح Papermerge منتجًا SaaS تجاريًا. دون مطور مجتمعي، سيُؤرشَف المستودع قرب 5 أكتوبر 2026 ولن تُقبل أي تغييرات جديدة.
هذا السيناريو مختلف جوهريًا عن مشروع غير نشط فحسب. المستودع المؤرشَف لا يتلقى تصحيحات أمنية. يعتمد Papermerge v3.x على FastAPI وReact — بنية حديثة لكن تبعياتها تنشر تحديثات أمنية دورية. الاستمرار في تشغيل نسخة غير مُصانة يعني تراكم ديون أمنية صامتة.
ما تخسره بالبقاء على Papermerge المجمّد
- لا تصحيحات أمنية: أي ثغرة مكتشفة بعد الأرشفة ستبقى مفتوحة — FastAPI وتبعياته ينشران عدة تنبيهات شهريًا
- توافق Python في تراجع: الإصدارات الجديدة من Python تُهمل واجهات برمجية قديمة؛ تحديث نظام التشغيل وحده قد يكسر البيئة
- إضافات وتكاملات يتامى: موصلات الجهات الخارجية (الماسحات، عملاء البريد، الخطافات) لن تُحدَّث لمتابعة تطور API الخاص بـ Papermerge
- لا ترحيلات رسمية للمخطط: إذا اكتُشف خلل في قاعدة البيانات، لن يأتي أي إصلاح من المستودع المؤرشَف
- صور Docker الرسمية تتوقف: الصور غير الرسمية تُدخل مخاطر سلسلة التوريد
- لا تغطية دعم تعاقدي: لن يغطي أي مورد تثبيتًا على مشروع مؤرشَف
لماذا Paperless-ngx هو البديل الطبيعي
Paperless-ngx فرع مجتمعي من paperless-ng، مرخص بـ GPL-3.0، يمتلك قرابة 23,000 نجمة على GitHub بتاريخ 25 سبتمبر 2026، ويتلقى تحديثات منتظمة من فريق موزع من نحو عشرة مساهمين نشطين — لا مطوّر وحيد.
البنية أكثر نضجًا من Papermerge v3.x للاستخدام المؤسسي: Django كواجهة خلفية، Celery للمهام غير المتزامنة، PostgreSQL أو SQLite كقاعدة بيانات، وواجهة Angular مدمجة. ملف Docker Compose الرسمي ينشر الكل بأمر واحد.
- OCR متعدد اللغات عبر Tesseract: العربية والفرنسية والإنجليزية والإسبانية وعشرات اللغات الأخرى قابلة للتهيئة
- وسوم هرمية: تنظيم دقيق للمستندات مع قواعد تعيين تلقائي متوارثة
- المراسلون: تعريف المُرسِلين والمُستقبِلين المتكررين، تعيين تلقائي بالقواعد
- تخزين متوافق مع S3: أرشفة الأصول إلى حاوية S3 أو متوافقة (MinIO، Garage) دون تعديل الواجهة
- REST API موثقة: تكامل مع مسارات عمل خارجية عبر
/api/documents/ - مجلد الاستهلاك: أي ملف يُوضع في
/consume يُستوعب تلقائيًا
مقارنة: Papermerge v3 مقابل Paperless-ngx
Papermerge v3 مقابل Paperless-ngx
مرّر الجدول أفقيًا
| المعيار | Papermerge v3 | Paperless-ngx |
|---|---|---|
| حالة المشروع | أرشفة معلنة قرب 5 أكتوبر 2026 | نشط، إصدارات منتظمة |
| الرخصة | Apache 2.0 | GPL-3.0 |
| الواجهة الخلفية | FastAPI (Python) | Django + Celery (Python) |
| OCR | Tesseract (تهيئة يدوية) | Tesseract متعدد اللغات، كشف تلقائي |
| تنظيم المستندات | مجلدات هرمية | وسوم، مراسلون، أنواع مستندات |
| التخزين الخارجي | غير متاح أصلًا | S3 / متوافق مع S3 (MinIO، Garage) |
| Docker Compose رسمي | نعم، لكن غير مُصان بعد الأرشفة | نعم، مُصان بنشاط |
| مجتمع GitHub | ~2,500 نجمة | ~23,000 نجمة |
المتطلبات الأساسية قبل الترحيل
Paperless-ngx أخف مما تشير إليه سمعته. المتطلبات الدنيا لفريق من 1 إلى 10 مستخدمين مع مئات إلى آلاف المستندات معقولة على خادم VPS عادي.
- VPS: 2 وحدة معالجة افتراضية / 2 جيجابايت ذاكرة الحد الأدنى — 4 جيجابايت موصى به إذا عمل OCR بشكل متوازٍ
- Docker وDocker Compose: الإصدار 24+ من Docker والإصدار 2.20+ من Docker Compose
- 40 جيجابايت تخزين SSD كحد أدنى للملفات الأصلية وبيانات الفهرس
- نطاق أو نطاق فرعي مع شهادة TLS صالحة
- صلاحية root أو sudo على الخادم لتثبيت Docker وتهيئة الوكيل العكسي
- نسخة احتياطية من نسخة Papermerge الحالية قبل أي عملية: تصدير المستندات + تفريغ قاعدة البيانات
دليل الترحيل خطوة بخطوة
الترحيل من Papermerge إلى Paperless-ngx
تصدير مستنداتك من Papermerge
في واجهة Papermerge، انتقل إلى Documents → Export. اختر «جميع المستندات» وابدأ التصدير. ينتج Papermerge ملف ZIP يحتوي على الأصول منظمةً في مجلدات. نقّل هذا الملف إلى الخادم عبر
scp:scp papermerge-export.zip user@your-vps:/tmp/فك ضغط التصدير وإعداد مجلد الاستهلاك
على الخادم، فك ضغط الأرشيف في مجلد مؤقت:
mkdir -p /opt/paperless-import unzip /tmp/papermerge-export.zip -d /opt/paperless-import/ستحصل على شجرة مجلدات وملفات. سيستهلك Paperless-ngx هذه الملفات عبر مجلد الاستهلاك في خطوة لاحقة.
تثبيت Paperless-ngx عبر Docker Compose الرسمي
احصل على ملف
docker-compose.yml الرسمي:mkdir -p /opt/paperless && cd /opt/paperless curl -fsSL https://raw.githubusercontent.com/paperless-ngx/paperless-ngx/main/docker/compose/docker-compose.postgres.yml -o docker-compose.yml curl -fsSL https://raw.githubusercontent.com/paperless-ngx/paperless-ngx/.env.example -o .envعدّل ملف
.env: عيّن PAPERLESS_URL وPAPERLESS_SECRET_KEY وPAPERLESS_OCR_LANGUAGE (مثال: ara+fra+eng) وPAPERLESS_TIME_ZONE.تشغيل النسخة وإنشاء حساب المشرف
شغّل الحاويات في الخلفية:
docker compose up -dانتظر حتى يصبح الخدمة جاهزة (30 إلى 60 ثانية)، ثم أنشئ المستخدم المميز:
docker compose exec webserver python3 manage.py createsuperuserسجّل الدخول على
http://localhost:8000 للتحقق من استجابة الواجهة.استيراد المستندات المُصدَّرة من Papermerge
انسخ شجرة المجلدات المُصدَّرة إلى مجلد الاستهلاك في Paperless-ngx:
cp -r /opt/paperless-import/* /opt/paperless/consume/سيكتشف Paperless-ngx الملفات الجديدة تلقائيًا ويستوعبها عبر Celery. تابع التقدم بالأمر:
docker compose logs -f celeryworkerتهيئة الوكيل العكسي وTLS
اكشف Paperless-ngx خلف nginx. مثال على كتلة تهيئة بسيطة:
server { listen 443 ssl; server_name docs.your-domain.com; ssl_certificate /etc/letsencrypt/live/docs.your-domain.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/docs.your-domain.com/privkey.pem; location / { proxy_pass http://127.0.0.1:8000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } }aحصل على شهادة Let's Encrypt لهذا النطاق الفرعي، ثم أعد تحميل nginx.
التحقق من تغطية OCR واختبار المستندات المستوردة
في واجهة Paperless-ngx، افتح عدة مستندات مستوردة وتحقق من فهرسة محتواها (شريط البحث يعمل). للمستندات التي فشل فيها OCR، أعد تشغيله عبر الواجهة أو API:
curl -X POST http://localhost:8000/api/documents/<id>/redo_ocr/ \ -H 'Authorization: Token <your-token>'التحقق وإيقاف نسخة Papermerge القديمة
بعد الاستيراد الكامل، تحقق من تطابق عدد المستندات في Paperless-ngx مع تصدير Papermerge. اختبر البحث النصي الكامل على مصطلحات معروفة. بعد التحقق، أوقف نسخة Papermerge وأزل حاوياتها:
docker compose down من مجلد نشرها.
التهيئة الأساسية لـ Paperless-ngx
بعد الاستيراد الأولي، ثلاثة محاور للتهيئة تؤثر مباشرةً على جودة الخدمة اليومية.
- OCR:
PAPERLESS_OCR_LANGUAGE يقبل قائمة رموز لغات Tesseract مفصولة بـ + (مثال: ara+fra+eng). إذا كانت أرشيفاتك متعددة اللغات، أعلن عن جميع اللغات من البداية - تخزين S3: عيّن
PAPERLESS_STORAGE_BACKEND=s3 وPAPERLESS_S3_ACCESS_KEY وPAPERLESS_S3_SECRET_KEY وPAPERLESS_S3_BUCKET_NAME لنقل الأصول إلى حاوية متوافقة مع S3 - قواعد التعيين التلقائي: في الواجهة، أنشئ قواعد تُعيّن وسمًا أو مراسلًا أو نوع مستند بناءً على محتوى OCR
- المهام المجدولة: تحقق من إعداد
PAPERLESS_CONSUMER_POLLING — اضبطه على 0 (inotify) أو فترة زمنية معقولة إذا لم يكن inotify متاحًا في بيئة Docker
لتقليل وقت الاستيعاب على أرشيف كبير، فعّل الاستهلاك المتوازي بضبط PAPERLESS_TASK_WORKERS=4 في ملف .env (اضبطه حسب عدد وحدات المعالجة). على خادم 4 وحدات معالجة / 4 جيجابايت ذاكرة، يهبط وقت استيعاب 500 PDF من ~20 دقيقة إلى ~6 دقائق. راقب الذاكرة: يستهلك Tesseract ~200 ميجابايت لكل عامل نشط.
التكامل مع أدواتك الحالية
يتكامل Paperless-ngx مع مسارات العمل الوثائقية دون تطوير مخصص. ثلاث نقاط دخول تغطي معظم حالات الاستخدام.
- الماسح الضوئي عبر الشبكة: هيّئ الماسح لإرسال المسوحات عبر SFTP أو SMB إلى
/consume. يستوعبها Paperless-ngx عند وصولها دون أي إجراء يدوي - عميل البريد: يراقب المستهلك البريدي صندوق IMAP ويستورد مرفقات PDF تلقائيًا وفق الفلاتر المحددة
- REST API: نقطة النهاية
POST /api/documents/post_document/ تقبل ملفًا متعدد الأجزاء. من n8n، يمكن لمسار عمل إرسال أي مرفق بريدي مباشرةً إلى Paperless-ngx في ثوانٍ - تطبيق الهاتف المحمول: تطبيق Paperless Mobile (Android/iOS، مفتوح المصدر) يتصل بنسختك ذاتية الاستضافة عبر الرابط ورمز API
استكشاف الأخطاء: مشكلات شائعة بعد الترحيل
- مستندات مستوردة بلا نص OCR: تحقق من صحة رمز لغة Tesseract (
PAPERLESS_OCR_LANGUAGE=ara وليس ar). أعد تشغيل OCR على المستندات المتأثرة عبر الواجهة أو API - مجلد الاستهلاك غير مُراقَب: إذا كنت تستخدم وحدة تخزين Docker مُثبَّتة من قسم NFS أو تخزين موضوعي، فـinotify لا يعمل. اضبط
PAPERLESS_CONSUMER_POLLING=60 للمسح كل 60 ثانية - خطأ «رفض الإذن» على
/consume: يعمل العامل تحت المعرف 1000. إذا انتمت الملفات المنسوخة إلى root، غيّر الصلاحيات: chown -R 1000:1000 /opt/paperless/consume/ على المضيف - استيراد غير مكتمل — مستندات مفقودة: تحقق بالأمر
find /opt/paperless-import -name '*.pdf' | wc -l وقارن بالعدد الإجمالي في نسخة Papermerge
استعدْ التحكم في أرشيفاتك
النافذة ضيقة: سيُؤرشَف مستودع papermerge-core قرب 5 أكتوبر 2026 إذا لم يظهر مطور مجتمعي. البقاء على نسخة Papermerge مجمّدة يعني تراكم ديون أمنية صامتة على أداة تتعامل مع مستندات حساسة — فواتير، عقود، مراسلات رسمية.
يوفر Paperless-ngx ترحيلًا دون فقدان للبيانات: تُستورد ملفاتك الأصلية كما هي عبر مجلد الاستهلاك، ويُعاد تشغيل OCR على المستندات التي تحتاجه، دون أي تحويل مدمِّر. على ServOrbit، Paperless-ngx متاح مباشرةً في سوق التطبيقات ضمن فئة التعاون — تبدأ من بيئة Docker Compose مُهيَّأة مسبقًا.