> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kombify.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Jellyfin

> حمل عمل مكتبة الوسائط مع وسائط للقراءة فقط وإعداد أصلي للمالك ومسارات استرداد منفصلة

يوفّر Jellyfin حالة الاستخدام [Media](/ar/guides/stackkits/use-cases/media) عبر حمل العمل `media` على مضيف Compose مستقل. أعدّه بعد نجاح التحقق من الأساس في [Basement Kit](/ar/stackkits/kits/basement-kit) لديك. استخدم `stackkit app compatibility --json` لفحص قدرات المحوّل في الإصدار المثبَّت.

## توجيه حمل العمل إلى مجلد وسائط موجود

لاستخدام مكتبة موجودة، اضبط `storage.mediaRoot` في StackSpec على المسار المطلق لمجلد الوسائط على مضيف التشغيل، مثل `/srv/household-media`، قبل توليد الحزمة وتطبيقها:

* تربط StackKits ذلك المجلد على `/media` للقراءة فقط. يستطيع Jellyfin فحص هذه الملفات وبثّها لكنه لا يستطيع تعديلها أو حذفها.
* يجب أن يكون المجلد موجودًا مسبقًا. لا تنشئه StackKits ولا تغيّر أذوناته؛ والمجلد المفقود يُفشل التسليم، لذا جهّز تخزين المضيف واحمِه بنفسك.
* اترك `storage.mediaRoot` غائبًا للإبقاء على وحدة تخزين مكتبة مسماة تديرها الخطة بدلًا من ذلك.
* يسمّي المسار تخزينًا على مضيف التشغيل، لا على الجهاز الذي يشغّل عارضًا بعيدًا.

## إعداد حساب المالك

أنشئ ملف بيانات اعتماد خاصًا نسبةً إلى مساحة العمل `.stackkit/setup/media-owner.json`:

```json theme={null}
{
  "username": "<your administrator name>",
  "password": "<your unique password>"
}
```

قصر هذا الملف على مالك مساحة العمل وأبقِ محتواه خارج وسائط الأوامر ورسائل الدردشة. ثم شغّل:

```bash theme={null}
stackkit setup media --credentials-file .stackkit/setup/media-owner.json --owner-approve --json
```

يتحقق الأمر من الخطة الحالية ومن Apply الموقَّع ومن الحاوية المحلية المحددة ومن إصدار Jellyfin المثبَّت قبل أن ينفّذ. عند التشغيل الأول يضبط بيانات اعتماد المسؤول التي اخترتها، ولا يستخدم أبدًا كلمة مرور افتراضية للمستخدم الأول. وعلى تثبيت قائم يُجري تسجيل دخول عاديًا وقراءة راجعة لحساب المسؤول بدلًا من ذلك. تُلغى جلسة الإعداد المؤقتة قبل تسجيل النتيجة الموقَّعة.

## إنهاء المعالج وإضافة المكتبات

من دون أعلام إضافية، يبقى معالج البدء غير المكتمل في Jellyfin غير مكتمل: افتح Media على مساره الخاص المعلن واختر مسارات المكتبة واللغة وإعدادات المنزل بنفسك. ولإكمال معالج البدء بإعدادات التطبيق الحالية ثم ضبط مكتباتك لاحقًا، أضف `--complete-onboarding`:

```bash theme={null}
stackkit setup media --credentials-file .stackkit/setup/media-owner.json --owner-approve --complete-onboarding --json
```

لا يُنهي هذا العلم سوى معالج البدء. فهو لا يضيف مكتبات ولا يغيّر إعدادات الوصول عن بُعد ولا يضبط الترميز (transcoding). وعند إضافة مكتبة، اتبع ربط وحدة تخزين الوسائط في الخطة، أي تركيب `/media` للقراءة فقط لمجلد في حفظ المالك. امنح مشاهدي المنزل حسابات Jellyfin منفصلة بلا صلاحيات إدارية، ووصّل كل مشغّل مباشرةً بعنوان Media المعلن.

## حدود الاسترداد

يُحفظ إعداد التطبيق وبايتات الوسائط بشكل منفصل:

* يعيش إعداد Jellyfin وذاكرة الترميز المؤقتة في وحدتي تخزين منفصلتين. راجع إعلان النسخ الاحتياطي للتطبيق لمعرفة البيانات المشمولة؛ فوجود تخزين قابل للكتابة وحده لا يعني تغطية النسخ الاحتياطي.
* مصدر وسائطك ليس نسخة احتياطية من StackKits. مهما ضبطت لـ `storage.mediaRoot`، احتفظ بمصدر استرداد مستقل لتلك البايتات ووثّقه خارج الحزمة.
* سلامة الحاوية وإعداد مسؤول جرى التحقق منه لا يثبتان محتوى المكتبة ولا الاسترداد؛ افحص كليهما صراحةً.

## اختبار عميل حقيقي

اختبر تشغيل أحد ملفاتك من عميل تنوي استخدامه. افحص التشغيل المباشر (direct play) أولًا، ثم الترميز فقط إذا ضبطته صراحةً. لا تثبت الحاوية السليمة توافق العميل ولا عرض النطاق ولا جودة الترميز؛ تحقق منها على الأجهزة التي تخطط فعلًا للمشاهدة عليها.

## استئناف إعداد انقطع

إذا انقطعت عملية إعداد، فأعد تشغيلها باستخدام `--operation-id` المُبلَّغ عنه. يعيد الأمر فحص حالة التطبيق ولا يعيد أبدًا فتح معالج بدء اكتمل بالفعل.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.