Hướng dẫn cài đặt giải pháp streaming P2P dùng Peertube

Hướng dẫn cài đặt giải pháp streaming P2P dùng Peertube

Bài viết này sẽ hướng dẫn cách cài đặt giải pháp streaming P2P dùng Peertube trên Ubuntu 20 LTS.

Peertube là một nền tảng chia sẻ video liên hợp, tự do và mã nguồn mở hoạt động với hình thức tự lưu trữ (self-hosting). Nền tảng này sử dụng giao thức ActivityPub và WebTorrent, một công nghệ P2P tiết kiệm tài nguyên cho các máy chủ cá nhân.

Dự án bắt đầu vào năm 2017 bởi một lập trình viên biệt danh Chocobozzz và được tài trợ bởi tổ chức phi lợi nhuận Framasoft ở Pháp. Mục tiêu là tạo ra một nền tảng đối đầu với các nền tảng tập quyền như YouTube, Vimeo, và Dailymotion.

Cài đặt Peertube

1. Yêu cầu cần thiết:

VPS OS Ubuntu 20 LTS đã được cài đặt các tiện ít cơ bản như: curl, unzip, vim

Nếu VPS bạn chưa cài đặt có thể thực thi lệnh sau:

apt-get install curl sudo unzip vim

Tiếp theo VPS cần được cài đặt NodeJS 14.x. Để có thể cài đặt NodeJS:

curl -fsSL https://deb.nodesource.com/setup_14.x | sudo -E bash -

sudo apt-get install -y nodejs

Sau đó VPS cần cài thêm yarn cho VPS:

npm install --global yarn

Thực hiện cài thêm Python:

apt update

apt install python3-dev python-is-python3

Cài đặt thêm các gói cần thiết:

apt install certbot nginx ffmpeg postgresql postgresql-contrib openssl g++ make redis-server git cron wget

2. Đặt thư mục và database

2.1. Tạo User:

Thực hiện tạo một người dùng mới với tên “peertube” như sau:

useradd -m -d /var/www/peertube -s /bin/bash -p peertube peertube

  • Lưu ý: Đối với đường dẫn thư mục chính chúng ta có thể thay đổi đường dẫn thư mục chính.

Tiến hành đặt password cho user “peertube” bằng cách thực thi lệnh sau:

passwd peertube

2.2. Database

Tiến hành tạo database và user peertube bên trong PostgreSQL:

cd /var/www/peertube

sudo -u postgres createuser -P peertube

Sau đó bạn sẽ được yêu cầu nhập password, bạn nên thực hiện đặt password user  peertube bên trong PostgreSQL mật khẩu này sẽ được sao chép trong tệp production.yaml. Vui lòng đừng chỉ nhấn enter nếu không nó sẽ trống.

sudo -u postgres createdb -O peertube -E UTF8 -T template0 peertube_prod

Kế tiếp bạn cần thực hiện bật các tiện ích mở rộng mà PeerTube cần:

sudo -u postgres psql -c "CREATE EXTENSION pg_trgm;" peertube_prod

sudo -u postgres psql -c "CREATE EXTENSION unaccent;" peertube_prod

3. Chuẩn bị thư mục dành cho PeerTube

Thực hiện nạp version mới nhất cho PeerTube:

VERSION=$(curl -s https://api.github.com/repos/chocobozzz/peertube/releases/latest | grep tag_name | cut -d '"' -f 4) && echo "Latest Peertube version is $VERSION"

Mở thư mục làm việc peertube, tạo một số thư mục bắt buộc:

sudo -u peertube mkdir config storage versions

sudo -u peertube chmod 750 config/

Tải xuống phiên bản mới nhất của ứng dụng Peertube, giải nén:

cd /var/www/peertube/versions

sudo -u peertube wget -q https://github.com/Chocobozzz/PeerTube/releases/download/${VERSION}/peertube-${VERSION}.zip

sudo -u peertube unzip -q peertube-${VERSION}.zip && sudo -u peertube rm peertube-${VERSION}.zip

Cài đặt Peertube:

cd /var/www/peertube

sudo -u peertube ln -s versions/peertube-${VERSION} ./peertube-latest

cd ./peertube-latest && sudo -H -u peertube yarn install --production --pure-lockfile

4. Tiến hành config PeerTube

Tiến hành sao chép file cấu hình mặc định chứa cấu hình mặc định do PeerTube cung cấp bằng cách thực thi các câu lệnh sau:

cd /var/www/peertube

sudo -u peertube cp peertube-latest/config/default.yaml config/default.yaml

Tiếp theo thực hiện sao chép file production mặc định:

cd /var/www/peertube

sudo -u peertube cp peertube-latest/config/production.yaml.example config/production.yaml

Tại đây chúng ta có thể thực hiện cấu hình chỉnh sửa file cấu hình tại config/production.yaml thiết lập các thay đổi (webserver, database, redis, smtp and admin.email) các Key được xác định tại config/production.yaml sẽ tiến hành đè lên config/default.yaml

5. Webserver

Thực hiện copy file config webserver của peertube như sau:

cp /var/www/peertube/peertube-latest/support/nginx/peertube /etc/nginx/sites-available/peertube

Sau đó đặt miền cho tệp cấu hình máy chủ web. Thay thế [peertube-domain] bằng miền cho máy chủ peertube:

sed -i 's/${WEBSERVER_HOST}/[peertube-domain]/g' /etc/nginx/sites-available/peertube

sed -i 's/${PEERTUBE_HOST}/127.0.0.1:9000/g' /etc/nginx/sites-available/peertube

Kích hoạt tệp cấu hình bằng cách tạo 1 liên kết:

ln -s /etc/nginx/sites-available/peertube /etc/nginx/sites-enabled/peertube

Để tạo chứng chỉ cho miền của bạn theo yêu cầu để https hoạt động, bạn có thể sử dụng Let’s Encrypt:

systemctl stop nginx

certbot certonly --standalone --post-hook "systemctl restart nginx"

systemctl restart nginx

6. Tiến hành kích hoạt và chạy peertube

Thực thi lệnh sau để kích hoạt peertube và để peertube khởi động cùng với hệ thống:

systemctl start peertube

systemctl enable peertube

Sau đó thực thi lệnh sau để chạy peertube:

journalctl -feu peertube

Mở trình duyệt truy cập domain lúc nảy chúng ta đã config, được kết quả như sau:

Để lấy thông tin password root để đăng nhập vào peertube chúng ta tiến hành đọc file tại /var/www/peertube/storage/logs/peertube.log bằng lệnh cat, sau đó tìm đến thông tin password trong file:

Thực hiện login vào peertube như vậy là hoàn tất quá trình cài đặt peertube:

Tiến hành xem video trên peertube:

Vậy là đã hoàn thành quá trình cài đặt peertube trên VPS OS Ubuntu 20 LTS.

Chúc các bạn thành công!

 

 

Rate This Article