【前言】:
视频类网站我们见过很多种,今天分享给大家一个比较有意思的视频平台 -PeerTube。最近趁着腾讯云官网搞活动期间入手一台轻量应用服务器,本文就利用腾讯云Lighthouse实例,快速搭建一个去中心化的视频分享服务平台。
【项目介绍】:
PeerTube是一个视频上传、分享服务平台,这个项目相较于传统的视频平台,最大的优点就是采用webtorrent技术,网站管理员可以打开P2P功能,当多人观看同一个视频时,系统根据视频文件生成的种子就会在用户的设备浏览器上自动做种,在大量用户观看同一个视频时可以极大的减少服务器的带宽压力,同时用户的使用体验也能得到一定的提升。
需要了解关于此项目的更多资料可以参考下面资料:
- github项目地址:https://github.com/Chocobozzz/PeerTube
- 使用文档:https://docs.joinpeertube.org/
【服务器准备工作】:
本次教程采用的是腾讯云轻量服务器2C4G8M免费升配之后的4C4G8M轻量服务器。最近腾讯官方搞了一个虎年回馈活动专场,优惠很给力,而且不限新老用户。腾讯云推出的轻量应用服务器对于零基础的学生党体验很好,价格方面也很实惠。对于新手来说,刚接触云服务器,一脸迷茫,不知道该怎么使用,轻量应用服务器对您来说可以很简单上手操作。
轻量应用服务器优点:开箱即用、面向轻量应用场景
- 支持系统镜像,提供多款系统镜像,定期维护更新
- 支持应用镜像,免费提供完美适配腾讯云的精品应用镜像
- 支持一键部署,仅需一键快速部署网站、博客、论坛等应用
- 支持应用管理,通过腾讯云控制台统一管理应用状态
- 支持独立IP,并提供高品质线路,BGP多线优化
- 支持防火墙,并支持在控制台快速管理
- 支持生态集成,可快速集成腾讯云其他云产品或服务
购买方式:轻量应用服务器专场特惠
【腾讯云】轻量新用户上云福利,2核2G4M 低至 50 元/年 起, 抓住上云好时机!
PeerTube不需要太高的配置,2C1G的配置就可以顺利搭建,但是项目比较耗费带宽和存储。感兴趣的也可以看看腾讯云官方的云硬盘,后台也可以很方便进行管理。
需要注意的是国内的服务器是需要备案后使用的,您也可以直接购买中国香港等地区的服务器无需备案就可以方便使用。
【搭建过程】:
安装Docker和Docker Compose
注意:如果采用的是国内的服务器,需要先去设置一下GitHub的代理设置。
代码语言:javascript复制#安装Docker 安装Docker Compose
curl -sSL https://get.daocloud.io/docker | sh
curl -L https://get.daocloud.io/docker/compose/releases/download/1.24.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
代码语言:javascript复制运行docker
systemctl start docker
代码语言:javascript复制添加虚拟内存 //如果你的内存足够的大,这步可以跳过
cd /var/
#获取文件块,count后面参数建议为内存的2倍
dd if=/dev/zero of=swapfile bs=1M count=2048
#创建swap文件
/sbin/mkswap swapfile
#激活swap文件
/sbin/swapon swapfile
#修改权限
chmod 0644 /var/swapfile
#开机自启
echo "/var/swapfile swap swap defaults 0 0" >>/etc/fstab
例如此处我绑定的域名是:peertube.pngs.cm
网站的根目录在:/www/wwwroot/peertube
代码语言:javascript复制进入目录
cd /www/wwwroot/peertube
下面接上面步骤继续操作,
代码语言:javascript复制获取项目配置文件
curl https://raw.githubusercontent.com/chocobozzz/PeerTube/master/support/docker/production/docker-compose.yml > docker-compose.yml
curl https://raw.githubusercontent.com/Chocobozzz/PeerTube/master/support/docker/production/.env > .env
修改配置文件
这里可以选择适合你自己的文本编辑器对.env文件进行修改,例如nano vim等
我们看下配置文件需要更改哪些内容:
代码语言:javascript复制POSTGRES_PASSWORD= #postgresql 用户的密码
PEERTUBE_DB_PASSWORD= #数据库的密码
PEERTUBE_WEBSERVER_HOSTNAME= #网站域名如peertube.pngs.cm 不用加https
#如果有邮件需求可以修改SMTP配置
PEERTUBE_SMTP_HOSTNAME=postfix
PEERTUBE_SMTP_PORT=25
PEERTUBE_SMTP_FROM=noreply@<MY DOMAIN>
PEERTUBE_SMTP_TLS=false
PEERTUBE_SMTP_DISABLE_STARTTLS=false
PEERTUBE_ADMIN_EMAIL= #此处管理员邮箱必须有,密码在初次启动时会自动创建
代码语言:javascript复制webserver 配置NGINX
#配置NGINX
mkdir -p docker-volume/nginx
curl https://raw.githubusercontent.com/Chocobozzz/PeerTube/master/support/nginx/peertube > docker-volume/nginx/peertube
代码语言:javascript复制webserver 配置ssl证书
#配置ssl证书
mkdir -p docker-volume/certbot
docker run -it --rm --name certbot -p 80:80 -v "$(pwd)/docker-volume/certbot/conf:/etc/letsencrypt" certbot/certbot certonly --standalone
代码语言:javascript复制尝试启动
docker-compose up
启动完成后,稍等片刻就可以去尝试打开网站查看效果
查看管理员账号
管理员默认账号为 root,密码需要查看日志获取。
代码语言:javascript复制docker-compose logs peertube | grep -A1 root
peertube_1 | [example.com:443] 2019-11-16 04:26:06.082 info: Username: root
peertube_1 | [example.com:443] 2019-11-16 04:26:06.083 info: User password: ********
管理员账号是前面配置文件设置的 PEERTUBE_ADMIN_EMAIL
下面可以简单进行网站配置
网站信息可以在管理页面中的配置--信息中进行修改,支持markdown格式:
转码
HLS具有天然的p2p优势,所以我们可以选择利用ffmpeg对上传的视频进行切片
分辨率可以自定义选择:
需要注意的是上面的转码线程数选择的是自动,这样可以最大化利用服务器性能,但是有可能会对网页的稳定性造成一定的影响。
开启直播串流
上传视频
上传视频可以修改标题,标签,频道,类别,许可,语言,是否公开,是否含有敏感内容,是否转码。
需要注意的是必须等视频上传完毕之后才能发布,中途不能中断否则就要重新上传并撰写发布信息。
想要下载视频可以视频上右键,点击复制磁力链接然后用bt软件进行下载(webtorrent模式),
你也可以选择分享实例上的视频,可以通过iframe放到其它网站上。自定义配置也够丰富,感兴趣的可以尝试利用轻量云服务器搭建体验下。