H1: Jellyfin روی VPS: چگونه سرور رسانهای خود را بسازیم
یک پوشه پر از ویدئو معمولاً شبیه یک کتابخانه رسانهای راحت نیست: نام فایلها یکدست نیستند، فایلهای زیرنویس جدا هستند و پیدا کردن قسمت درست به جستوجوی دستی نیاز دارد. Jellyfin این آرشیو را به یک سرویس پخش شخصی با پوستر، توضیحات، پروفایل کاربران و ادامه پخش تبدیل میکند.
در عین حال، Jellyfin اشتراک نمیفروشد و کاتالوگ آمادهای از محتوا ارائه نمیدهد. این برنامه با فایلهای خودتان کار میکند و میتواند روی کامپیوتر خانگی، NAS یا VPS اجرا شود. در ادامه قابلیتها، نیازمندیهای سرور و نصب روی Ubuntu با نام دامنه و HTTPS را بررسی میکنیم.
Jellyfin چیست و چرا ممکن است به آن نیاز داشته باشید
Jellyfin یک سرور رسانهای رایگان و متنباز است. سرور فیلمها، سریالها، موسیقی، عکسها و محتوای دیگر را فهرست میکند و برنامههای کلاینت آنها را روی تلفن، کامپیوتر یا تلویزیون پخش میکنند.
پس از اسکن پوشهها، Jellyfin پوستر و توضیحات را دانلود میکند، سریالها را بر اساس فصل مرتب میکند، محل ادامه پخش را به خاطر میسپارد و بخش «ادامه تماشا» را نمایش میدهد. میتوانید برای اعضای خانواده پروفایلهای محلی جدا بسازید، دسترسی به کتابخانهها را محدود کنید و کنترل والدین را تنظیم کنید. قابلیت Quick Connect به کاربران اجازه میدهد با یک کد کوتاه روی تلویزیون وارد شوند و نیازی به وارد کردن رمز طولانی نداشته باشند.
کلاینتها برای Android، iOS، Android TV، Roku، webOS، Tizen، Xbox و کامپیوترهای رومیزی در دسترس هستند. Jellyfin همچنین رابط وب و یکپارچهسازی با Kodi را ارائه میدهد.
Jellyfin از موسیقی، IPTV، تیونرهای تلویزیونی و ضبط تلویزیون زنده نیز پشتیبانی میکند. SyncPlay پخش را برای چند کاربر هماهنگ میکند و افزونهها زیرنویس، منابع متادیتای جدید و یکپارچهسازیهای دیگر را اضافه میکنند.
Jellyfin خودش فیلمی جستوجو یا دانلود نمیکند. این برنامه فقط محتوایی را مرتب و پخش میکند که مالک سرور از قبل در اختیار دارد.
Jellyfin در برابر Plex: تفاوتهای اصلی
هر دو راهکار مجموعه محلی شما را به یک سرویس رسانهای تبدیل میکنند، اما مدل کاری متفاوتی دارند.
| پارامتر | Jellyfin | Plex |
|---|---|---|
| کد منبع | متنباز | اختصاصی |
| قابلیتهای پریمیوم | سرور و کلاینتهای رسمی سطح پولی ندارند | بعضی قابلیتها به طرح اشتراک وابستهاند |
| حساب مرکزی | لازم نیست | از اکوسیستم ارائهدهنده استفاده میکند |
| دسترسی از راه دور | مالک دامنه، reverse proxy یا VPN را تنظیم میکند | سازوکارهای آماده بیشتری ارائه میدهد |
| کنترل دادهها | حداکثری | بخشی از زیرساخت را ارائهدهنده کنترل میکند |
افراد Jellyfin را به دلیل استقلال، حریم خصوصی و نبود اشتراک انتخاب میکنند. Plex ممکن است زمانی راحتتر باشد که سادهترین راهاندازی ممکن و برنامههای یکدست و پرداختشده برای همه دستگاهها اولویت اصلی باشند.
Direct Play یا ترنسکدینگ: چه چیزی به سرور فشار میآورد
کارایی Jellyfin کمتر از اندازه کتابخانه و بیشتر از روش پخش تأثیر میگیرد.
| حالت | چه اتفاقی میافتد | بار کاری |
|---|---|---|
| Direct Play | سرور فایل اصلی را ارسال میکند | کم |
| Direct Stream | کانتینر یا یک ترک جداگانه تغییر میکند | کم یا متوسط |
| Transcoding | کدک، وضوح یا بیتریت هنگام پخش تغییر میکند | زیاد |
اگر تلویزیون از کدک، صدا و زیرنویس فایل پشتیبانی کند، سرور تقریباً از CPU استفاده نمیکند. مشکل زمانی شروع میشود که کلاینت نتواند قالب را اجرا کند، اتصال به بیتریت کمتری نیاز داشته باشد یا زیرنویس باید روی تصویر حک شود. در این حالت Jellyfin، FFmpeg را اجرا میکند و ویدئو را همزمان ترنسکد میکند.
تبدیل 4K، HEVC، HDR و HDR به SDR بهخصوص سنگین است. یک VPS معمولی بدون پردازنده گرافیکی ممکن است حتی با هستههای مجازی CPU فراوان هم کم بیاورد. بنابراین استفاده از قالبهای سازگار و Direct Play میتواند بیشتر از ارتقا به طرح بعدی در هزینه صرفهجویی کند.
Jellyfin به چه نوع سروری نیاز دارد
توصیه رسمی برای نصب معمولی حدود 8 GB رم است. روی Linux بدون رابط گرافیکی، یک سرور کوچک میتواند با 4 GB کار کند. برای سیستمعامل، پایگاه داده، تصاویر، کش و فایلهای موقت به دیسک سریع نیاز دارید؛ کتابخانه رسانهای جداگانه ذخیره میشود و معمولاً بیشتر فضا را اشغال میکند.
| سناریو | پیکربندی اولیه | توضیح |
|---|---|---|
| موسیقی و یک جریان 1080p با Direct Play | 2 vCPU، 4 GB RAM | شبکه و سرعت دیسک مهمتر هستند |
| کتابخانه رسانهای کوچک خانوادگی | 4 vCPU، 8 GB RAM | قالبهای سازگار ترجیح دارند |
| ترنسکدینگ گاهبهگاه 1080p | 4–8 vCPU پرقدرت یا GPU | بار به کدک وابسته است |
| چند جریان 4K/HDR | iGPU مدرن Intel یا کارت گرافیک | VPS معمولی فقط با CPU مناسب نیست |
ترافیک را نیز در نظر بگیرید: یک جریان 20 Mbps در هر ساعت حدود 9 GB داده منتقل میکند. با تماشای روزانه، مصرف میتواند بهسرعت به صدها گیگابایت در ماه برسد.
سرور خانگی یا VPS
برای مجموعه چندترابایتی و ترنسکدینگ سختافزاری منظم، یک مینیپیسی یا NAS خانگی مقرونبهصرفهتر است. میتوانید دیسکهای پرظرفیت نصب کنید و پردازندهای با Intel Quick Sync انتخاب کنید، اما دسترسی از راه دور به برق، اتصال اینترنت خانه و در دسترس بودن IP عمومی وابسته میماند.
VPS یک آدرس عمومی، اتصال پایدار و کارکرد شبانهروزی دارد. برای موسیقی، کتابخانه ویدئویی کوچک، Direct Play و کاربرانی در مکانهای مختلف مناسب است. محدودیتهای آن هزینه ذخیرهسازی و نبود GPU در طرحهای استاندارد است.
یک گزینه ترکیبی هم وجود دارد: فایلها در خانه باقی میمانند و VPS بهعنوان نقطه ورود امن عمل میکند. این مدل زمانی مفید است که IPv4 عمومی ندارید، اما سرعت پخش همچنان به پهنای باند آپلود اتصال خانگی محدود میشود.
نصب Jellyfin روی Ubuntu با Docker Compose
در تنظیمات زیر، Jellyfin و Caddy روی یک شبکه Docker اجرا میشوند. پورت 8096 در اینترنت منتشر نمیشود؛ Caddy اتصالهای HTTPS را میپذیرد و گواهی را بهصورت خودکار دریافت میکند.
ابتدا رکورد A دامنه، مثلاً media.example.com، را به آدرس IP سرور هدایت کنید.
1. نصب Docker و ساخت پوشهها
sudo apt update
sudo apt install -y docker.io docker-compose-v2
sudo systemctl enable --now docker
sudo mkdir -p /opt/jellyfin/{config,cache,caddy-data,caddy-config}
sudo mkdir -p /srv/media/{movies,series,music}
cd /opt/jellyfin2. ساخت /opt/jellyfin/compose.yaml
services:
jellyfin:
image: jellyfin/jellyfin:latest
container_name: jellyfin
restart: unless-stopped
volumes:
- ./config:/config
- ./cache:/cache
- /srv/media:/media:ro
networks: [media]
caddy:
image: caddy:2
container_name: jellyfin-caddy
restart: unless-stopped
ports:
- "80:80"
- "443:443"
- "443:443/udp"
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile:ro
- ./caddy-data:/data
- ./caddy-config:/config
networks: [media]
networks:
media:گزینه :ro کتابخانه رسانهای را فقطخواندنی متصل میکند و از فایلهای اصلی در برابر حذف تصادفی از طریق Jellyfin محافظت میکند.
3. ساخت /opt/jellyfin/Caddyfile
media.example.com {
reverse_proxy jellyfin:8096
}دامنه را با دامنه خود عوض کنید، کانتینرها را اجرا کنید و پورتهای لازم را باز کنید:
sudo docker compose up -d
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 443/udp
sudo ufw enableاگر SSH از پورت دیگری استفاده میکند، پیش از اجرای ufw enable آن را با یک قانون جداگانه مجاز کنید.
پس از صدور گواهی، https://media.example.com را باز کنید. در تنظیمات شبکه Jellyfin، reverse proxy را به فهرست پروکسیهای مورداعتماد اضافه کنید تا محدودیتهای دسترسی خارجی درست کار کنند.
راهاندازی اولیه کتابخانه رسانهای
در جادوگر راهاندازی، زبان را انتخاب کنید، یک مدیر بسازید و کتابخانهها را اضافه کنید:
- فیلمها —
/media/movies؛ - سریالها —
/media/series؛ - موسیقی —
/media/music.
برای شناسایی دقیق، نامهای واضح به کار ببرید:
/media/movies/Movie Title (2024)/Movie Title (2024).mkv
/media/series/Series Title (2024)/Season 01/Series Title S01E01.mkvبرای تماشا یک پروفایل استاندارد جدا بسازید و حساب مدیر را از صفحه ورود پنهان کنید. به کاربران فقط دسترسی به کتابخانههای موردنیازشان بدهید و حذف فایل را مگر در صورت ضرورت مجاز نکنید.
بهروزرسانی و پشتیبانگیری
پیکربندی Jellyfin شامل کاربران، تنظیمات، پایگاه داده و پیشرفت پخش است. پیش از بهروزرسانی، کانتینر را متوقف کنید و پوشه config را ذخیره کنید:
cd /opt/jellyfin
sudo docker compose stop jellyfin
sudo tar -czf /root/jellyfin-config-$(date +%F).tar.gz config
sudo docker compose start jellyfinآرشیو را خارج از VPS منتقل کنید. از فایلهای رسانهای جداگانه پشتیبان بگیرید.
برای بهروزرسانی اجرا کنید:
sudo docker compose pull
sudo docker compose up -dپورت 8096 را مستقیماً در معرض اینترنت قرار ندهید. از HTTPS یا VPN استفاده کنید، بهطور منظم بهروزرسانی کنید و فضای دیسک موجود را زیر نظر بگیرید.
Jellyfin روی VPS از tropic.host
برای یک کتابخانه رسانهای کوچک که بیشتر از Direct Play استفاده میکند، میتوانید با Linux VPS دارای 4 GB رم شروع کنید. برای چند کاربر، پایگاه داده بزرگ و سرویسهای اضافی، 8 GB انتخاب منطقیتری است.
هنگام انتخاب VPS از tropic.host، ظرفیت ذخیرهسازی، ترافیک ماهانه و نیاز به ترنسکدینگ را جداگانه ارزیابی کنید. سرور مجازی بهعنوان نقطه پایانی همیشه در دسترس با IP عمومی و HTTPS راحت است، اما جای سرور مجهز به GPU را نمیگیرد. اگر چند جریان 4K/HDR با تبدیل قالب لازم دارید، سرور خانگی با iGPU شرکت Intel، سرور اختصاصی یا طرح تخصصی دارای کارت گرافیک انتخاب بهتری است.
میتوانید با مجموعهای کوچک شروع کنید، سهم نشستهای Direct Play را در داشبورد Jellyfin بررسی کنید و فقط بر اساس بار واقعی، CPU، رم یا فضای ذخیرهسازی را افزایش دهید.
محدودیتهایی که بهتر است از قبل بدانید
Jellyfin کاتالوگ کتابها و فیلمها ارائه نمیدهد و محافظت DRM را حذف نمیکند. این برنامه با فایلهایی کار میکند که کاربران خودشان اضافه کردهاند و حق نگهداری آنها را دارند.
اپلیکیشنهای موبایل بهطور فعال توسعه پیدا میکنند و هنوز رسماً وضعیت بتا دارند؛ بنابراین رابط وب یا PWA همچنان جایگزین مفیدی است. پشتیبانی از کتاب الکترونیکی پایه است و وارد کردن مرتب یک مجموعه بزرگ به رعایت ساختار پوشهها و اصلاح دستی گاهبهگاه متادیتا نیاز دارد.
برای ویدئو، این سرویس چیزهایی را فراهم میکند که یک پوشه ابری معمولی ندارد: فصلها، سریها، پیگیری پیشرفت، دانلود آفلاین، پروفایلها و پشتیبانی از پادکست.
جمعبندی
Jellyfin مجموعه شخصی شما را بدون اشتراک اجباری یا حساب مرکزی به یک سرویس پخش تبدیل میکند. برای استقرار موفق، باید فضای ذخیرهسازی، ترافیک و احتمال ترنسکدینگ را از قبل برآورد کنید.
یک سرور کوچک با Direct Play اغلب با 4–8 GB رم مدیریت میشود. پخش منظم 4K/HDR به پردازش ویدئویی سختافزاری نیاز دارد. در هر پیکربندی، دسترسی خارجی را با HTTPS یا VPN محافظت کنید و از تنظیمات و کتابخانه رسانهای بهصورت جداگانه پشتیبان بگیرید.
FAQ
آیا Jellyfin کاملاً رایگان است؟
بله. سرور و کلاینتها بدون طرح پریمیوم در دسترس هستند. فقط برای سختافزار، VPS، دیسکها، نام دامنه و ترافیک هزینه خواهید داشت.
آیا Jellyfin فیلم و سریال آماده برای تماشا دارد؟
خیر. کاربران فایلهای رسانهای خود را اضافه میکنند.
آیا Jellyfin بدون کارت گرافیک روی VPS اجرا میشود؟
بله، به شرطی که بیشتر فایلها با Direct Play پخش شوند. ترنسکدینگ مکرر 4K و HDR به سروری با iGPU یا کارت گرافیک مناسب نیاز دارد.
Jellyfin به چه مقدار رم نیاز دارد؟
یک سرور Linux کوچک میتواند با 4 GB رم اجرا شود. برای کتابخانه خانوادگی و چند کاربر، 8 GB هدف مناسبتری است.
چگونه با امنیت به Jellyfin از اینترنت دسترسی داشته باشم؟
از دامنه و HTTPS از طریق reverse proxy استفاده کنید یا VPN به کار ببرید. پورت 8096 را مستقیماً در معرض اینترنت قرار ندهید و حسابهای جداگانه با حداقل دسترسی بسازید.
