
گوشیهای قدیمی اغلب در خانه بیاستفاده میمانند؛ پردازنده یا باتری آنها برای کارهای روزمره ضعیف شده و برخی اپلیکیشنها دیگر از نسخههای قدیمی اندروید پشتیبانی نمیکنند. همین موضوع باعث شد یک کاربر پس از تجربه پروژههای کوچک سرور خانگی، به فکر استفاده مجدد از یک گوشی سامسونگ گلکسی قدیمی بیفتد. او نمیخواست گوشی را به زباله الکترونیکی (E-Waste) تبدیل کند و در نهایت آن را به سرور رسانه Jellyfin بدل کرد؛ هرچند این پروژه یکی از آزاردهندهترین کارهایی بود که انجام داده است.
روشهای ساخت سرور از گوشی قدیمی
برای چنین پروژهای چند مسیر وجود دارد. در روش اول میتوان گوشی را روت (Root) کرد، سیستمعامل اندروید را پاک کرد و توزیعی مانند Debian را نصب کرد. سپس Jellyfin نصب میشود، پورتهای مناسب نگاشت (Map) میشوند و سرور راه میافتد. این روش بیشترین منابع را در اختیار قرار میدهد، چون نیازی به اجرای یک سیستمعامل شبیهسازیشده داخل اندروید نیست.
روش بدون روت به اپلیکیشنهایی مانند Termux یا Podroid نیاز دارد تا یک فضای ایزوله بسازند. Termux یک فضای کاربری شبیه لینوکس فراهم میکند و Podroid ابزارهای لازم و سیستمهای مدیریت کانتینر مانند Docker را از پیش پیکربندیشده در اختیار میگذارد. حتی میتوان یک نصب سبک از Ubuntu را با PRoot داخل Termux اجرا کرد و ابزارها را در آن نصب کرد. این روش امنتر است، احتمال خراب شدن گوشی سالم را افزایش نمیدهد و راحتتر است. با این حال، برای راهاندازیهای سنگینی مثل سرور رسانه، افت عملکرد چشمگیری در استفاده از Termux یا Podroid وجود دارد.
Podroid؛ شروع امیدوارکننده و مشکلات پیاپی
نویسنده ابتدا Podroid را انتخاب کرد. او پیشتر با Podroid یک سرور گوشی برای میزبانی OmniTools و BentoPDF ساخته بود که هر دو بهصورت کانتینرهای Docker اجرا میشدند. اما اجرای Jellyfin بهعنوان کانتینر مشکلات متعددی ایجاد کرد؛ از جمله مانتهای اتصالی (Bind Mounts)، تخصیص پورتها و بخشهای دیگری از شبکه که بسیار آزاردهنده بود.
در ابتدا کانتینر بدون مشکل مستقر میشد، اما در بررسی سلامت (Health Check) شکست میخورد و بهطور خودکار متوقف میشد. با تغییر دستورها، بررسی سلامت غیرفعال شد، اما مشکل جدیدی پدید آمد: ابزار به هدایت پورت (Port Forwarding) نیاز داشت و برای این کار باید از ADB استفاده میشد. پس از آن رابط وب Jellyfin بالا آمد و پیکربندی اولیه انجام شد، ولی بسیار کند و بیپاسخ بود.
ایده بعدی نصب مستقیم بسته Jellyfin و کنار گذاشتن Docker بود. متأسفانه این مسیر مشکلدارتر شد؛ API بارگذاری میشد و در مرحله مهاجرت (Migration) گیر میکرد و راهاندازی صفحه ۳۰ دقیقه یا بیشتر طول میکشید. در نهایت این تنظیمات کنار گذاشته شد و Termux مسیر را هموار کرد.
Termux راهحل نهایی شد
Termux نسبتاً سرراست بود. ابتدا یک سیستم Ubuntu با PRoot راهاندازی شد، سپس اجزای لازم نصب و مخازن موردنیاز اضافه شدند و Jellyfin داخل این سیستم نصب شد. تلاش بیشتری برای نگاشت پورتها و دسترسی سرور به محتوای حافظه گوشی لازم بود. در نهایت سرور آماده شد تا محتوا را روی پورت 8096 ارائه کند.
عملکرد گوشی بهعنوان سرور رسانه
پس از بالا آمدن درگاه وب، سرور بهسرعت پیکربندی شد و چند تنظیم برای دسترسی به حافظه گوشی انجام گرفت. یک کتابخانه جدید ساخته شد و برای محتوای عکس و ویدیو تنظیم شد. گوشی قدیمی عکسها، ویدیوها و چند انیمه قدیمی داشت و ترکیبی مناسب برای پخش محلی بود. کاربر میتواند خاطرات قدیمی را مرور کند، نمایش اسلاید هزاران تصویر را ببیند یا انیمه و سایر رسانههای دانلودشده را پخش کند.
ویدیوهای موجود آزمایش شدند و پخش ۱۰۸۰p سرور را از کار نینداخت. ویدیوها روان پخش شدند و حتی پخش با سرعت ۱.۵x و ۲x سرور را تحت فشار نگذاشت. اما دسترسی به حافظه داخلی تنها بخشی از یک سرور رسانه است. میتوان از SMB برای دریافت فایلهای ویدیویی از یک فضای ذخیرهسازی شبکهای دیگر استفاده کرد. همچنین امکان استفاده از هارد USB وجود دارد، ولی گوشی فقط یک پورت USB دارد و همین موضوع برای کارهای دیگر چالشساز میشود.
محدودیتها و نکات مهم
ممکن است برای عیبیابی به ADB نیاز باشد و گوشی باید در حالت متصل به برق (Plugged-in) کار کند. بنابراین پورت USB تک، چالشی است که تنها فضای ذخیرهسازی شبکهای میتواند آن را حل کند. سختافزار نیز محدودیتهای خود را دارد و این تنظیمات از عهده بارهای سنگین ترنسکدینگ (Transcoding) برنمیآید. Jellyfin برای همه کارها به هستههای محدود CPU تکیه میکند و برای پخش مستقیم (Direct Playback) پایه مناسب است. دستگاههای روتشده میتوانند کمی بهتر عمل کنند، اما ریسک بزرگی دارند.
بهگفته نویسنده، عملکرد کلی به یک رایانه کوچک (Mini-PC) نزدیک نیست و بیشتر شبیه یک رایانه تکبرد (SBC) میانرده است. با این حال او خوشحال است که سرور مانند تجربه اجرای Jellyfin روی Raspberry Pi Zero 2 W دچار خرابی نمیشود. برای دسترسپذیری ۲۴ ساعته، گوشی باید به برق متصل باشد و اگر گوشی خیلی قدیمی نباشد، احتمالاً محافظت از شارژ بیشازحد (Overcharge Protection) دارد. اتصال فضای ذخیرهسازی فیزیکی ممکن نیست، اما در صورت وجود اسلات میتوان از کارت SD با ظرفیت بالا استفاده کرد.
جمعبندی
تبدیل گوشی قدیمی به سرور Jellyfin روی دستگاه بدون روت دشوار است، اما با Termux و PRoot شدنی است. این راهحل برای پخش محلی و نیازهای پایه مناسب به نظر میرسد و میتواند بهجای دور انداختن یک گوشی سالم، به آن کاربری تازه بدهد.