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

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. OBS Studio:基于开源的OBS Studio提供了一个强大的直播系统。它支持多种平台,包括Windows、Mac和Linux,并且可以与许多流媒体平台集成。 2. XSplit Broadcaster:这是一个流行的直播软件,它提供了一套强大的功能,包括视频、音频和图像处理工具。XSplit Broadcaster支持Windows平台。 3. Streamlabs OBS:这是一款基于OBS Studio的直播软件,它提供了一套易于使用的界面和许多内置功能,包括捐赠、订阅和警报提示。 4. Jitsi Meet:这是一个基于WebRTC技术的开源视频会议系统。它支持多个视频流,可以用于直播活动、在线课程和虚拟会议等场景。 5. PeerTube:这是一个基于P2P技术的开源视频分享平台,它允许用户上传、共享和观看视频PeerTube可以用于直播活动、在线课程和视频博客等场景。 6. Open Broadcaster Software:这是一款跨平台的开源直播软件,它提供了一套强大的功能,包括视频捕获、音频捕获和场景切换等工具。 7. Kurento:这是一个基于WebRTC技术的开源流媒体服务器,它允许用户在浏览器中进行视频会议、直播和音频处理等操作。 8. MediaSoup:这是一个基于WebRTC技术的开源流媒体服务器,它支持多个视频流、编解码器和房间等功能。 9. Janus:这是一个基于WebRTC技术的开源流媒体服务器,它允许用户在浏览器中进行视频会议、直播和音频处理等操作。 10. Red5:这是一个基于Java的开源流媒体服务器,它支持多种流媒体协议,包括RTMP、HLS和WebRTC等。Red5可以用于直播活动、在线课程和虚拟会议等场景。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值