Kiến Thức Linux Linux Nâng Cao

Hướng dẫn cài đặt Jellyfin Media Server trên Debian 12

rsz_congdonlinux-jellyfin_media_server

Jellyfin là phần mềm miễn phí để xây dựng một media server. Nó cho phép bạn thu thập, quản lý và truyền phát các tệp phương tiện của mình từ nhiều thiết bị hoặc ứng dụng. Jellyfin là một ứng dụng miễn phí và tự lưu trữ có thể được cài đặt trên máy chủ, do đó bạn có thể tạo máy chủ phương tiện của riêng mình trong môi trường cục bộ như tại nhà của bạn, sau đó cho phép nhiều máy khách và thiết bị truy cập tất cả các tệp phương tiện của bạn.

Jellyfin là một máy chủ tệp phương tiện thay thế cho máy chủ độc quyền như Emby và Plex. Nó cho phép bạn quản lý các tập tin media từ mọi thiết bị và mọi nơi.

Hướng dẫn này sẽ chỉ cho bạn cách cài đặt máy chủ phương tiện Jellyfin trên Debian 12. Bạn sẽ cài đặt Jellyfin thông qua gói nhị phân dựng sẵn và bảo mật nó bằng UFW (Tường lửa không phức tạp), chứng chỉ SSL/TLS từ Letsencrypt và reverse proxy  Apache2.

Yêu Cầu

Để bắt đầu quá trình, hãy đảm bảo bạn có những điều sau:

  • Máy chủ Debian 12 có bộ nhớ 2 hoặc 4 GB.
  • User root có đặc quyền quản trị viên.
  • Một tên miền trỏ đến địa chỉ IP của máy chủ.

Thêm Jellyfin Repository

Máy chủ phương tiện Jellyfin có thể được cài đặt theo nhiều cách, thủ công hoặc thông qua gói dựng sẵn có sẵn cho hầu hết các bản phân phối Linux. Trong bước đầu tiên này, bạn sẽ thêm kho lưu trữ Jellyfin vào máy chủ Debian của mình.

Trước tiên, hãy chạy lệnh apt sau để cài đặt các phần phụ thuộc vào máy Debian của bạn.

sudo apt install apt-transport-https ca-certificates gnupg curl -y

Sau khi cài đặt xong các phần phụ thuộc, hãy thực thi lệnh sau để thêm khóa GPG của kho lưu trữ Jellyfin. Khóa này sẽ được lưu trữ tại /etc/apt/keyrings/jellyfin.gpg.

sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://repo.jellyfin.org/jellyfin_team.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/jellyfin.gpg

Bây giờ hãy thực hiện lệnh bên dưới để thêm kho lưu trữ thạch vào máy chủ Debian của bạn. Sau khi thực thi lệnh, tệp kho lưu trữ /etc/apt/sources.list.d/jellyfin.sources sẽ được tạo.

cat <<EOF | sudo tee /etc/apt/sources.list.d/jellyfin.sources
Types: deb
URIs: https://repo.jellyfin.org/$( awk -F'=' '/^ID=/{ print $NF }' /etc/os-release )
Suites: $( awk -F'=' '/^VERSION_CODENAME=/{ print $NF }' /etc/os-release )
Components: main
Architectures: $( dpkg --print-architecture )
Signed-By: /etc/apt/keyrings/jellyfin.gpg
EOF

Cuối cùng, cập nhật và làm mới chỉ mục gói Debian của bạn bằng lệnh apt update bên dưới.

sudo apt update

Bạn sẽ thấy kho lưu trữ Jellyfin được thêm vào danh sách kho lưu trữ hệ thống.

Cài đặt và quản lý Jellyfin

Với kho lưu trữ Jellyfin đã được thêm vào, bạn đã sẵn sàng cài đặt máy chủ phương tiện Jellyfin. Hoàn thành các bước này để cài đặt Jellyfin và tìm hiểu cách quản lý dịch vụ Jellyfin qua systemctl.

Thực hiện lệnh cài đặt apt bên dưới để cài đặt máy chủ phương tiện Jellyfin. Nhập y để xác nhận và nhấn ENTER để tiếp tục.

sudo apt install jellyfin

Sau khi cài đặt, đảm bảo dịch vụ Jellyfin đang chạy và được bật bằng lệnh bên dưới.

sudo systemctl is-enabled jellyfin
sudo systemctl status jellyfin

Nếu đang chạy, bạn sẽ thấy đầu ra active (running). Khi được bật, đầu ra bạn sẽ nhận được sẽ được bật. Điều này có nghĩa là Jellyfin sẽ tự động khởi động khi hệ thống khởi động.

Theo mặc định, Jellyfin đang chạy trên localhost với cổng 8096. Thực thi lệnh ss bên dưới để xác minh danh sách cổng trên hệ thống Debian của bạn.

ss -tulpn

Bạn có thể thấy cổng 8096 được máy chủ phương tiện Jellyfin sử dụng.

Cuối cùng, chạy lệnh systemctl sau để bắt đầu, dừng hoặc khởi động lại dịch vụ Jellyfin.

sudo systemctl start jellyfin
sudo systemctl stop jellyfin
sudo systemctl restart jellyfin

Cài đặt bảo mật với UFW

Trong phần sau, bạn sẽ bảo mật máy chủ phương tiện Jellyfin của mình thông qua UFW. Bạn sẽ cài đặt UFW, sau đó mở giao thức HTTP và HTTPS để máy khách truy cập. Bạn phải mở giao thức HTTP và HTTPS vì bạn sẽ sử dụng Apache2 làm reverse proxy.

Đầu tiên, cài đặt UFW thông qua lệnh apt install bên dưới.

sudo apt install ufw -y

Sau khi cài đặt UFW, hãy chạy lệnh ufw bên dưới để thêm dịch vụ OpenSSH, sau đó khởi động và bật UFW.

sudo ufw allow OpenSSH
sudo ufw enable

Nhập “y” khi được nhắc và UFW sẽ chạy và được bật.

Bây giờ hãy chạy lệnh bên dưới để thêm cấu hình WWW Full và xác minh trạng thái UFW. Cấu hình WWW Full sẽ mở cả giao thức HTTP và HTTPS trên hệ thống Debian của bạn.

sudo ufw allow "WWW Full"
sudo ufw status

Đầu ra phải chỉ ra rằng UFW đang hoạt động với cấu hình OpenSSH và WWW Full được bật.

Cài đặt và định cấu hình Apache2 làm Reverse Proxy

Trong hướng dẫn này, bạn sẽ chạy máy chủ phương tiện Jellyfin trong Apache2 dưới dạng proxy ngược. Bạn cũng sẽ bảo mật cài đặt của mình bằng chứng chỉ SSL/TLS được tạo thông qua Certbot và Letsencrypt.

Bây giờ, hãy hoàn thành các tác vụ sau: cài đặt Apache2 và Certbot, tạo chứng chỉ SSL/TLS và tạo cấu hình máy chủ ảo Apache2 cho máy chủ phương tiện Jellyfin.

Cài đặt Apache2 và Certbot

Đầu tiên, chạy lệnh sau để cài đặt máy chủ web Apache2 và Certbot. Gõ y để xác nhận và nhấn ENTER.

sudo apt install apache2 certbot

Sau khi cài đặt xong, dịch vụ Apache2 sẽ chạy và được bật theo mặc định. Hãy xác minh bằng cách sử dụng lệnh systemctl bên dưới.

sudo systemctl is-enabled apache2
sudo systemctl status apache2

Đầu ra được bật cho biết dịch vụ Apache2 sẽ tự động khởi động khi khởi động. Và đầu ra active (running)  cho biết trạng thái dịch vụ đang chạy.

Tạo chứng chỉ SSL/TLS với Certbot

Trước khi tạo chứng chỉ SSL/TLS, hãy kích hoạt một số mô-đun Apache2 thông qua lệnh a2enmod và khởi động lại dịch vụ Apache2.

sudo a2enmod proxy proxy_http ssl proxy_wstunnel remoteip http2 headers
sudo systemctl restart apache2

Bây giờ hãy chạy lệnh sau để tạo một thư mục mới /var/www/html/jellyfin/public_html và thay đổi quyền sở hữu đối với người dùng và nhóm dữ liệu www. Thư mục này sẽ được sử dụng làm thư mục web-root tạm thời để tạo chứng chỉ SSL/TLS.

sudo mkdir -p /var/www/html/jellyfin/public_html
sudo chown -R www-data:www-data /var/www/html/jellyfin/public_html

Tiếp theo, chạy lệnh certbot bên dưới để tạo chứng chỉ SSL/TLS mới. Đảm bảo thay đổi địa chỉ email và tên miền trước khi thực hiện lệnh.

sudo certbot certonly --agree-tos --email [email protected] --no-eff-email --webroot -w /var/www/html/jellyfin/public_html -d media.hwdomain.io

Sau quá trình này, chứng chỉ SSL/TLS của bạn sẽ có trong thư mục /etc/letsencrypt/live/domain.com. Tệp fullchain.pem là khóa chung và privkey.pem là khóa riêng tư.

Định cấu hình Apache2 làm Proxy ngược

Tạo cấu hình máy chủ ảo mới /etc/apache2/sites-available/jellyfin.conf bằng lệnh trình chỉnh sửa nano sau.

sudo nano /etc/apache2/sites-available/jellyfin.conf

Chèn cấu hình bên dưới và đảm bảo thay đổi tên miền, đường dẫn của chứng chỉ SSL/TLS và địa chỉ IP máy chủ bằng thông tin của bạn. Bằng cách này, bạn sẽ thiết lập Apache2 làm proxy ngược cho máy chủ phương tiện Jellyfin đang chạy trên cổng 8096.

<VirtualHost *:80>
    ServerName media.hwdomain.io

    # Comment to prevent HTTP to HTTPS redirect
    Redirect permanent / https://media.hwdomain.io/

    ErrorLog /var/log/apache2/media.hwdomain.io-error.log
    CustomLog /var/log/apache2/media.hwdomain.io-access.log combined
</VirtualHost>

# If you are not using an SSL certificate, replace the 'redirect'
# line above with all lines below starting with 'Proxy'
<IfModule mod_ssl.c>
<VirtualHost *:443>
    ServerName media.hwdomain.io
    # This folder exists just for certbot(You may have to create it, chown and chmod it to give apache permission to read it)
    DocumentRoot /var/www/html/jellyfin/public_html

    ProxyPreserveHost On

    # Letsencrypt's certbot will place a file in this folder when updating/verifying certs
    # This line will tell Apache to not to use the proxy for this folder.
    ProxyPass "/.well-known/" "!"

    # Tell Jellyfin to forward that requests came from TLS connections
    RequestHeader set X-Forwarded-Proto "https"
    RequestHeader set X-Forwarded-Port "443"

    ProxyPass "/socket" "ws://192.168.10.15:8096/socket"
    ProxyPassReverse "/socket" "ws://192.168.10.15:8096/socket"

    ProxyPass "/" "http://192.168.10.15:8096/"
    ProxyPassReverse "/" "http://192.168.10.15:8096/"

    SSLEngine on
    SSLCertificateFile /etc/letsencrypt/live/media.hwdomain.io/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/media.hwdomain.io/privkey.pem
    Protocols h2 http/1.1

    # Enable only strong encryption ciphers and prefer versions with Forward Secrecy
    SSLCipherSuite HIGH:RC4-SHA:AES128-SHA:!aNULL:!MD5
    SSLHonorCipherOrder on

    # Disable insecure SSL and TLS versions
    SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1

    ErrorLog /var/log/apache2/media.hwdomain.io-error.log
    CustomLog /var/log/apache2/media.hwdomain.io-access.log combined
</VirtualHost>
</IfModule>

Lưu tệp và thoát khỏi trình chỉnh sửa khi hoàn tất.

Tiếp theo, hãy chạy lệnh a2ensite bên dưới để kích hoạt máy chủ ảo jellyfin.conf, sau đó xác minh cú pháp Apache2 của bạn.

sudo a2ensite jellyfin.conf
sudo apachectl configtest

Nếu có cú pháp Apache2 phù hợp, bạn sẽ nhận được kết quả Syntax OK.

Bây giờ hãy khởi động lại dịch vụ Apache2 bằng lệnh bên dưới để áp dụng các thay đổi. Quá trình cài đặt Jellyfin của bạn phải đang chạy và được bảo mật theo proxy ngược Apache2.

sudo systemctl restart apache2

Dùng trình duyệt web của bạn và truy cập tên miền cài đặt Jellyfin của bạn, chẳng hạn như https://media.hwdomain.io/. Nếu cấu hình thành công, bạn sẽ nhận được trình hướng dẫn cài đặt Jellyfin như sau:

Cài đặt máy chủ truyền thông Jellyfin

Trong bước tiếp theo, bạn sẽ hoàn tất cấu hình máy chủ phương tiện Jellyfin thông qua trình hướng dẫn cài đặt.

Trước tiên, hãy chọn ngôn ngữ mặc định cho quá trình cài đặt Jellyfin của bạn và nhấp vào Next..

Bây giờ, hãy tạo người dùng quản trị mới để cài đặt Jellyfin của bạn. Nhập tên người dùng và mật khẩu của bạn, sau đó nhấp vào Next.

Đối với các thư viện phương tiện, bạn có thể định cấu hình chúng sau. Nhấn Next để tiếp tục.

Chọn ngôn ngữ Metadata ưa thích cho thư viện của bạn và nhấp vào Next.

Chọn tùy chọn Cho phép kết nối từ xa để cho phép truy cập từ xa vào máy chủ phương tiện truyền thông Jellyfin của bạn. Ngoài ra, bạn có thể kích hoạt ánh xạ cổng bằng cách chọn tùy chọn. Sau đó, hãy nhấp vào  Next.

Nếu cấu hình của bạn thành công, bạn sẽ nhận được thông báo You’re Done!.. Nhấp vào Finish để hoàn tất quá trình cài đặt thạch.

Bây giờ, bạn sẽ được chuyển hướng đến trang đăng nhập Jellyfin. Nhập người dùng và mật khẩu quản trị viên của Jellyfin, sau đó nhấp vào  Sign In.

Nếu mọi việc suôn sẻ, bạn sẽ có bảng điều khiển quản trị Jellyfin như thế này:

Cuối cùng, nhấp vào menu Dashboard trong phần Administration. Bạn sẽ thấy thông tin chi tiết về cài đặt máy chủ phương tiện Jellyfin của mình:

Phần kết luận

Để kết thúc hướng dẫn này, bạn đã hoàn tất quá trình cài đặt máy chủ phương tiện Jellyfin trên Debian 12 với proxy ngược Apache2 và SSL/TLS từ Letsencrypt. Bạn cũng đã bảo mật máy chủ Jellyfin của mình bằng UFW và hoàn thành cấu hình cơ bản của máy chủ phương tiện Jellyfin. Bạn có thể tạo thư viện phương tiện mới và tải các tệp phương tiện của mình lên Jellyfin.

Đăng ký liền tay Nhận Ngay Bài Mới

Subscribe ngay

Cám ơn bạn đã đăng ký !

Lỗi đăng ký !

Add Comment

Click here to post a comment

Đăng ký liền tay
Nhận Ngay Bài Mới

Subscribe ngay

Cám ơn bạn đã đăng ký !

Lỗi đăng ký !