Rat's

一个去中心化的视频分享服务平台:PeerTube安装教程
简介PeerTube是一个视频上传、分享服务平台,这个项目是建立在webtorrent这个项目和ActivityP...
扫描右侧二维码阅读全文
12
2018/04

一个去中心化的视频分享服务平台:PeerTube安装教程

简介

PeerTube是一个视频上传、分享服务平台,这个项目是建立在webtorrent这个项目和ActivityPub协议;架构很灵活,可以支持自建服务器,web版本的bittorrent分发视频,简而言之,就是建立了一个去中心化的,在线版的快播。

  • 每个peertube节点称之为一个Instance
  • 一个Instance可以提供类似youtube的服务,可以开放用户注册,上传视频。
  • 多个Instance之间通过bittorent共享服务。
  • 用户访问Instance时,多个用户通过webtorrent来交换数据,变身seeds,从而减轻服务器压力,提高车速。
  • 如果只有一个用户观看,Instance自动变成seeds
  • 支持ActivityPub协议,后续可以搭建去中心化的评论平台之类的。
  • Github项目地址:https://github.com/Chocobozzz/PeerTube

截图

请输入图片描述
请输入图片描述
请输入图片描述

安装

本教程适用于CentOSDebianUbuntu系统,内存至少为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://www.moerats.com/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":"}
Vultr新用户注册送100美元/16个机房按小时计费,支持支付宝,【点击查看】。
最后修改:2019 年 07 月 19 日 05 : 32 PM

发表评论

28 条评论

  1. 小罗

    docker-compose up -d
    在运行上面这个命令的时候出现了下面的错误 系统是 centos 7
    ERROR: manifest for chocobozzz/peertube:production-buster not found: manifest unknown: manifest unknown

    1. Rat's
      @小罗

      看是不是镜像不存在,你改下docker-compose.yml文件,peertube:下面改成image: chocobozzz/peertube。然后再看看。

      还有安装方法好像有改动,你看看这个地址吧:https://github.com/Chocobozzz/PeerTube/blob/develop/support/doc/docker.md。

  2. liangmanixng

    博主能看到我评论吗?我整个项目已经跑起来,使用正常,,,,目前通过api上传视频遇到问题,不知道怎么上传文件,,,,你有试过api上传文件吗

    1. Rat's
      @liangmanixng

      没试过api,只用上传按钮传过视频,这东西好久没关注了。

  3. masha

    PEERTUBE_HOSTNAME 这个字段 在文件里面找不到?楼主是不是版本不一样

    1. Rat's
      @masha

      很久没研究了,方法都一样,你先自己试试。

  4. 1

    没有绑定域名搞得了吗现在还不会绑定域名汗( ̄◇ ̄;)

    1. Rat's
      @1

      不绑域名也可以。

  5. 洛汐

    然而我安装不了

    1. Rat's
      @洛汐

      什么系统,哪个步骤出了问题?

      1. 洛汐
        @Rat's

        它说不支持什么的,在现在下载PeerTube的那一步,CentOS 7 x64

        1. Rat's
          @洛汐

          下载应该没问题,是编辑那里吗,提示nano不存在?

          1. 洛汐
            @Rat's

            不知道,看不懂,可以加你QQ嘛?

            1. Rat's
              @洛汐

              加我微信吧,*。

              1. 洛汐
                @Rat's

                安装Docker Compose时 提示 chmod: cannot access '/usr/local/bin/docker-compose': No such file or directory

                1. Rat's
                  @洛汐

                  前面几步有没有完成?

                  1. 洛汐
                    @Rat's

                    应该完成了吧,看见一长段在动,我用的xshell5

                    1. Rat's
                      @洛汐

                      完成的话,不会出现这个错误,我在CentOS 7上测试过,没问题。

                      1. 洛汐
                        @Rat's

                        博主大大 可以帮忙搭建嘛 实在是弄不懂

                        1. Rat's
                          @洛汐

                          加我微信,私聊我。

  6. 唯一度博客

    我想知道服务器会存储什么信息?

    1. Rat's
      @唯一度博客

      这个原理好像是通过Bittorent传播,只要搭建了这个平台的,都可以互相获取信息。

      1. 唯一度博客
        @Rat's

        是不是可以理解为把视频也存储到服务器上?

        1. Rat's
          @唯一度博客

          也许,应该,具体我还没怎么研究。

  7. zhujiwiki

    这个搭建方便

  8. SCGabriel

    这个记得是个v站大佬的项目

    1. Rat's
      @SCGabriel

      不清楚谁的,不过在v站看到了。

      1. SCGabriel
        @Rat's

        https:/www.v2ex.com/t/443304