دليل عملي

الانتقال من Plex إلى Jellyfin وNavidrome على خادم VPS

الاستضافة الذاتية8 دقائق للقراءةعدد الخطوات: 12

في سبتمبر 2026، رصدت مؤسسة ‎Shadowserver‎ أكثر من 36,000 نسخة ‎Plex‎ مكشوفة على الإنترنت لا تزال تعمل بإصدارات أقدم من ‎1.43.3‎ — الإصدار الذي يُصلح ثغرتين حرجتين تُتيحان كتابة ملفات عشوائية واجتياز المجلدات. إذا كنت تستضيف ‎Plex‎ على خادم ‎VPS‎ جذر، فإن نافذة التعرض للخطر حقيقية وموثقة. يوضح هذا الدليل كيفية الانتقال إلى ‎Jellyfin‎ (للفيديو) و‎Navidrome‎ (للموسيقى) دون فقدان مكتباتك أو بيانات التعريف أو قوائم التشغيل، ولماذا تكلفة الانتقال أقل من مخاطر البقاء.

المحتويات· لماذا تترك Plex في 2026: 36,000 خادم مكشوف1/9
  1. 01لماذا تترك Plex في 2026: 36,000 خادم مكشوف
  2. 02ما يخفيه Plex خلف نموذجه السحابي
  3. 03المتطلبات قبل بدء الانتقال
  4. 04الانتقال من Plex إلى Jellyfin: خطوة بخطوة
  5. 05الانتقال الموسيقي: Plex إلى Navidrome
  6. 06مقارنة Plex مقابل Jellyfin مقابل Navidrome
  7. 07تهيئة Nginx كوكيل عكسي لـ Jellyfin
  8. 08استكشاف الأخطاء: أكثر 3 مشكلات شيوعاً عند الانتقال
  9. 09الخلاصة

لماذا تترك Plex في 2026: 36,000 خادم مكشوف

في 9 سبتمبر 2026، نشرت ‎Shadowserver‎ نتائجها: أكثر من 36,000 خادم ‎Plex‎ متاح من الإنترنت لم يُطبَّق عليه تحديث ‎1.43.3‎ المتاح منذ 19 مايو. ثغرتان محوريتان في هذا التحذير: ‎CVE-2026-96656‎ (‏CVSS 7.2) تسمح لمهاجم يملك صلاحيات إدارية بكتابة ملفات عشوائية تُنفَّذ عند بدء التشغيل، أي تحميل إضافة خبيثة تزرع برنامج تحكم عن بُعد دون أي فحص للتوقيع أو صلاحيات التنفيذ. ‎CVE-2026-96651‎ (‏CWE-22، اجتياز المسار) تُمكِّن أي جلسة مُصادَق عليها من قراءة أي ملف يصل إليه مستخدم نظام ‎Plex‎، بما فيه رمز ‎PlexOnlineToken‎. مجتمعتين، تغطي هاتان الثغرتان سيناريو تصعيد كامل للصلاحيات: سرقة الجلسة ثم تنفيذ الكود. أصلحت ‎Plex‎ كلتيهما في الإصدار ‎1.43.3.10861‎؛ والإصدار ‎1.43.3.10896‎ هو الهدف الموصى به. تبقى المشكلة البنيوية قائمة: ‎Plex‎ برنامج مُغلق المصدر يعتمد دورة تصحيح على مورِّد واحد، و36,000 مسؤول لم يُطبِّقوا إصلاحاً عمره أربعة أشهر.

ما يخفيه Plex خلف نموذجه السحابي

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

  • الوصول عن بُعد عبر ‎Plex Relay‎: كل بث يمر عبر خوادم ‎‎plex.tv‎‎، حتى لو كان خادم ‎VPS‎ الخاص بك هو الوحيد الذي يخزن الملفات. تطلع ‎Plex‎ على بيانات تشغيلك.
  • ‎Plex Pass‎ مطلوب للميزات الأساسية: المزامنة دون اتصال، الوصول متعدد المستخدمين الكامل، التلفاز المباشر، والوصول عن بُعد دون توجيه المنافذ — جميعها حكر على المشتركين المدفوعين.
  • مصادقة مركزية: تسجيل دخول عملائك يمر عبر خوادم ‎Plex‎. أي عطل في ‎‎plex.tv‎‎ يقطع وصولك إلى ملفاتك الخاصة.
  • تحديثات غير خاضعة للمراقبة: يمكن لـ‎Plex‎ نشر تغييرات جانب الخادم (الترحيل، المصادقة) دون أن تتمكن من مراجعتها أو حجبها.
  • قياس عن بُعد نشط بالإعداد الافتراضي: بيانات التشغيل والبحث وعادات المشاهدة تُرسَل إلى الشركة المطورة ما لم تُعطِّلها يدوياً في كل عميل.

المتطلبات قبل بدء الانتقال

تستهدف هذه الإجراءات خادم ‎VPS‎ جذراً يعمل بنظام ‎Debian 12‎ أو ‎Ubuntu 22.04 LTS‎. تحتاج إلى وصول ‎SSH‎ بصلاحيات ‎root‎ أو ‎sudo‎، وتثبيت ‎Docker‎ و‎Docker Compose‎ (الإصدار ‎v2‎ فأعلى)، ومجلد وسائط متاح للقراءة. خذ نسخة احتياطية ‎snapshot‎ من خادمك قبل البدء — فهي قابلة للعكس بأمر واحد وتستغرق أقل من ساعة. يحل ‎Jellyfin‎ محل مكتبة الفيديو؛ و‎Navidrome‎ محل مكتبة الموسيقى. كلاهما مفتوح المصدر، بلا اشتراك، ويُعرَض خلف ‎Nginx reverse proxy‎.

الانتقال من Plex إلى Jellyfin: خطوة بخطوة

إليك الإجراء الكامل لترحيل مكتبتك من Plex إلى Jellyfin دون فقدان البيانات أو سجل المشاهدة.

  1. إنشاء نسخة احتياطية snapshot للخادم

    البداية: snapshot create plex-before-migration من لوحة التحكم لدى مزودك (أو ما يعادلها من ‎API‎). هذه الخطوة هي شبكة الأمان؛ لا تتخطاها.

  2. إيقاف Plex بشكل نظيف

    systemctl stop plexmediaserver
    systemctl disable plexmediaserver

    انتظر تأكيد الإيقاف قبل المتابعة. يجب ألا يستمع ‎Plex‎ بعد الآن على المنفذ 32400.

  3. تثبيت Jellyfin عبر Docker Compose

    # /opt/jellyfin/docker-compose.yml
    services:
      jellyfin:
        image: jellyfin/jellyfin:latest
        container_name: jellyfin
        restart: unless-stopped
        ports:
          - "8096:8096"
        volumes:
          - /opt/jellyfin/config:/config
          - /opt/jellyfin/cache:/cache
          - /data/media:/media:ro
        environment:
          - JELLYFIN_PublishedServerUrl=https://jellyfin.your-domain.com

    استبدل /data/media بالمسار الدقيق لملفاتك. يُحمَّل المجلد بصلاحية القراءة فقط (:ro) كإجراء احترازي.

  4. تشغيل Jellyfin وإطلاق معالج الإعداد

    cd /opt/jellyfin && docker compose up -d

    ادخل إلى http://IP-الخادم:8096 لمعالج الويب. أنشئ حساب المدير، ثم أضف مكتباتك مشيراً إلى /media/films و/media/series إلخ.

  5. فحص المكتبات والتحقق من بيانات التعريف

    يستخدم ‎Jellyfin‎ قاعدة بيانات الأفلام ‎TMDB‎ و‎TheTVDB‎ افتراضياً. يستغرق الفحص الأول بين 5 و30 دقيقة حسب حجم مكتبتك. تحقق من ظهور الأغلفة والملخصات والتقييمات بشكل صحيح. إذا لم يُتعرَّف على عمل تلقائياً، استخدم وظيفة التعريف لفرض المطابقة.

  6. تهيئة عملاء Jellyfin

    تتوفر تطبيقات ‎Jellyfin‎ الرسمية على ‎Android‎ و‎iOS‎ و‎Apple TV‎ و‎Android TV‎ و‎Roku‎ والمتصفحات. وهي مجانية ومفتوحة المصدر. وجِّه كل عميل نحو ‎URL‎ الداخلي أو العام لخادمك — لا يلزم أي مصادقة خارجية.

  7. التحقق من الترميز والترجمات

    في لوحة التحكم > التشغيل، فعِّل الترميز الصوتي بالمعالج إذا كان خادمك يمتلك معالج رسوميات. اختبر ملف ‎H.265‎ من عميل محمول للتحقق من عمل الترميز البرمجي احتياطياً. تحقق أيضاً من ظهور ترجمات ‎SRT‎ و‎ASS/SSA‎.

  8. إزالة Plex

    apt remove plexmediaserver --purge
    rm -rf /var/lib/plexmediaserver

    لا تحذف التثبيت القديم إلا بعد التحقق من عمل ‎Jellyfin‎ على عميل واحد على الأقل لمدة 48 ساعة.

الانتقال الموسيقي: Plex إلى Navidrome

‎Navidrome‎ خادم موسيقى مفتوح المصدر متوافق مع واجهة برمجة ‎Subsonic‎، ما يتيح له الوصول إلى بيئة العملاء الكاملة (‎DSub‎، ‎Symfonium‎، ‎Ultrasonic‎، ‎Airsonic‎، وغيرها). يقرأ وسوم ‎ID3 v2.3‎ و‎v2.4‎ وملفات ‎FLAC‎ و‎MP3‎ و‎AAC‎ و‎OGG‎ و‎Opus‎. تُستورَد قوائم التشغيل ‎M3U‎ الموجودة في مجلد موسيقاك تلقائياً شريطة أن تكون المسارات نسبية لجذر الموسيقى.

  1. فحص بنية المجلدات

    يتوقع ‎Navidrome‎ تسلسلاً هرمياً فنان/ألبوم/مقطوعة.mp3‎. إذا كانت ملفاتك منظمة هكذا بالفعل (وهو ما يتطلبه ‎Plex‎ أيضاً)، فلا داعي لإعادة التنظيم. تحقق من غياب الرموز الخاصة في أسماء المجلدات (/، :، ?).

  2. مراجعة وسوم ID3

    find /data/music -name '*.mp3' | head -20 | xargs id3v2 -l

    يجب أن تكون حقول TPE1 (الفنان) وTALB (الألبوم) وTIT2 (العنوان) مملوءة. ملف بدون هذه الحقول الثلاثة سيُستورَد لكن دون بيانات تعريف معروضة. تستطيع أداة beets إصلاح الوسوم الناقصة جماعياً عبر قاعدة بيانات ‎MusicBrainz‎.

  3. نشر Navidrome عبر Docker Compose

    # /opt/navidrome/docker-compose.yml
    services:
      navidrome:
        image: deluan/navidrome:latest
        container_name: navidrome
        restart: unless-stopped
        ports:
          - "4533:4533"
        volumes:
          - /opt/navidrome/data:/data
          - /data/music:/music:ro
        environment:
          - ND_SCANSCHEDULE=1h
          - ND_LOGLEVEL=info
          - ND_BASEURL=

    ابدأ بـdocker compose up -d ثم ادخل إلى http://IP:4533 لإنشاء الحساب الأول.

  4. نقل قوائم تشغيل Plex

    لا يُصدِّر ‎Plex‎ قوائم التشغيل بصيغة ‎M3U‎ أصلياً من الواجهة. استخدم أداة ‎plexapi‎ بلغة ‎Python‎ للتصدير: python3 -m plexapi.playlist export --token YOUR_TOKEN --output /data/music/playlists/. ملفات ‎M3U‎ المُولَّدة يستوردها ‎Navidrome‎ تلقائياً إذا كانت المسارات نسبية للمجلد /music.

مقارنة Plex مقابل Jellyfin مقابل Navidrome

يقارن الجدول التالي المعايير الأساسية للاختيار بين Plex وJellyfin وNavidrome.

مرّر الجدول أفقيًا

المعيارPlexJellyfinNavidrome
الرخصةمغلق المصدر (مجاني/مدفوع)GPL-2.0 مفتوح المصدرGPL-3.0 مفتوح المصدر
الوصول عن بُعد بدون اشتراكلا (يتطلب Plex Pass)نعم، أصلينعم، أصلي
مصادقة خارجية مطلوبة‏نعم (‎plex.tv‎)لالا
مكتبة الفيديونعمنعملا (موسيقى فقط)
مكتبة الموسيقىنعم (محدود)جزئينعم (متخصص)
ترميز بالمعالجيتطلب Plex Pass‏أصلي (NVENC، QSV، VAAPI)غير مطبق (صوت فقط)
عملاء رسميون للهاتفمدفوعون على iOS/Androidمجاني، مفتوح المصدرعملاء Subsonic خارجيون
الاعتماد على السحابةقوي (relay، مصادقة)معدوممعدوم

تهيئة Nginx كوكيل عكسي لـ Jellyfin

يجب أن يُعرَض ‎Jellyfin‎ عبر ‎HTTPS‎. يفترض الإعداد أدناه شهادة ‎Let's Encrypt‎ تُديرها ‎Certbot‎ أو شبكة ‎CDN‎ في وضع ‎Full (strict)‎. لا تعرض المنفذ 8096 مباشرة — مرر دائماً عبر ‎Nginx‎.

# /etc/nginx/sites-available/jellyfin
server {
    listen 80;
    server_name jellyfin.your-domain.com;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl http2;
    server_name jellyfin.your-domain.com;

    ssl_certificate /etc/letsencrypt/live/jellyfin.your-domain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/jellyfin.your-domain.com/privkey.pem;

    add_header X-Frame-Options "SAMEORIGIN";
    add_header X-Content-Type-Options "nosniff";
    add_header X-XSS-Protection "1; mode=block";

    location / {
        proxy_pass http://127.0.0.1:8096;
        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;

        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";

        proxy_buffering off;
        proxy_read_timeout 3600;
    }
}

طبِّق نفس البنية لـ‎Navidrome‎ باستبدال المنفذ بـ‎4533‎. فعِّل الإعداد بـnginx -t && systemctl reload nginx.

استكشاف الأخطاء: أكثر 3 مشكلات شيوعاً عند الانتقال

إليك المشكلات الثلاث الأكثر شيوعاً أثناء هجرة Plex/Jellyfin مع حلولها المباشرة.

  • المكتبة فارغة بعد الفحص الأول: تحقق من أن المسار المُحمَّل في ‎Docker‎ يطابق تماماً المجلد الذي يحتوي ملفاتك. يجب أن يُدرج docker exec jellyfin ls /media مجلداتك. إن كان المجلد فارغاً، صحِّح الربط في ‎docker-compose.yml‎ وأعد تشغيل الحاوية.
  • فشل الترميز مع خطأ ‎ffmpeg‎: يُضمِّن ‎Jellyfin‎ نسخته الخاصة من ‎ffmpeg‎. إذا لم تكن الحاوية تملك وصولاً للمعالج الرسومي، عطِّل الترميز بالمعالج في لوحة التحكم > التشغيل وانتقل للترميز البرمجي. على خادم ‎VPS‎ بدون معالج رسومي، هذا هو الإعداد الطبيعي.
  • عملاء iOS/Android لا يجدون الخادم: تأكد أن جدار الحماية يسمح بالمنفذ 443 من الخارج (ufw allow 443)، وأن ‎DNS‎ يشير لعنوان ‎IP‎ الخادم، وأن شهادة ‎TLS‎ صالحة. اختبر بـcurl -I https://jellyfin.your-domain.com/health من جهازك المحلي.

أبقِ ‎Plex‎ معطَّلاً (وليس محذوفاً) خلال أول 48 ساعة بعد الانتقال. تتيح لك نسخة ‎snapshot‎ للخادم التراجع في أقل من خمس دقائق. لا تحذف ملفات إعداد ‎Plex‎ (/var/lib/plexmediaserver) إلا بعد التأكد من عمل جميع عملائك بشكل صحيح على ‎Jellyfin‎ و‎Navidrome‎.

الخلاصة

إن وجود 36,000 خادم ‎Plex‎ غير مُحدَّث ليس دليلاً على إهمال فردي: بل يكشف عن اعتماد بنيوي على مورِّد مغلق المصدر دورة تصحيحه غير شفافة. تُظهر ‎CVE-2026-96656‎ و‎CVE-2026-96651‎ أن هذا الاعتماد له تكلفة قابلة للقياس. يعيد إليك ‎Jellyfin‎ و‎Navidrome‎ السيطرة: لا مصادقة خارجية، ولا بث سحابي، ولا اشتراك للوصول عن بُعد. الانتقال يستغرق أقل من ساعة بهذا الدليل؛ والمكتبة وصيلة سليمة. إذا كنت تستضيف وسائطك على خادم ‎VPS‎ جذر، فلم تعد ثمة حجة للانتظار.

استضف Jellyfin على خادم VPS جذر اليوم

تقدم ServOrbit نشراً مُهيَّأً مسبقاً لـ‎Jellyfin‎ على خادم ‎VPS‎ جذر بدءاً من ‎99 درهم/شهر‎. نشر بنقرة واحدة، ‎Nginx reverse proxy‎ مُضمَّن، بلا اشتراك ولا سحابة خارجية.

بحاجة إلى مساعدة؟

تصفّح مركز المساعدة والأسئلة الشائعة، أو تواصل مع فريقنا — معاودة اتصال أو WhatsApp أو بريد إلكتروني. الدعم بـالعربية والفرنسية والإنجليزية.

راسلنا على WhatsAppيُفتح في علامة تبويب جديدة