PeerTube 安裝教程:如何搭建視頻分享平臺

文章首發於公號「阿拉平平」

最近在 GitHub 上看到了一個比較有意思的視頻平臺 PeerTube,與一般的視頻平臺不同,它的目標是打造一個去中心化的視頻平臺,即使某個節點出現問題,也不會影響觀衆觀看視頻。本文將介紹 PeerTube 的安裝與使用方法。

項目介紹

PeerTube [1] 是一個開源、分佈式、可互聯的視頻平臺,通過點對點網絡來減少單一服務器的負載。任何人都可以在服務器上搭建 PeerTube,共享上傳的視頻。

下載安裝

目前 PeerTube 的最新版本爲 v3.0.1,可以通過源碼或者 docker 來安裝。這裏我準備採用容器的方式,將項目部署在一臺 CentOS 7.8 的虛擬機上。

部署前需要安裝 dockerdocker-compose。安裝好後,創建並進入 PeerTube 的工作目錄:

[root@localhost ~]# mkdir /opt/peertube/
[root@localhost ~]# cd /opt/peertube/

編排文件

下載最新的編排文件 docker-compose.yaml

[root@localhost peertube]# curl https://raw.githubusercontent.com/chocobozzz/PeerTube/develop/support/docker/production/docker-compose.yml > docker-compose.yml

這個文件將創建以下服務,可根據實際情況進行調整:

  • webserver:web 服務,供瀏覽器訪問。
  • peertube:後端服務,提供核心內容。
  • redis:後端數據存儲。
  • postgres:後端數據庫。
  • postfix:提供郵件服務。
  • certbot:自動續期 Let’s Encrypt 證書。

.env

下載最新的 .env 文件:

[root@localhost peertube]# curl https://raw.githubusercontent.com/Chocobozzz/PeerTube/develop/support/docker/production/.env > .env

修改以下參數:

  • <MY POSTGRES USERNAME>:數據庫的用戶名。
  • <MY POSTGRES PASSWORD>:數據庫的密碼。
  • <MY DOMAIN>:域名,不用加 https://
  • <MY EMAIL ADDRESS>:郵箱地址。

webserver

webserver 本質是一個 nginx 服務,所以需要下載配置文件 peertube

[root@localhost peertube]# mkdir -p docker-volume/nginx
[root@localhost peertube]# curl https://raw.githubusercontent.com/Chocobozzz/PeerTube/develop/support/nginx/peertube > docker-volume/nginx/peertube

如果要使用本地的 nginx 服務,則需要修改配置文件的變量值,並註釋掉編排文件中的 webserver。

域名

搭建 PeerTube 需要一個 HTTPS 域名,如果滿足條件,可以註釋掉編排文件中的 certbot。

如果有域名,但沒有 HTTPS 證書,可以通過 certbot 生成免費的證書。

[root@localhost peertube]# mkdir -p docker-volume/certbot
[root@localhost peertube]# docker run -it --rm --name certbot -p 80:80 -v "$(pwd)/docker-volume/certbot/conf:/etc/letsencrypt" certbot/certbot certonly --standalone

由於手邊沒有域名,所以準備以 https://<ip> 來訪問,配置方法如下:

# 創建並進入目錄,192.168.128.134 爲虛擬機 IP
[root@localhost peertube]# mkdir -p docker-volume/certbot/conf/live/192.168.128.134
[root@localhost peertube]# cd docker-volume/certbot/conf/live/192.168.128.134
# 生成 HTTPS 證書
[root@localhost 192.168.128.134]# openssl genrsa -des3 -out privkey.pem 2048
[root@localhost 192.168.128.134]# openssl rsa -in privkey.pem -out privkey.pem
[root@localhost 192.168.128.134]# openssl req -new -key privkey.pem -out privkey.csr
[root@localhost 192.168.128.134]# openssl req -new -x509 -key privkey.pem -out ca.crt -days 3650
[root@localhost 192.168.128.134]# openssl x509 -req -days 3650 -in privkey.csr -CA ca.crt -CAkey privkey.pem -CAcreateserial -out fullchain.pem

啓動

全部配置完成後,運行以下命令啓動:

# 回到工作目錄並啓動
[root@localhost 192.168.128.134]# cd /opt/peertube/
[root@localhost peertube]# docker-compose up -d

服務啓動後,就可以通過瀏覽器來訪問,界面如下:

使用說明

本章將簡單演示下 PeerTube 的用法,包含:

  • 如何用 root 賬號登錄
  • 如何上傳視頻
  • 如何訂閱視頻

登錄

PeerTube 內置了一個管理員賬號,通過以下命令獲取 root 的密碼:

[root@master peertube]# docker-compose logs peertube | grep -A1 root
peertube_1   | [192.168.128.134:443] 2021-03-15 07:38:30.809 info: Username: root
peertube_1   | [192.168.128.134:443] 2021-03-15 07:38:30.809 info: User password: kegumejubikozido

登錄後的界面如下:

上傳視頻

點擊右上角的「上傳」,選擇要上傳的視頻。

上傳的視頻可以在線播放,支持下載、分享以及評論:

訂閱視頻

如果需要訂閱他人的視頻,只需在管理頁面選擇 「Instances you follow 」,點擊「Follow domain」,加入域名即可。


提交的請求需要對方允許,否則會一直處於等待中:

寫在最後

PeerTube 的機制與 BT 下載類似,多個用戶在觀看同一部視頻時,可相互連接、傳輸數據給對方,達到播放視頻加速的效果。如果大家對這個項目有興趣的話,可以查閱官方文檔 [2] 獲得更多幫助。

References

[1] PeerTube: https://github.com/Chocobozzz/PeerTube
[2] 官方文檔: https://docs.joinpeertube.org

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章