VPS-এ Jellyfin: কীভাবে নিজের মিডিয়া সার্ভার তৈরি করবেন
ভিডিওতে ভরা একটি ফোল্ডারকে সুবিধাজনক মিডিয়া লাইব্রেরি মনে হয় না: ফাইলের নামের ধরন এক নয়, সাবটাইটেল আলাদা ফাইলে থাকে এবং সঠিক পর্ব খুঁজতে হয় হাতে। Jellyfin এমন আর্কাইভকে পোস্টার, বিবরণ, ব্যবহারকারী প্রোফাইল এবং প্লেব্যাকের অগ্রগতি-সহ ব্যক্তিগত স্ট্রিমিং পরিষেবায় রূপান্তর করে।
তবে Jellyfin সাবস্ক্রিপশন বিক্রি করে না এবং প্রস্তুত কনটেন্ট ক্যাটালগও দেয় না। এটি আপনার নিজের ফাইল নিয়ে কাজ করে এবং হোম কম্পিউটার, NAS অথবা VPS-এ চালানো যায়। নিচে এর বৈশিষ্ট্য, সার্ভারের প্রয়োজনীয়তা এবং ডোমেইন নাম ও HTTPS ব্যবহার করে Ubuntu-তে ইনস্টল করার পদ্ধতি দেখানো হবে।
Jellyfin কী এবং কেন এটি প্রয়োজন হতে পারে
Jellyfin একটি বিনামূল্যের ওপেন-সোর্স মিডিয়া সার্ভার। সার্ভারটি সিনেমা, টিভি অনুষ্ঠান, সংগীত, ছবি এবং অন্যান্য কনটেন্টের সূচি তৈরি করে, আর ক্লায়েন্ট অ্যাপ ফোন, কম্পিউটার বা টেলিভিশনে সেগুলো চালায়।
ফোল্ডার স্ক্যান করার পর Jellyfin পোস্টার ও বিবরণ ডাউনলোড করে, অনুষ্ঠানগুলোকে সিজন অনুযায়ী সাজায়, প্লেব্যাকের অগ্রগতি মনে রাখে এবং “Continue Watching” বিভাগ দেখায়। পরিবারের সদস্যদের জন্য আলাদা স্থানীয় প্রোফাইল তৈরি করা যায়, লাইব্রেরিতে প্রবেশাধিকার সীমিত করা যায় এবং প্যারেন্টাল কন্ট্রোল কনফিগার করা যায়। Quick Connect ব্যবহার করলে দীর্ঘ পাসওয়ার্ড না লিখে ছোট একটি কোড দিয়ে টেলিভিশনে সাইন ইন করা যায়।
Android, iOS, Android TV, Roku, webOS, Tizen, Xbox এবং ডেস্কটপ কম্পিউটারের জন্য ক্লায়েন্ট পাওয়া যায়। Jellyfin একটি ওয়েব ইন্টারফেস এবং Kodi ইন্টিগ্রেশনও দেয়।
Jellyfin সংগীত, IPTV, টিভি টিউনার এবং লাইভ টিভি রেকর্ডিংও সমর্থন করে। SyncPlay একাধিক ব্যবহারকারীর প্লেব্যাক সমন্বয় করে, আর প্লাগইন সাবটাইটেল, নতুন মেটাডেটা উৎস ও বিভিন্ন ইন্টিগ্রেশন যোগ করে।
Jellyfin নিজে থেকে সিনেমা খোঁজে বা ডাউনলোড করে না। সার্ভারের মালিকের কাছে আগে থেকেই থাকা কনটেন্টই এটি শুধু সাজায় এবং স্ট্রিম করে।
Jellyfin বনাম Plex: প্রধান পার্থক্য
দুটি সমাধানই স্থানীয় সংগ্রহকে মিডিয়া পরিষেবায় রূপান্তর করে, কিন্তু তাদের মডেল আলাদা।
| প্যারামিটার | Jellyfin | Plex |
|---|---|---|
| Source code | ওপেন সোর্স | প্রোপ্রাইটারি |
| Premium features | সার্ভার ও অফিসিয়াল ক্লায়েন্টে কোনো পেইড স্তর নেই | কিছু ফিচার সাবস্ক্রিপশন প্ল্যানের ওপর নির্ভর করে |
| Central account | প্রয়োজন নেই | প্রদানকারীর ইকোসিস্টেম ব্যবহার করে |
| Remote access | মালিক ডোমেইন, রিভার্স প্রক্সি বা VPN কনফিগার করেন | আরও প্রস্তুত ব্যবস্থা দেয় |
| Control over data | সর্বোচ্চ | অবকাঠামোর একটি অংশ প্রদানকারী নিয়ন্ত্রণ করে |
স্বাধীনতা, গোপনীয়তা এবং সাবস্ক্রিপশন না থাকার কারণে অনেকে Jellyfin বেছে নেন। অন্যদিকে, সবচেয়ে সহজ সেটআপ এবং সব ডিভাইসে ধারাবাহিকভাবে পরিপাটি অ্যাপ যদি অগ্রাধিকার হয়, Plex বেশি সুবিধাজনক হতে পারে।
Direct Play নাকি transcoding: কোনটি সার্ভারে বেশি চাপ ফেলে
Jellyfin-এর কর্মক্ষমতা লাইব্রেরির আকারের চেয়ে প্লেব্যাকের পদ্ধতির ওপর বেশি নির্ভর করে।
| মোড | কী ঘটে | লোড |
|---|---|---|
| Direct Play | সার্ভার মূল ফাইল পাঠায় | কম |
| Direct Stream | কনটেইনার বা একটি ট্র্যাক পরিবর্তন করা হয় | কম বা মাঝারি |
| Transcoding | চলার সময় কোডেক, রেজোলিউশন বা বিটরেট পরিবর্তন করা হয় | বেশি |
টেলিভিশন যদি ফাইলের কোডেক, অডিও ও সাবটাইটেল সমর্থন করে, তাহলে সার্ভার প্রায় কোনো CPU ব্যবহার করে না। ক্লায়েন্ট ফরম্যাটটি চালাতে না পারলে, সংযোগে কম বিটরেট দরকার হলে অথবা সাবটাইটেল ছবির মধ্যে স্থায়ীভাবে বসাতে হলে সমস্যা শুরু হয়। তখন Jellyfin FFmpeg চালু করে এবং ভিডিওটি রিয়েল টাইমে ট্রান্সকোড করে।
4K, HEVC, HDR এবং HDR থেকে SDR রূপান্তর বিশেষভাবে বেশি সম্পদ দাবি করে। গ্রাফিক্স প্রসেসরবিহীন একটি সাধারণ VPS-এ অনেক ভার্চুয়াল CPU কোর থাকলেও সমস্যা হতে পারে। তাই সামঞ্জস্যপূর্ণ ফরম্যাট এবং Direct Play ব্যবহার করলে পরবর্তী সার্ভার প্ল্যানে যাওয়ার চেয়ে বেশি সাশ্রয় হতে পারে।
Jellyfin-এর জন্য কেমন সার্ভার প্রয়োজন
সাধারণ ইনস্টলেশনের জন্য অফিসিয়াল সুপারিশ প্রায় 8 GB RAM। গ্রাফিক্যাল ইন্টারফেস ছাড়া Linux-এ ছোট সার্ভার 4 GB দিয়েও চলতে পারে। অপারেটিং সিস্টেম, ডেটাবেস, ছবি, ক্যাশ এবং অস্থায়ী ফাইলের জন্য দ্রুত ডিস্ক দরকার; মিডিয়া লাইব্রেরি আলাদাভাবে রাখা হয় এবং সাধারণত অধিকাংশ জায়গা দখল করে।
| পরিস্থিতি | প্রাথমিক কনফিগারেশন | মন্তব্য |
|---|---|---|
| Music and one 1080p Direct Play stream | 2 vCPU, 4 GB RAM | নেটওয়ার্ক ও ডিস্কের গতি বেশি গুরুত্বপূর্ণ |
| Small family media library | 4 vCPU, 8 GB RAM | সামঞ্জস্যপূর্ণ ফরম্যাট ব্যবহার করা ভালো |
| Occasional 1080p transcoding | 4–8 high-performance vCPU or a GPU | লোড কোডেকের ওপর নির্ভর করে |
| Several 4K/HDR streams | Modern Intel iGPU or a graphics card | শুধু CPU-নির্ভর সাধারণ VPS উপযুক্ত নয় |
ট্রাফিকের হিসাবও রাখুন: 20 Mbps-এর একটি স্ট্রিম প্রতি ঘণ্টায় প্রায় 9 GB ডেটা স্থানান্তর করে। প্রতিদিন দেখলে মাসে দ্রুত কয়েকশ গিগাবাইট ব্যবহার হয়ে যেতে পারে।
হোম সার্ভার নাকি VPS
মাল্টি-টেরাবাইট সংগ্রহ এবং নিয়মিত হার্ডওয়্যার ট্রান্সকোডিংয়ের জন্য একটি হোম মিনি PC বা NAS বেশি সাশ্রয়ী। বড় ধারণক্ষমতার ড্রাইভ বসানো যায় এবং Intel Quick Sync-সমৃদ্ধ প্রসেসর বেছে নেওয়া যায়, কিন্তু দূরবর্তী অ্যাক্সেস তখন বিদ্যুৎ, বাড়ির ইন্টারনেট সংযোগ এবং পাবলিক IP ঠিকানা থাকার ওপর নির্ভর করে।
VPS-এর পাবলিক ঠিকানা ও স্থিতিশীল সংযোগ থাকে এবং এটি সারাদিন চালু থাকে। সংগীত, ছোট ভিডিও লাইব্রেরি, Direct Play এবং বিভিন্ন স্থানে থাকা ব্যবহারকারীদের জন্য এটি সুবিধাজনক। এর সীমাবদ্ধতা হলো স্টোরেজের খরচ এবং সাধারণ প্ল্যানে GPU না থাকা।
হাইব্রিড ব্যবস্থাও ব্যবহার করা যায়: ফাইল বাড়িতে থাকবে, আর VPS নিরাপদ প্রবেশদ্বার হিসেবে কাজ করবে। পাবলিক IPv4 ঠিকানা না থাকলে এই ব্যবস্থা সহায়ক, তবে প্লেব্যাকের গতি বাড়ির সংযোগের আপলোড ব্যান্ডউইথেই সীমাবদ্ধ থাকবে।
Docker Compose দিয়ে Ubuntu-তে Jellyfin ইনস্টল করা
নিচের সেটআপে Jellyfin ও Caddy একই Docker নেটওয়ার্কে চলে। 8096 পোর্ট ইন্টারনেটে প্রকাশ করা হয় না; Caddy HTTPS সংযোগ গ্রহণ করে এবং স্বয়ংক্রিয়ভাবে সার্টিফিকেট সংগ্রহ করে।
প্রথমে media.example.com-এর মতো ডোমেইনের A রেকর্ড সার্ভারের 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 enableSSH অন্য কোনো পোর্ট ব্যবহার করলে ufw enable চালানোর আগে আলাদা নিয়ম দিয়ে সেটি অনুমোদন করুন।
সার্টিফিকেট ইস্যু হওয়ার পর https://media.example.com খুলুন। Jellyfin-এর নেটওয়ার্ক সেটিংসে রিভার্স প্রক্সিটিকে trusted proxies তালিকায় যোগ করুন, যাতে বাইরের অ্যাক্সেসের সীমাবদ্ধতাগুলো সঠিকভাবে কাজ করে।
প্রাথমিক মিডিয়া লাইব্রেরি সেটআপ
সেটআপ উইজার্ডে একটি ভাষা নির্বাচন করুন, অ্যাডমিনিস্ট্রেটর তৈরি করুন এবং লাইব্রেরিগুলো যোগ করুন:
- movies —
/media/movies; - TV shows —
/media/series; - music —
/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 -d8096 পোর্ট সরাসরি প্রকাশ করবেন না। HTTPS বা VPN ব্যবহার করুন, নিয়মিত আপডেট ইনস্টল করুন এবং অবশিষ্ট ডিস্ক স্পেস পর্যবেক্ষণ করুন।
tropic.host-এর VPS-এ Jellyfin
মূলত Direct Play ব্যবহার করা ছোট মিডিয়া লাইব্রেরির জন্য 4 GB RAM-সহ Linux VPS দিয়ে শুরু করা যায়। একাধিক ব্যবহারকারী, বড় ডেটাবেস এবং অতিরিক্ত পরিষেবার জন্য 8 GB বেশি যুক্তিসংগত পছন্দ।
tropic.host থেকে VPS বেছে নেওয়ার সময় স্টোরেজের ক্ষমতা, মাসিক ট্রাফিক এবং ট্রান্সকোডিংয়ের প্রয়োজন আলাদাভাবে বিবেচনা করুন। পাবলিক IP ঠিকানা ও HTTPS-সহ সার্বক্ষণিক অ্যাক্সেসযোগ্য এন্ডপয়েন্ট হিসেবে ভার্চুয়াল সার্ভার সুবিধাজনক, কিন্তু এটি GPU সার্ভারের বিকল্প নয়। ফরম্যাট রূপান্তরসহ একাধিক 4K/HDR স্ট্রিম দরকার হলে Intel iGPU-সহ হোম সার্ভার, ডেডিকেটেড সার্ভার অথবা গ্রাফিক্স কার্ড-সমৃদ্ধ বিশেষায়িত প্ল্যান ভালো বিকল্প।
ছোট সংগ্রহ দিয়ে শুরু করুন, Jellyfin ড্যাশবোর্ডে Direct Play সেশনের অনুপাত দেখুন এবং তারপর প্রকৃত লোড অনুযায়ী CPU, RAM বা স্টোরেজ বাড়ান।
সারসংক্ষেপ
Jellyfin বাধ্যতামূলক সাবস্ক্রিপশন বা কেন্দ্রীয় অ্যাকাউন্ট ছাড়াই আপনার নিজস্ব সংগ্রহকে ব্যক্তিগত স্ট্রিমিং পরিষেবায় রূপান্তর করে। সফল ডিপ্লয়মেন্টের জন্য আগে থেকেই স্টোরেজ, ট্রাফিক এবং ট্রান্সকোডিংয়ের সম্ভাবনা হিসাব করা গুরুত্বপূর্ণ।
Direct Play ব্যবহার করা একটি ছোট সার্ভার প্রায়ই 4–8 GB RAM-এ চলতে পারে। নিয়মিত 4K/HDR প্লেব্যাকের জন্য হার্ডওয়্যার ভিডিও প্রসেসিং দরকার। কনফিগারেশন যাই হোক, HTTPS বা VPN দিয়ে বাহ্যিক অ্যাক্সেস সুরক্ষিত করুন এবং সেটিংস ও মিডিয়া লাইব্রেরি আলাদাভাবে ব্যাকআপ করুন।
FAQ
Jellyfin কি সম্পূর্ণ বিনামূল্যের?
হ্যাঁ। সার্ভার ও ক্লায়েন্ট কোনো প্রিমিয়াম প্ল্যান ছাড়াই পাওয়া যায়। শুধু হার্ডওয়্যার, VPS, ড্রাইভ, ডোমেইন নাম এবং ট্রাফিকের জন্য খরচ হতে পারে।
Jellyfin-এ কি দেখার জন্য প্রস্তুত সিনেমা ও টিভি অনুষ্ঠান থাকে?
না। ব্যবহারকারীকেই নিজের মিডিয়া ফাইল যোগ করতে হয়।
গ্রাফিক্স কার্ড ছাড়া VPS-এ কি Jellyfin চালানো যায়?
হ্যাঁ, যদি বেশিরভাগ ফাইল Direct Play-এর মাধ্যমে চলে। ঘন ঘন 4K ও HDR ট্রান্সকোডিংয়ের জন্য উপযুক্ত iGPU বা গ্রাফিক্স কার্ডসহ সার্ভার দরকার।
Jellyfin-এর কত RAM প্রয়োজন?
একটি ছোট Linux সার্ভার 4 GB RAM-এ চলতে পারে। পারিবারিক মিডিয়া লাইব্রেরি ও একাধিক ব্যবহারকারীর জন্য 8 GB বেশি উপযুক্ত লক্ষ্য।
ইন্টারনেটের মাধ্যমে Jellyfin-এ নিরাপদে কীভাবে প্রবেশ করব?
রিভার্স প্রক্সির মাধ্যমে ডোমেইন ও HTTPS ব্যবহার করুন, অথবা VPN ব্যবহার করুন। 8096 পোর্ট সরাসরি প্রকাশ করবেন না এবং ন্যূনতম অনুমতিসহ আলাদা ব্যবহারকারী অ্যাকাউন্ট তৈরি করুন।
