ما هو Jellyfin؟

Jellyfin هو خادم وسائط مجاني ومفتوح المصدر. يتيح بث الأفلام والعروض والموسيقى والصور إلى المتصفحات والهواتف وأجهزة التلفاز والأجهزة الأخرى، ويمكنه إجراء تحويل ترميز للفيديو أثناء التشغيل. يوفر المشروع صورة رسمية، jellyfin/jellyfin، تُنشر أيضًا باسم ghcr.io/jellyfin/jellyfin. ويوفر مشروع LinuxServer.io صورة أخرى، lscr.io/linuxserver/jellyfin، مع مجلداته ومتغيراته الخاصة.

وصف الأداة

تنشئ هذه الأداة ملف compose.yaml لـ Jellyfin بالاستناد إلى دليل تثبيت المشروع. يمكنك اختيار الصورة والوسم، والمنافذ والشبكات، والمستخدم، ومجلدات الإعداد وcache، وأي عدد من مجلدات الوسائط، التي يمكن تركيبها للقراءة فقط. ومع الصورة الرسمية، يمكنك أيضًا تركيب مجلدات تحتوي على خطوط مخصصة وخطوط بديلة. وبالنسبة إلى بطاقة الرسومات، تضيف الأداة ما توضحه وثائق Jellyfin: /dev/dri ومجموعة render لمعالجات Intel وAMD، أو وقت تشغيل NVIDIA وحجز GPU لمعالجات NVIDIA. وتغيّر الأداة الملف عند اختيار صورة LinuxServer.io، التي تستخدم PUID وPGID وTZ بدلًا من user. يُنشأ كل شيء في متصفحك.

الميزات

  • الصورة الرسمية من Docker Hub أو GitHub Container Registry، أو الصورة من LinuxServer.io، مع أي وسم
  • الوضع الجسري مع المنفذين 8096 و7359/udp، ومنفذ HTTPS اختياري هو 8920، وعنوان bind، أو وضع المضيف الذي يحتاج إليه DLNA
  • عنوان URL المنشور للخادم للعملاء الذين يكتشفون الخادم
  • مستخدم بالصيغة uid:gid للصورة الرسمية، أو PUID وPGID والمنطقة الزمنية لـ LinuxServer.io
  • الإعداد وcache على المضيف أو في وحدات تخزين Docker مُسمّاة، مع التصريح عنها نيابةً عنك
  • عدة مجلدات للوسائط، لكل منها مسار داخل الحاوية وخيار لتركيبه للقراءة فقط
  • خطوط مخصصة وخطوط بديلة للترجمات التي تُدمج أثناء تحويل الترميز
  • تسريع الأجهزة باستخدام VA-API أو QSV لمعالجات Intel وAMD، أو NVENC لمعالجات NVIDIA
  • أي متغير بيئي آخر، وتعليقات تشرح الملف، وإمكانية التنزيل باسم compose.yaml

أمثلة

تُنتج الإعدادات الافتراضية المثال الوارد في وثائق Jellyfin، مع وجود المجلدات بجانب الملف:

services:
  jellyfin:
    image: jellyfin/jellyfin
    container_name: jellyfin
    ports:
      - "8096:8096"
      - "7359:7359/udp"
    volumes:
      - ./config:/config
      - ./cache:/cache
      - /path/to/media:/media
    restart: unless-stopped

تؤدي إضافة تسريع الأجهزة باستخدام NVIDIA إلى إضافة وقت التشغيل وحجز GPU:

runtime: nvidia
deploy:
  resources:
    reservations:
      devices:
        - driver: nvidia
          count: all
          capabilities:
            - gpu

نصائح

  • احفظ النتيجة باسم compose.yaml وشغّله باستخدام docker compose up -d. ثم افتح http://localhost:8096 وأضف مجلدات الوسائط إلى مكتباتك، باستخدام المسارات داخل الحاوية
  • لا يُدعم تشغيل Jellyfin في حاوية إلا على Linux. أما على Windows وmacOS، فثبّت Jellyfin بشكل أصلي، لأن تسريع الأجهزة وفحص المكتبات معروفان بتعطلهما داخل الحاويات هناك
  • اعثر على معرّف مجموعة render على المضيف باستخدام getent group render | cut -d: -f3. في بعض الأنظمة تكون المجموعة video أو input
  • بالنسبة إلى NVIDIA، ثبّت أولًا برنامج تشغيل NVIDIA وNVIDIA Container Toolkit على المضيف
  • بعد تفعيل تسريع الأجهزة في الحاوية، فعّله في لوحة تحكم Jellyfin ضمن التشغيل، وتحويل الترميز
  • DLNA هو إضافة ويحتاج إلى وضع المضيف، لأن آلية اكتشافه تستخدم عمليات بث على المنفذ 1900/udp، ولا تعبر الوضع الجسري
  • تخزّن صور المشروع الرسمي وLinuxServer.io بياناتها في أماكن مختلفة، لذلك لا يمكنك استبدال إحداهما بالأخرى في مجلد موجود
  • ركّب الوسائط للقراءة فقط عندما لا يحتاج Jellyfin إلى تعديلها