简介
PeerTube
是一个视频上传、分享服务平台,这个项目是建立在webtorrent
这个项目和ActivityPub
协议;架构很灵活,可以支持自建服务器,web
版本的bittorrent
分发视频,简而言之,就是建立了一个去中心化的,在线版的快播。
- 每个
peertube
节点称之为一个Instance
。 - 一个
Instance
可以提供类似youtube
的服务,可以开放用户注册,上传视频。 - 多个
Instance
之间通过bittorent
共享服务。 - 用户访问
Instance
时,多个用户通过webtorrent
来交换数据,变身seeds
,从而减轻服务器压力,提高车速。 - 如果只有一个用户观看,
Instance
自动变成seeds
。 - 支持
ActivityPub
协议,后续可以搭建去中心化的评论平台之类的。 Github
项目地址:https://github.com/Chocobozzz/PeerTube
截图
安装
本教程适用于CentOS
、Debian
、Ubuntu
系统,内存至少为1G
,并在Debian 8 X64
下完美通过。
1、安装Docker和Docker Compose
#安装Docker
curl -sSL https://get.docker.com/ | sh
service docker start
#安装Docker Compose
curl -L https://github.com/docker/compose/releases/download/1.17.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
2、添加虚拟内存
如果你的内存足够的大,这步可以跳过。
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
3、下载PeerTube并配置
git clone https://github.com/Chocobozzz/PeerTube.git
如果提示git
不存在的,运行:
#Debian/Ubuntu系统
apt-get -y install git
#CentOS/RHEL系统
yum -y install git
修改docker-compose.yml
文件,并将内部端口9000
暴露出来,使其映射到其它外部端口。
cd /root/PeerTube/support/docker/production/
nano docker-compose.yml
编辑文件,将PEERTUBE_HOSTNAME
参数后面写成你的域名,并在文件里添加ports
代码:
#前面的端口随便填
ports:
- "8000:9000"
#示例
version: "3.3"
services:
peertube:
ports:
- "8000:9000"
build:
4、运行容器
docker-compose up
如果遇到错误Error: EACCES: permission denied, mkdir '/data/logs'
,使用Ctrl+c
关闭,并运行:
chown -R 991:991 data/
然后后台启动
docker-compose up -d
然后可以进入http://IP:8000
查看界面了。
5、配置https访问
为了方便,这里使用Caddy
反代,并自动添加ssl
证书。
安装Caddy
wget -N --no-check-certificate https://raw.githubusercontent.com/iiiiiii1/doubi/master/caddy_install.sh && chmod +x caddy_install.sh && bash caddy_install.sh
#备用地址
wget -N --no-check-certificate https://toot.su/usr/shell/Caddy/caddy_install.sh && chmod +x caddy_install.sh && bash caddy_install.sh
编辑配置文件
#以下全部内容是一个整体,修改域名、IP、邮箱后一起复制到SSH运行!
echo "https://xx.com {
tls admin@moerats.com
proxy / 127.0.0.1:8000 {
header_upstream Connection {>Connection}
header_upstream Upgrade {>Upgrade}
header_upstream Host {host}
header_upstream X-Real-IP {remote}
header_upstream X-Forwarded-For {remote}
header_upstream X-Forwarded-Port {server_port}
header_upstream X-Forwarded-Proto {scheme}
}
log /var/log/caddy.log
gzip
}" > /usr/local/caddy/Caddyfile
启动Caddy
/etc/init.d/caddy restart
最后就可以通过域名https
访问了。
6、查找管理员账号
管理员默认账号为root
,密码需要查看日志。
#查看日志
cat /root/PeerTube/support/docker/production/docker-volume/data/logs/peertube.log
#会输出一些信息,找到如下信息,密码就是xxxxxx
{"message":"Username: root","level":"info","timestamp":"}
{"message":"User password: xxxxxxxxxx","level":"info","timestamp":"}