Tropic Host

Jellyfin trên VPS: cài đặt máy chủ đa phương tiện của riêng bạn

10 phút đọc
Tropic
Jellyfin trên VPS: cài đặt máy chủ đa phương tiện của riêng bạn

Language: vi

Jellyfin trên VPS: cách tạo máy chủ đa phương tiện của riêng bạn

Một thư mục đầy video hiếm khi giống một thư viện đa phương tiện tiện dụng: tên tệp không nhất quán, tệp phụ đề nằm riêng và phải tự tìm tập phù hợp. Jellyfin biến kho lưu trữ như vậy thành dịch vụ phát trực tuyến cá nhân với áp phích, mô tả, hồ sơ người dùng và tiến độ xem.

Đồng thời, Jellyfin không bán gói đăng ký và không cung cấp danh mục nội dung có sẵn. Dịch vụ làm việc với tệp của bạn và có thể chạy trên máy tính gia đình, NAS hoặc VPS. Dưới đây chúng ta sẽ xem các tính năng, yêu cầu máy chủ và cách cài đặt trên Ubuntu với tên miền cùng HTTPS.

Jellyfin là gì và vì sao bạn có thể cần nó?

Jellyfin là máy chủ đa phương tiện miễn phí, mã nguồn mở. Máy chủ lập chỉ mục phim, chương trình truyền hình, nhạc, ảnh và nội dung khác, còn ứng dụng khách phát chúng trên điện thoại, máy tính hoặc TV.

Sau khi quét thư mục, Jellyfin tải áp phích và mô tả, sắp xếp chương trình theo mùa, ghi nhớ tiến độ xem và hiển thị mục “Tiếp tục xem”. Bạn có thể tạo hồ sơ cục bộ riêng cho các thành viên gia đình, giới hạn quyền truy cập thư viện và cấu hình kiểm soát phụ huynh. Quick Connect cho phép đăng nhập trên TV bằng mã ngắn thay vì nhập mật khẩu dài.

Ứng dụng khách có sẵn cho Android, iOS, Android TV, Roku, webOS, Tizen, Xbox và máy tính để bàn. Jellyfin cũng cung cấp giao diện web và tích hợp Kodi.

Jellyfin còn hỗ trợ nhạc, IPTV, bộ thu TV và ghi truyền hình trực tiếp. SyncPlay đồng bộ phát lại cho nhiều người dùng, trong khi plugin bổ sung phụ đề, nguồn siêu dữ liệu mới và các tích hợp.

Jellyfin không tự tìm hoặc tải phim. Dịch vụ chỉ sắp xếp và phát nội dung mà chủ máy chủ đã có.

Jellyfin và Plex: những khác biệt chính

Cả hai giải pháp đều biến bộ sưu tập cục bộ thành dịch vụ đa phương tiện, nhưng chúng sử dụng các mô hình khác nhau.

Tham sốJellyfinPlex
Mã nguồnMã nguồn mởĐộc quyền
Tính năng cao cấpMáy chủ và ứng dụng khách chính thức không có cấp trả phíMột số tính năng phụ thuộc gói đăng ký
Tài khoản trung tâmKhông bắt buộcSử dụng hệ sinh thái của nhà cung cấp
Truy cập từ xaChủ sở hữu cấu hình tên miền, reverse proxy hoặc VPNCung cấp nhiều cơ chế sẵn sàng hơn
Quyền kiểm soát dữ liệuTối đaMột phần hạ tầng do nhà cung cấp kiểm soát

Mọi người chọn Jellyfin vì tính độc lập, riêng tư và không có gói đăng ký. Plex có thể thuận tiện hơn khi ưu tiên hàng đầu là thiết lập đơn giản nhất và ứng dụng được hoàn thiện nhất quán trên mọi thiết bị.

Direct Play hay chuyển mã: điều gì tạo tải cho máy chủ?

Hiệu năng Jellyfin phụ thuộc vào phương thức phát lại nhiều hơn là kích thước thư viện.

Chế độĐiều xảy raTải
Direct PlayMáy chủ gửi tệp gốcThấp
Direct StreamContainer hoặc một track riêng lẻ được thay đổiThấp hoặc trung bình
TranscodingCodec, độ phân giải hoặc bitrate được thay đổi khi đang phátCao

Nếu TV hỗ trợ codec, âm thanh và phụ đề của tệp, máy chủ hầu như không dùng CPU. Vấn đề bắt đầu khi thiết bị khách không xử lý được định dạng, kết nối yêu cầu bitrate thấp hơn hoặc phụ đề phải được ghi trực tiếp lên hình ảnh. Khi đó Jellyfin khởi chạy FFmpeg và chuyển mã video theo thời gian thực.

Chuyển đổi 4K, HEVC, HDR và HDR sang SDR đặc biệt nặng. VPS thông thường không có bộ xử lý đồ họa có thể gặp khó khăn dù có nhiều lõi CPU ảo. Vì vậy, định dạng tương thích và Direct Play đôi khi giúp tiết kiệm nhiều hơn việc chuyển sang gói máy chủ tiếp theo.

Jellyfin cần loại máy chủ nào?

Khuyến nghị chính thức cho cài đặt điển hình là khoảng 8 GB RAM. Trên Linux không có giao diện đồ họa, máy chủ nhỏ có thể hoạt động với 4 GB. Cần một ổ đĩa nhanh cho hệ điều hành, cơ sở dữ liệu, hình ảnh, bộ nhớ đệm và tệp tạm; thư viện đa phương tiện được lưu riêng và thường chiếm phần lớn dung lượng.

Tình huốngCấu hình khởi điểmGhi chú
Nhạc và một luồng Direct Play 1080p2 vCPU, 4 GB RAMTốc độ mạng và đĩa quan trọng hơn
Thư viện đa phương tiện nhỏ cho gia đình4 vCPU, 8 GB RAMNên dùng định dạng tương thích
Thỉnh thoảng chuyển mã 1080p4–8 vCPU hiệu năng cao hoặc GPUTải phụ thuộc codec
Một số luồng 4K/HDRiGPU Intel hiện đại hoặc card đồ họaVPS chỉ có CPU thông thường không phù hợp

Đừng quên tính cả lưu lượng: một luồng 20 Mbps truyền khoảng 9 GB dữ liệu mỗi giờ. Nếu xem hằng ngày, mức sử dụng có thể nhanh chóng lên tới hàng trăm gigabyte mỗi tháng.

Máy chủ gia đình hay VPS?

Mini PC hoặc NAS tại nhà tiết kiệm hơn cho bộ sưu tập nhiều terabyte và việc chuyển mã bằng phần cứng thường xuyên. Bạn có thể lắp ổ dung lượng lớn và chọn bộ xử lý có Intel Quick Sync, nhưng truy cập từ xa phụ thuộc vào điện, kết nối Internet gia đình và khả năng có địa chỉ IP công khai.

VPS có địa chỉ công khai, kết nối ổn định và hoạt động suốt ngày đêm. Nó thuận tiện cho nhạc, thư viện video nhỏ, Direct Play và người dùng ở nhiều địa điểm. Hạn chế là chi phí lưu trữ và không có GPU trong các gói tiêu chuẩn.

Cũng có lựa chọn lai: tệp vẫn ở nhà, còn VPS đóng vai trò điểm vào an toàn. Cách này hữu ích khi không có IPv4 công khai, nhưng tốc độ phát vẫn bị giới hạn bởi băng thông tải lên của kết nối gia đình.

Cài Jellyfin trên Ubuntu bằng Docker Compose

Trong thiết lập dưới đây, Jellyfin và Caddy chạy trên cùng mạng Docker. Cổng 8096 không được mở ra Internet; Caddy nhận kết nối HTTPS và tự động lấy chứng chỉ.

Trước tiên, trỏ bản ghi A của tên miền, ví dụ media.example.com, đến địa chỉ IP của máy chủ.

1. Cài Docker và tạo thư mục

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/jellyfin

2. Tạo /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:

Tùy chọn :ro mount thư viện đa phương tiện ở chế độ chỉ đọc và bảo vệ tệp gốc khỏi bị xóa nhầm qua Jellyfin.

3. Tạo /opt/jellyfin/Caddyfile

media.example.com {
    reverse_proxy jellyfin:8096
}

Thay tên miền bằng tên của bạn, khởi động các container và mở những cổng cần thiết:

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

Nếu SSH dùng cổng khác, hãy cho phép cổng đó bằng một quy tắc riêng trước khi chạy ufw enable.

Sau khi chứng chỉ được cấp, hãy mở https://media.example.com. Trong cài đặt mạng Jellyfin, thêm reverse proxy vào danh sách proxy đáng tin cậy để các giới hạn truy cập bên ngoài hoạt động chính xác.

Thiết lập thư viện đa phương tiện ban đầu

Trong trình hướng dẫn thiết lập, chọn ngôn ngữ, tạo quản trị viên và thêm các thư viện:

  • phim — /media/movies;
  • chương trình truyền hình — /media/series;
  • nhạc — /media/music.

Dùng tên rõ ràng để nhận diện chính xác:

/media/movies/Movie Title (2024)/Movie Title (2024).mkv
/media/series/Series Title (2024)/Season 01/Series Title S01E01.mkv

Tạo một hồ sơ tiêu chuẩn riêng để xem và ẩn tài khoản quản trị viên khỏi màn hình đăng nhập. Chỉ cấp cho người dùng quyền truy cập những thư viện họ cần và không cho phép xóa tệp nếu không cần thiết.

Cập nhật và sao lưu

Cấu hình Jellyfin chứa người dùng, cài đặt, cơ sở dữ liệu và tiến độ xem. Trước khi cập nhật, hãy dừng container và lưu thư mục 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

Chuyển bản lưu trữ ra ngoài VPS. Sao lưu riêng các tệp đa phương tiện.

Để cập nhật, chạy:

sudo docker compose pull
sudo docker compose up -d

Không mở trực tiếp cổng 8096. Hãy dùng HTTPS hoặc VPN, cài đặt cập nhật thường xuyên và theo dõi dung lượng đĩa còn trống.

Jellyfin trên VPS của tropic.host

Với thư viện nhỏ chủ yếu dùng Direct Play, bạn có thể bắt đầu bằng VPS Linux 4 GB RAM. Với nhiều người dùng, cơ sở dữ liệu lớn và các dịch vụ bổ sung, 8 GB là lựa chọn hợp lý hơn.

Khi chọn VPS từ tropic.host, hãy đánh giá riêng dung lượng lưu trữ, lưu lượng hằng tháng và nhu cầu chuyển mã. Máy chủ ảo thuận tiện như một điểm cuối luôn sẵn sàng với IP công khai và HTTPS, nhưng không thay thế được máy chủ có GPU. Nếu cần nhiều luồng 4K/HDR kèm chuyển đổi định dạng, máy chủ gia đình có iGPU Intel, máy chủ riêng hoặc gói chuyên dụng có card đồ họa sẽ phù hợp hơn.

Bạn có thể bắt đầu với bộ sưu tập nhỏ, kiểm tra tỷ lệ phiên Direct Play trong bảng điều khiển Jellyfin rồi chỉ tăng CPU, RAM hoặc bộ nhớ theo tải thực tế.

Tóm tắt

Jellyfin biến bộ sưu tập của bạn thành dịch vụ phát trực tuyến cá nhân mà không cần gói đăng ký bắt buộc hay tài khoản trung tâm. Để triển khai thành công, cần ước tính trước dung lượng lưu trữ, lưu lượng và khả năng phải chuyển mã.

Một máy chủ nhỏ dùng Direct Play thường có thể hoạt động với 4–8 GB RAM. Phát 4K/HDR thường xuyên cần xử lý video bằng phần cứng. Dù cấu hình nào, hãy bảo vệ truy cập bên ngoài bằng HTTPS hoặc VPN và sao lưu riêng cài đặt cùng thư viện đa phương tiện.

FAQ

Jellyfin có hoàn toàn miễn phí không?

Có. Máy chủ và ứng dụng khách được cung cấp mà không cần gói cao cấp. Bạn chỉ phải trả tiền cho phần cứng, VPS, ổ đĩa, tên miền và lưu lượng.

Jellyfin có sẵn phim và chương trình truyền hình để xem không?

Không. Người dùng tự thêm các tệp đa phương tiện của mình.

Jellyfin có thể chạy trên VPS không có card đồ họa không?

Có, nếu phần lớn tệp được phát bằng Direct Play. Chuyển mã 4K và HDR thường xuyên cần máy chủ có iGPU hoặc card đồ họa phù hợp.

Jellyfin cần bao nhiêu RAM?

Máy chủ Linux nhỏ có thể chạy với 4 GB RAM. Với thư viện gia đình và nhiều người dùng, 8 GB là mục tiêu tốt hơn.

Làm thế nào để truy cập Jellyfin an toàn qua Internet?

Hãy dùng tên miền và HTTPS thông qua reverse proxy hoặc dùng VPN. Không mở trực tiếp cổng 8096, đồng thời tạo tài khoản riêng với quyền tối thiểu.