pdf / DEPLOYMENT_GUIDE.md
fokan's picture
Upload 49 files
93859d5 verified

🚀 نشر المشروع

🤖 لنظام Hugging Face Spaces:

  1. تحسين packages.txt:

    libreoffice
    libreoffice-writer
    libreoffice-l10n-ar
    libreoffice-java-common
    openjdk-11-jre-headless
    fonts-liberation
    fonts-liberation2
    fonts-dejavu
    fonts-dejavu-core
    fonts-dejavu-extra
    fonts-croscore
    fonts-noto-core
    fonts-noto-ui-core
    fonts-noto-mono
    fonts-noto-color-emoji
    fontconfig
    wget
    curl
    unzip
    locales
    
  2. تحسين requirements.txt:

    fastapi==0.104.1
    uvicorn==0.24.0
    python-multipart==0.0.6
    PyMuPDF==1.23.26
    pdfplumber==0.10.3
    
  3. إعدادات README.md:

    • تأكد من وجود YAML frontmatter صحيح
    • اضبط sdk_version على النسخة الصحيحة

للخوادم المخصصة:

  1. تحسين الذاكرة:

    export JAVA_OPTS="-Xmx2g"
    export SAL_DISABLE_OPENCL=1
    
  2. تحسين الخطوط:

    fc-cache -fv
    fc-list | grep -i arabic
    

🧪 اختبار النشر

1. اختبار أساسي:

python test_conversion.py

2. اختبار الخطوط العربية:

fc-list | grep -i "amiri\|scheherazade\|noto.*arabic\|arial"

3. اختبار LibreOffice:

libreoffice --headless --convert-to pdf test.docx

🔍 استكشاف أخطاء النشر

مشكلة: LibreOffice لا يعمل

الحل:

# تحقق من التثبيت
libreoffice --version

# إعادة تثبيت
sudo apt-get remove --purge libreoffice*
sudo apt-get install libreoffice libreoffice-writer libreoffice-java-common

مشكلة: الخطوط العربية مفقودة

الحل:

# تثبيت خطوط إضافية يتم تنزيلها عبر setup_fonts.py
# تحديث cache
sudo fc-cache -fv

# التحقق
fc-list | grep -i arabic

مشكلة: أخطاء الذاكرة

الحل:

# زيادة حد الذاكرة
export JAVA_OPTS="-Xmx4g"

# تعطيل OpenCL
export SAL_DISABLE_OPENCL=1

مشكلة: بطء التحويل

الحل:

  • قلل حجم الملفات المدخلة
  • استخدم خادم بمواصفات أعلى
  • فعل التخزين المؤقت

📊 مراقبة الأداء

مؤشرات مهمة:

  • وقت التحويل (يجب أن يكون < 30 ثانية للملفات العادية)
  • استخدام الذاكرة (يجب أن يكون < 2GB)
  • معدل نجاح التحويل (يجب أن يكون > 95%)

أدوات المراقبة:

# مراقبة الذاكرة
htop

# مراقبة العمليات
ps aux | grep libreoffice

# مراقبة السجلات
tail -f /var/log/syslog

🔒 الأمان

إعدادات الأمان:

  1. تحديد حجم الملفات المرفوعة (< 50MB)
  2. تنظيف الملفات المؤقتة تلقائياً
  3. تحديد وقت انتهاء للعمليات (timeout)
  4. منع تنفيذ الكود الضار في الملفات

أفضل الممارسات:

  • استخدم HTTPS دائماً
  • فعل rate limiting
  • راقب استخدام الموارد
  • احتفظ بنسخ احتياطية من الإعدادات

🔄 التحديثات

تحديث الخطوط:

لتحديث الخطوط العربية، قم بتشغيل:

python setup_fonts.py

تحديث التبعيات:

لتحديث التبعيات، قم بتعديل requirements.txt ثم:

pip install -r requirements.txt --upgrade