静看光阴荏苒
不管不顾不问不说也不念

PeerTube v3:终于支持直播功能啦

peertube在前两天的新版本发布中推出了v3版本,此版本最大的亮点就是增加了视频直播的功能。

之前peertube一直在搞众筹,大概是筹到6万欧元就出这个功能,因为我比较期待这个功能,所以隔段时间就看看筹款进展到哪里了,但每次看都是离6万欧还遥遥无期,最后感觉快凉了的时候,debian的团队直接捐了1万欧:

https://bits.debian.org/2020/10/debian-donation-peertube.html

所以这里想说debian还是挺给力的。。

我之前用docker部署过peertube,博客也水过相关的文章,不过后来发现这个程序用docker不太友好,建议还是手动装,这里就不详细说细节问题了,下面是我目前用在生产机器(debian10)上的整个部署步骤。

安装nodejs/yarn:

apt -y update
apt -y install build-essential gnupg curl unzip
curl -sL https://deb.nodesource.com/setup_10.x | bash -
apt -y install nodejs
npm i -g yarn

安装nginx/ffmpeg/postgresql/redis等需要用到的软件包:

apt -y install sudo git python-dev nginx ffmpeg postgresql postgresql-contrib redis-server

启动以及设置nginx/postgresql/redis的开机自启:

systemctl enable --now nginx postgresql redis-server

新建一个名为peertube的用户,注意这个用户的主目录路径最好保持和我下面的一样:

useradd -m -d /var/www/peertube -s /bin/bash peertube

再次提示:如果你把这个用户的主目录做了更改,后面的配置有很多地方都需要修改,如果你不知道后续如何更改这些配置,那么这里建议和我的保持一致。

修改这个用户的密码:

passwd peertube

创建一个postgresql用户和数据库:

sudo -u postgres createuser -P peertube
sudo -u postgres createdb -O peertube -E UTF8 -T template0 peertube_prod

注:第一条命令执行后会提示要你盲输2次密码。如果报什么目录权限问题不用管它,忽视即可。

启用peertube需要用到的扩展:

sudo -u postgres psql -c "CREATE EXTENSION pg_trgm;" peertube_prod
sudo -u postgres psql -c "CREATE EXTENSION unaccent;" peertube_prod

现在直接切到peertube这个用户下面:

su - peertube

准备需要用到的目录/下载解压peertube的源码:

mkdir config storage versions && cd versions
wget https://github.com/Chocobozzz/PeerTube/releases/download/v3.0.0/peertube-v3.0.0.zip
unzip peertube-v3.0.0.zip
ln -s /var/www/peertube/versions/peertube-v3.0.0 ../peertube-latest

安装peertube:

cd ../peertube-latest
yarn install --production --pure-lockfile

复制2份配置文件:

cp config/default.yaml /var/www/peertube/config/default.yaml
cp config/production.yaml.example /var/www/peertube/config/production.yaml

编辑production.yaml:

nano /var/www/peertube/config/production.yaml

这里可以改动的配置很多很杂,我这里就只把必须改的配置说明一下,其他的配置可以在后续的web界面上更改:

webserver:
  https: true
  hostname: 'peertube.imlala.best' # 换成你的域名
  port: 443

database:
  hostname: 'localhost'
  port: 5432
  ssl: false
  suffix: '_prod'
  username: 'peertube'
  password: 'password' # 换成你的数据库用户密码
  pool:
    max: 5

admin:
  email: 'admin@imlala.best' # 换成你的邮箱

现在切回root用户:

su - root

复制一份内核调优的配置文件:

cp /var/www/peertube/peertube-latest/support/sysctl.d/30-peertube-tcp.conf /etc/sysctl.d/

应用配置文件内的设置:

sysctl -p /etc/sysctl.d/30-peertube-tcp.conf

这里实际上就是开了个BBR,如果你的机器已经启用了BBR这里可以忽略。

复制一份nginx的站点配置文件:

cp /var/www/peertube/peertube-latest/support/nginx/peertube /etc/nginx/conf.d/peertube.conf

编辑peertube.conf:

nano /etc/nginx/conf.d/peertube.conf

由于这个配置文件里面的内容太多了,我就不全部贴上来了,这里只说一下要改动的地方,首先这里的域名:

server {
  listen 80;
  listen [::]:80;
  server_name peertube.imlala.best; # 换成你的域名

接着删除这段配置:

...
  location /.well-known/acme-challenge/ {
    default_type "text/plain";
    root /var/www/certbot;
  }

然后这里的上游地址和端口改为下面所示的:

upstream backend {
  server 127.0.0.1:9000;
}

这里和之前一样改域名:

server {
  listen 443 ssl http2;
  listen [::]:443 ssl http2;
  server_name peertube.imlala.best; # 换成你的域名

最后把这一大段配置都删掉:

...
  ssl_certificate     /etc/letsencrypt/live/${WEBSERVER_HOST}/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/${WEBSERVER_HOST}/privkey.pem;

  location ^~ '/.well-known/acme-challenge' {
    default_type "text/plain";
    root /var/www/certbot;
  }

  ssl_protocols             TLSv1.2 TLSv1.3;
  ssl_prefer_server_ciphers on;
  ssl_ciphers               ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256; # add ECDHE-RSA-AES256-SHA if you want compatibility with Android 4
  ssl_session_timeout       1d; # defaults to 5m
  ssl_session_cache         shared:SSL:10m; # estimated to 40k sessions
  ssl_session_tickets       off;
  ssl_stapling              on;
  ssl_stapling_verify       on;

测试nginx的配置是否正常:

nginx -t

正常的话,使用certbot签发ssl证书:

certbot --nginx

复制一份systemd的配置文件:

cp /var/www/peertube/peertube-latest/support/systemd/peertube.service /etc/systemd/system/

启动以及设置peertube开机自启:

systemctl enable --now peertube

查看运行状态确保是Active:

systemctl status peertube

由于peertube默认的管理员密码保存在日志里面,不想看日志的话这里你可以直接使用下面的命令重置一下:

su - peertube
cd peertube-latest && NODE_CONFIG_DIR=/var/www/peertube/config NODE_ENV=production npm run reset-password -- -u root

现在打开你的网站,登录上去,在下图所示的地方可以启用直播功能:

之后在右上角点击发布-Golive,创建直播间:

在下图所示的地方可以找到推流地址和密钥:

OBS的设置看这个官方的文档:

https://docs.joinpeertube.org/use-create-upload-video?id=live-examples

更多关于管理员的指南:

https://docs.joinpeertube.org/admin-following-instances

赞(6)
未经允许不得转载:荒岛 » PeerTube v3:终于支持直播功能啦
分享到: 更多 (0)

评论 12

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #1

    好样的lala :cool:
    下次直播冒险岛记得发聊天室

    Gandi3年前 (2021-01-11) Google Chrome 87.0.4280.141 Google Chrome 87.0.4280.141 Windows 10 x64 Edition Windows 10 x64 Edition回复
  2. #2

    女装直播指日可待 :cool:

    橘子3年前 (2021-01-11) Google Chrome 81.0.4044.132 Google Chrome 81.0.4044.132 Windows 10 x64 Edition Windows 10 x64 Edition回复
  3. #3

    女裝大佬? :grin:

    Foliage3年前 (2021-01-11) Google Chrome 87.0.4280.88 Google Chrome 87.0.4280.88 Windows 10 x64 Edition Windows 10 x64 Edition回复
  4. #4

    看這安裝過程好像挺勸退的樣子⋯⋯

    henry3年前 (2021-01-21) Google Chrome 87.0.4280.141 Google Chrome 87.0.4280.141 Mac OS X  11.1.0 Mac OS X 11.1.0回复
    • 这个程序值得你折腾一下的,我不会告诉你,它可以在线上传种子,然后自动下载并转码,你懂的 :razz:

      LALA3年前 (2021-01-24) Google Chrome 86.0.4240.198 Google Chrome 86.0.4240.198 Windows 10 x64 Edition Windows 10 x64 Edition回复
  5. #5

    lala出个funkwhale教程 :mrgreen:

    BobMaster3年前 (2021-01-31) Firefox 85.0 Firefox 85.0 GNU/Linux x64 GNU/Linux x64回复
    • 好的,正有此意。 :neutral:

      LALA3年前 (2021-01-31) Google Chrome 88.0.4324.96 Google Chrome 88.0.4324.96 GNU/Linux x64 GNU/Linux x64回复
  6. #6

    有没有出现国内打不开,但是代理后可以打开的情形,其实IP没有被认证

    singhigh3年前 (2021-03-27) Google Chrome 89.0.4389.82 Google Chrome 89.0.4389.82 Mac OS X  10.14.2 Mac OS X 10.14.2回复
    • 没有出现过。

      LALA3年前 (2021-03-28) Google Chrome 88.0.4324.150 Google Chrome 88.0.4324.150 Windows 10 x64 Edition Windows 10 x64 Edition回复
      • 大佬有telegram么,我们聊聊?

        singhigh3年前 (2021-04-03) Google Chrome 89.0.4389.82 Google Chrome 89.0.4389.82 Mac OS X  10.14.2 Mac OS X 10.14.2回复
  7. #7

    这个教程搭建下来网站什么也不显示

    小电影3年前 (2021-10-05) Google Chrome 86.0.4240.198 Google Chrome 86.0.4240.198 Windows 10 x64 Edition Windows 10 x64 Edition回复

分享创造快乐

广告合作资源投稿