ConvertX: محول الملفات المستضاف ذاتياً - دليل الإعداد والاستخدام الشامل
⏱️ وقت القراءة المتوقع: 8 دقائق
مقدمة
في عالمنا الرقمي اليوم، تحويل تنسيقات الملفات ضرورة شائعة. سواء كنت تتعامل مع الصور أو الفيديوهات أو المستندات أو الأصول ثلاثية الأبعاد، فإن وجود محول موثوق أمر ضروري. بينما توجد حلول قائمة على السحابة، فإنها غالباً ما تثير مخاوف الخصوصية وقد تحتوي على قيود على أحجام الملفات أو حصص الاستخدام.
ConvertX يقدم حلاً أنيقاً: محول ملفات مستضاف ذاتياً يدعم أكثر من 1000 تنسيق مختلف. مبني بـ TypeScript و Bun و Elysia، يمنحك ConvertX السيطرة الكاملة على بياناتك مع توفير قدرات تحويل بمستوى المؤسسة.
ما هو ConvertX؟
ConvertX هو منصة تحويل ملفات مستضافة ذاتياً ومفتوحة المصدر تعمل بالكامل على البنية التحتية الخاصة بك. مع دعم تنسيقات ملفات متعددة عبر فئات مختلفة، فهو مصمم ليكون قوياً ويركز على الخصوصية.
الميزات الرئيسية
- دعم واسع للتنسيقات: أكثر من 1000 تنسيق ملف مختلف
- المعالجة المجمعة: تحويل ملفات متعددة في وقت واحد
- حماية الخصوصية: حماية بكلمة مرور ومصادقة المستخدم
- دعم متعدد المستخدمين: حسابات متعددة مع عزل مناسب
- معمارية حديثة: مبني بـ TypeScript وتقنيات الويب الحديثة
- جاهز لـ Docker: نشر سهل مع Docker و Docker Compose
المحولات المدعومة
يدمج ConvertX محولات متخصصة متعددة للتعامل مع أنواع ملفات مختلفة:
المحول | حالة الاستخدام | تنسيقات الإدخال | تنسيقات الإخراج |
---|---|---|---|
FFmpeg | فيديو/صوت | ~472 | ~199 |
ImageMagick | صور | 245 | 183 |
GraphicsMagick | صور | 167 | 130 |
Assimp | أصول ثلاثية الأبعاد | 77 | 23 |
Pandoc | مستندات | 43 | 65 |
Vips | صور | 45 | 23 |
Calibre | كتب إلكترونية | 26 | 19 |
Inkscape | رسوميات متجهة | 7 | 17 |
libjxl | JPEG XL | 11 | 11 |
Potrace | نقطية إلى متجهة | 4 | 11 |
المتطلبات المسبقة
قبل نشر ConvertX، تأكد من توفر:
- Docker (الإصدار 20.10 أو أحدث)
- Docker Compose (الإصدار 2.0 أو أحدث)
- خادم بموارد كافية:
- الحد الأدنى: 2GB RAM، نواة معالج واحدة
- مستحسن: 4GB RAM، نواتان أو أكثر
- التخزين: 10GB على الأقل من المساحة الحرة للملفات والحاويات
التثبيت والإعداد
الطريقة الأولى: Docker Compose (مستحسن)
إنشاء دليل المشروع وإعداد التكوين:
# إنشاء دليل المشروع
mkdir convertx-app
cd convertx-app
# إنشاء ملف Docker Compose
cat > docker-compose.yml << 'EOF'
services:
convertx:
image: ghcr.io/c4illin/convertx
container_name: convertx
restart: unless-stopped
ports:
- "3000:3000"
environment:
- JWT_SECRET=aLongAndSecretStringUsedToSignTheJSONWebToken1234567890
- ACCOUNT_REGISTRATION=false
- AUTO_DELETE_EVERY_N_HOURS=24
- LANGUAGE=ar
# إلغاء التعليق في حالة الوصول عبر HTTP (غير مستحسن للإنتاج)
# - HTTP_ALLOWED=true
volumes:
- ./data:/app/data
labels:
- "com.docker.compose.project=convertx"
EOF
# إنشاء دليل البيانات بالأذونات المناسبة
mkdir -p data
sudo chown -R $USER:$USER data
الطريقة الثانية: Docker Run
للبدء السريع بدون Docker Compose:
# إنشاء دليل البيانات
mkdir -p ~/convertx-data
# تشغيل حاوية ConvertX
docker run -d \
--name convertx \
--restart unless-stopped \
-p 3000:3000 \
-v ~/convertx-data:/app/data \
-e JWT_SECRET=aLongAndSecretStringUsedToSignTheJSONWebToken1234567890 \
-e ACCOUNT_REGISTRATION=false \
-e AUTO_DELETE_EVERY_N_HOURS=24 \
-e LANGUAGE=ar \
ghcr.io/c4illin/convertx
النشر
نشر التطبيق:
# استخدام Docker Compose
docker-compose up -d
# التحقق من تشغيل الحاوية
docker-compose ps
# فحص السجلات
docker-compose logs -f convertx
التكوين الأولي
1. الوصول إلى التطبيق
افتح متصفح الويب وانتقل إلى:
- الوصول المحلي:
http://localhost:3000
- الوصول البعيد:
https://your-domain.com:3000
(HTTPS مستحسن)
2. إنشاء حساب المدير
- في الوصول الأول، ستظهر صفحة التسجيل
- أنشئ حساب المدير بكلمة مرور قوية
- مهم: قم بتعطيل التسجيل بعد إنشاء حسابك بتعيين
ACCOUNT_REGISTRATION=false
3. تكوين إعدادات الأمان
للنشر في الإنتاج، فكر في هذه التحسينات الأمنية:
# docker-compose.yml محسن
services:
convertx:
image: ghcr.io/c4illin/convertx
container_name: convertx
restart: unless-stopped
ports:
- "127.0.0.1:3000:3000" # ربط بـ localhost فقط
environment:
- JWT_SECRET=${JWT_SECRET} # استخدام متغير البيئة
- ACCOUNT_REGISTRATION=false
- HTTP_ALLOWED=false # إجبار HTTPS
- AUTO_DELETE_EVERY_N_HOURS=12 # تنظيف الملفات بشكل أكثر تكراراً
- HIDE_HISTORY=false
- LANGUAGE=ar
volumes:
- ./data:/app/data
- /etc/localtime:/etc/localtime:ro # مزامنة المنطقة الزمنية
networks:
- convertx-network
networks:
convertx-network:
driver: bridge
دليل الاستخدام
تحويل الملفات الأساسي
- رفع الملفات:
- انقر على “اختر الملفات” أو السحب والإفلات
- اختر ملف واحد أو ملفات متعددة
- يتم الكشف عن التنسيقات المدعومة تلقائياً
- اختيار تنسيق الإخراج:
- اختر التنسيق المطلوب من القائمة المنسدلة
- التنسيقات مصنفة حسب النوع (صورة، فيديو، مستند، إلخ)
- تكوين الإعدادات (إن أمكن):
- إعدادات الجودة للصور/الفيديوهات
- خيارات الضغط
- إعدادات الدقة
- بدء التحويل:
- انقر على “تحويل” لبدء المعالجة
- راقب التقدم في الوقت الفعلي
- قم بتنزيل النتائج عند الانتهاء
الميزات المتقدمة
المعالجة المجمعة
يتفوق ConvertX في معالجة ملفات متعددة:
# مثال: تحويل صور متعددة
# رفع: image1.png, image2.jpg, image3.bmp
# تنسيق الإخراج: WebP
# النتيجة: جميع الصور محولة إلى تنسيق WebP
حماية كلمة المرور
حماية الملفات الحساسة أثناء التحويل:
- تفعيل حماية كلمة المرور في الإعدادات
- تعيين كلمة مرور التحويل
- مشاركة كلمة المرور بأمان مع المستخدمين المخولين
وسائط FFmpeg المخصصة
للمعالجة المتقدمة للفيديو، يمكنك تكوين وسائط FFmpeg مخصصة:
environment:
- FFMPEG_ARGS=-preset veryfast -crf 23
حالات الاستخدام العملية
1. تحسين الصور للويب
# تحويل وتحسين الصور للاستخدام على الويب
الإدخال: high-resolution.jpg (5MB)
الإخراج: optimized.webp (500KB)
الإعدادات: تنسيق WebP، جودة 80%
2. ترحيل تنسيق المستندات
# تحويل المستندات القديمة
الإدخال: old-document.doc
الإخراج: modern-document.pdf
المحول: Pandoc
3. ضغط الفيديو
# ضغط ملفات الفيديو
الإدخال: large-video.mov (1GB)
الإخراج: compressed-video.mp4 (200MB)
المحول: FFmpeg مع كودك H.264
4. معالجة الأصول ثلاثية الأبعاد
# تحويل النماذج ثلاثية الأبعاد بين التنسيقات
الإدخال: model.fbx
الإخراج: model.glb
المحول: Assimp
مرجع متغيرات البيئة
خصص سلوك ConvertX بهذه متغيرات البيئة:
المتغير | الافتراضي | الوصف |
---|---|---|
JWT_SECRET |
Random UUID | مفتاح سري لتوقيع رمز JWT |
ACCOUNT_REGISTRATION |
false |
السماح بتسجيل مستخدم جديد |
HTTP_ALLOWED |
false |
السماح بالاتصالات HTTP (للاستخدام محلياً فقط) |
ALLOW_UNAUTHENTICATED |
false |
السماح بالاستخدام المجهول |
AUTO_DELETE_EVERY_N_HOURS |
24 |
فترة تنظيف الملفات التلقائي |
WEBROOT |
/ |
مسار جذر تطبيق الويب |
FFMPEG_ARGS |
لا شيء | وسائط FFmpeg مخصصة |
HIDE_HISTORY |
false |
إخفاء تاريخ التحويل |
LANGUAGE |
en |
لغة الواجهة (تنسيق BCP 47) |
UNAUTHENTICATED_USER_SHARING |
false |
مشاركة التاريخ بين المستخدمين المجهولين |
المراقبة والصيانة
فحوصات الحالة
راقب حالة ConvertX:
# فحص حالة الحاوية
docker-compose ps
# عرض السجلات في الوقت الفعلي
docker-compose logs -f convertx
# فحص استخدام الموارد
docker stats convertx
استراتيجية النسخ الاحتياطي
احم بياناتك بالنسخ الاحتياطي المنتظم:
#!/bin/bash
# backup-convertx.sh
BACKUP_DIR="/backup/convertx"
DATA_DIR="./data"
DATE=$(date +%Y%m%d_%H%M%S)
# إنشاء دليل النسخ الاحتياطي
mkdir -p "$BACKUP_DIR"
# نسخ احتياطي لدليل البيانات
tar -czf "$BACKUP_DIR/convertx_data_$DATE.tar.gz" -C "$DATA_DIR" .
# الاحتفاظ بآخر 7 نسخ احتياطية فقط
find "$BACKUP_DIR" -name "convertx_data_*.tar.gz" -mtime +7 -delete
echo "اكتمل النسخ الاحتياطي: convertx_data_$DATE.tar.gz"
التحديثات
حافظ على ConvertX محدثاً:
# التحديث إلى أحدث إصدار
docker-compose pull
docker-compose up -d
# فحص الإصدار
docker exec convertx cat /app/package.json | grep version
استكشاف الأخطاء وإصلاحها
المشاكل الشائعة
1. أخطاء الأذونات
# إصلاح أذونات دليل البيانات
sudo chown -R $USER:$USER ./data
chmod -R 755 ./data
2. مشاكل تسجيل الدخول
إذا كنت لا تستطيع تسجيل الدخول:
- تأكد من الوصول عبر HTTPS أو localhost
- تعيين
HTTP_ALLOWED=true
للوصول HTTP (غير مستحسن للإنتاج)
3. فشل التحويل
فحص السجلات لرسائل خطأ محددة:
# عرض السجلات التفصيلية
docker-compose logs --tail=50 convertx
# فحص موارد الحاوية
docker stats convertx
4. حدود رفع الملفات
قد تفشل رفع الملفات الكبيرة. فحص:
- مساحة القرص المتاحة
- حدود ذاكرة الحاوية
- إعدادات انتهاء مهلة الشبكة
تحسين الأداء
تخصيص الموارد
للاستخدام المكثف، اضبط حدود موارد Docker:
services:
convertx:
# ... تكوين آخر
deploy:
resources:
limits:
memory: 4G
cpus: '2'
reservations:
memory: 2G
cpus: '1'
تحسين التخزين
تكوين التنظيف التلقائي:
environment:
- AUTO_DELETE_EVERY_N_HOURS=6 # تنظيف كل 6 ساعات
أفضل ممارسات الأمان
1. أمان الشبكة
استخدم بروكسي عكسي للإنتاج:
# مثال تكوين Nginx
server {
listen 443 ssl http2;
server_name convert.yourdomain.com;
ssl_certificate /path/to/certificate.crt;
ssl_certificate_key /path/to/private.key;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# حد حجم رفع الملفات
client_max_body_size 100M;
}
}
2. التحكم في الوصول
تنفيذ طبقات أمان إضافية:
# استخدام تسميات Traefik للمصادقة
labels:
- "traefik.http.middlewares.convertx-auth.basicauth.users=admin:$$2y$$10$$..."
- "traefik.http.routers.convertx.middlewares=convertx-auth"
3. تحديثات الأمان المنتظمة
# تحديث ConvertX بانتظام
docker-compose pull && docker-compose up -d
# تحديث النظام الأساسي
sudo apt update && sudo apt upgrade -y
الخلاصة
يوفر ConvertX حلاً قوياً ومستضافاً ذاتياً لاحتياجات تحويل الملفات. مع دعمه الواسع للتنسيقات وتصميمه المركز على الخصوصية ونشر Docker السهل، فهو خيار ممتاز للاستخدام الشخصي والمؤسسي على حد سواء.
تكمن قوة المنصة في مزيجها من قدرات التحويل القوية والتحكم المستخدم. من خلال استضافتها بنفسك، تحافظ على الخصوصية الكاملة لملفاتك بينما تستفيد من أدوات التحويل ذات المستوى المهني.
سواء كنت تعالج صوراً لموقع ويب، أو تحول مستندات للأرشفة، أو تتعامل مع محتوى متعدد الوسائط، يقدم ConvertX المرونة والموثوقية المطلوبة لتدفقات عمل تحويل الملفات الحديثة.
موارد إضافية
- المستودع الرسمي: https://github.com/C4illin/ConvertX
- Docker Hub: https://hub.docker.com/r/c4illin/convertx
- سجل حاويات GitHub: https://ghcr.io/c4illin/convertx
- متتبع المشاكل: https://github.com/C4illin/ConvertX/issues
يغطي هذا الدليل الجوانب الأساسية لنشر واستخدام ConvertX. لحالات استخدام محددة أو تكوينات متقدمة، راجع الوثائق الرسمية أو مناقشات المجتمع.