以下内容是给Ubuntu 22.04 LTS 的用户使用,但也适用于大多数 Linux 发行版。有关其他系统的依赖项和说明的完整列表,请参阅 PeerTube 依赖项列表。
PeerTube 安装过程分为几个部分。要在VPS上安装和配置 PeerTube,请按照以下步骤操作:
- 安装 PeerTube 必备组件。
- 添加目录并配置数据库。
- 下载并安装 PeerTube。
- 配置 PeerTube。
- 配置虚拟主机文件并启用HTTPS。
- 调整PeerTube并激活PeerTube系统服务。
安装PeerTube所需要做的预备工作
以下是如何安装 NGINX Web 服务器、PostgreSQL 数据库和支持软件实用程序。要配置所有 PeerTube 先决条件,请按照以下步骤操作。
1.确保所有软件包均已更新并安装一些基本实用程序。其中一些软件包可能已安装在系统上。
sudo apt-get update -y && sudo apt-get upgrade -y
sudo apt-get install build-essential gnupg curl unzip
明智的做法是禁用 root 访问权限并使用具有 sudoers 组访问权限的用户继续本教程。您可以在此处查看有关如何在 Debian/Ubuntu 中执行此操作,请参考此指南。
2.使用curl
下载 Node.js 并安装它。可参考此处。
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - &&sudo apt-get install -y nodejs
或
sudo curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
sudo apt-get install nodejs -y
3.安装 npm 后,您可以运行以下命令来安装和升级 Yarn,检查版本:
npm install --global yarn
yarn --version
并升级到最新版本,访问Yarn网站。
yarn set version stable
yarn --version
4.Python 编程语言应该已经安装在 Ubuntu 上。但是,还必须安装额外的 Python 开发包。 python-is-python3 包将 python 命令别名为 python3。
On Ubuntu >= focal (20.04 LTS) or Debian >= Bullseye:
sudo apt update
sudo apt install python3-dev python-is-python3 # python-is-python2 should also work
python --version # Should be >= 2.x or >= 3.x
Install common dependencies:
sudo apt update
sudo apt install certbot nginx ffmpeg postgresql postgresql-contrib openssl g++ make redis-server git cron wget
ffmpeg -version # Should be >= 4.1
g++ -v # Should be >= 5.x
redis-server --version # Should be >= 6.x
![](https://freee4u.com/assets/files/2023-07-30/1690689078-321019-screenshot-2023-07-29-at-114957-pm-copy.jpg)
g++ -v
root@localhost:~# g++ -v
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/10/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa:hsa
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian 10.2.1-6' --with-bugurl=file:///usr/share/doc/gcc-10/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-10 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-10-Km9U7s/gcc-10-10.2.1/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-10-Km9U7s/gcc-10-10.2.1/debian/tmp-gcn/usr,hsa --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-mutex
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 10.2.1 20210110 (Debian 10.2.1-6)
5.安装 NGINX Web 服务器。
sudo apt install nginx
6.确保 Web 服务器正常运行。
sudo systemctl status nginx
![](https://freee4u.com/assets/files/2023-07-18/1689705057-938386-2023-07-18-23141.png)
按 Q 键退出输出。
7.允许Web服务器通过防火墙访问并启用防火墙。添加 Nginx Full 配置文件的权限,以确保允许 HTTP 和 HTTPS。运行 ufw status 以确保 ufw 配置正确。
sudo ufw allow OpenSSH
sudo ufw allow in "Nginx Full"
sudo ufw enable
sudo ufw status
![](https://freee4u.com/assets/files/2023-07-19/1689736381-735140-2023-07-18-111319.png)
8.访问域 URL 以确保 Web 服务器正常工作。浏览器应显示 NGINX 登录页面,显示“Welcome to nginx”。
9.安装其余必备组件,包括 PostgreSQL 数据库和 Redis。
sudo apt install git ffmpeg postgresql postgresql-contrib g++ redis-server -y
10.启动 redis 和 postgresql 服务,并确保所有必需服务都配置为在重新启动时启动。
sudo systemctl start redis postgresql
sudo systemctl enable --now nginx postgresql redis-server
如何创建所需的目录和数据库
对于安装过程的下一部分,创建一个专用的 PeerTube 用户并添加一个 PostgreSQL 数据库供应用程序使用。请按照以下步骤创建这些组件。
1.在VPS上创建一个新的peertube
用户并创建一个主目录供它使用。
sudo useradd -m -d /var/www/peertube -s /bin/bash -p peertube peertube
2.为peertube 用户设置一个密码。
sudo passwd peertube
![](https://freee4u.com/assets/files/2023-07-18/1689706003-441110-2023-07-18-24733.png)
3.验证新用户目录的目录权限。每个人都必须具有读取和执行权限,但只有peertube用户应该能够写入该目录。权限字符串必须是 drwxr-xr-x。
注:如果未为所有用户设置执行和读取权限,请使用命令 sudo chmod +rx /var/www/peertube
添加它们
ls -ld /var/www/peertube
![](https://freee4u.com/assets/files/2023-07-18/1689706186-499060-2023-07-18-25048.png)
4.切换到新目录并创建 PostgreSQL 用户。出现提示时输入peertube
用户使用的新密码。
cd /var/www/peertube
sudo -u postgres createuser -P peertube
5.创建一个 PostgreSQL 数据库供 PeerTube 使用。
sudo -u postgres createdb -O peertube -E UTF8 -T template0 peertube_prod
6.启用PostgreSQL 的两个扩展。
sudo -u postgres psql -c "CREATE EXTENSION pg_trgm;" peertube_prod
sudo -u postgres psql -c "CREATE EXTENSION unaccent;" peertube_prod
![](https://freee4u.com/assets/files/2023-07-18/1689706688-919193-2023-07-18-25757.png)
如何下载并安装 PeerTube
配置完所有先决条件后,使用 wget
下载 PeerTube 并使用 yarn
进行安装。
1.查询 PeerTube API
以获取有关 PeerTube
当前版本的详细信息。
VERSION=$(curl -s https://api.github.com/repos/chocobozzz/peertube/releases/latest | grep tag_name | cut -d '"' -f 4) && echo "Latest PeerTube version is $VERSION"
![](https://freee4u.com/assets/files/2023-07-18/1689707281-243660-2023-07-18-30900.png)
2.切换到peertube
目录。peertube
创建和修改一些目录。
cd /var/www/peertube
sudo -u peertube mkdir config storage versions
sudo -u peertube chmod 750 config/
3.切换到versions
目录并下载 PeerTube .zip 文件。
cd versions
sudo -u peertube wget -q "https://github.com/Chocobozzz/PeerTube/releases/download/${VERSION}/peertube-${VERSION}.zip"
4.解压缩下载的文件并删除 .zip 文件。
sudo -u peertube unzip -q peertube-${VERSION}.zip && sudo -u peertube rm peertube-${VERSION}.zip
5.Return to the peertube
directory and create a symbolic link to the file.
cd /var/www/peertube
sudo -u peertube ln -s versions/peertube-${VERSION} ./peertube-latest
6.Change to the peertube-latest
directory. Use yarn
to install PeerTube.
cd ./peertube-latest
sudo -H -u peertube yarn install --production --pure-lockfile
如何配置 PeerTube
PeerTube 使用两个.yaml
文件来控制其内部配置。要配置这些文件,请按照下列步骤操作。
1.切换到peertube目录。
cd /var/www/peertube
2.将default.yaml
配置复制到config
目录。不要编辑该文件。
sudo -u peertube cp peertube-latest/config/default.yaml config/default.yaml
3.从同一目录,将 production.yaml 复制到新位置。
sudo -u peertube cp peertube-latest/config/production.yaml.example config/production.yaml
4.创建密钥并保存以供下一步使用。
openssl rand -hex 32
5.编辑 Production.yaml 文件。
sudo -u peertube nano config/production.yaml
6.production.yaml
是一个包含许多设置的大文件。其中许多可以稍后更改或使用网络界面进行调整。现在,更改以下值:
在webserver
下,将hostname更改为域名。这是 PeerTube 实例的 URL。在以下示例中,将 example.com 更改为实际域名。
在secrets
下,将您在上一步中创建的密钥替换默认的peertube
。
在database
部分,将password
更改为peertube数据库用户的密码。
在admin
部分,将email
属性更改为管理电子邮件帐户。
这三个部分应类似于以下示例。由于文件较长,大部分内容没有显示。
...
webserver:
https: true
hostname: 'example.com'
port: 443
...
secrets:
# Generate one using `openssl rand -hex 32`
peertube: 'your_secret_key'
...
database:
hostname: 'localhost'
port: 5432
ssl: false
suffix: '_prod'
username: 'peertube'
password: 'your_password'
pool:
max: 5
...
admin:
email: 'admin@example.com'
...
如何配置 PeerTube 虚拟主机文件并启用 HTTPS
NGINX 需要 PeerTube 虚拟主机才能正确提供文件。将示例peertube 虚拟主机文件复制到 /etc/nginx/sites-available 中的正确位置并进行编辑。该文件的大部分内容都是预先填写的,因此只需要进行一些更改。
使用 Certbot 安装 Let’s Encrypt 证书并启用 HTTPS 支持。
要为 HTTP 和 HTTPS 配置 NGINX 虚拟主机,请按照以下步骤操作。
1.将 PeerTube 的示例 NGINX 配置文件复制到站点可用目录。
sudo cp /var/www/peertube/peertube-latest/support/nginx/peertube /etc/nginx/sites-available/peertube
2.将 WEBSERVER_HOST 和 PEERTUBE_HOST 变量替换为 PeerTube 的域名称和本地端口。在第一个命令中,将 example.com 替换为域的实际名称。
sudo sed -i 's/${WEBSERVER_HOST}/example.com/g' /etc/nginx/sites-available/peertube
sudo sed -i 's/${PEERTUBE_HOST}/127.0.0.1:9000/g' /etc/nginx/sites-available/peertube
3.启用peertube 站点。
sudo ln -s /etc/nginx/sites-available/peertube /etc/nginx/sites-enabled/peertube
4.安装快照包管理器。 Snap 用于安装 Certbot。
sudo apt install snapd
sudo snap install core
5.删除所有旧的 certbot 软件包并使用 snap 安装新的。创建到该目录的符号链接。
sudo apt remove certbot
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
6.关闭 NGINX 并使用 certbot 命令请求并安装 Let’s Encrypt 证书。由于 HTTPS 配置已经是peertube 虚拟主机文件的一部分,因此请使用 certonly 选项。否则 certbot 会覆盖大部分现有内容。 –standalone 选项告诉 certbot 使用自己的内部网络服务器。安装证书后重新加载 NGINX。
在证书授予过程中,certbot 会提示输入一些信息。要完成认证,请遵循以下指南:
- 根据要求输入管理员的电子邮件地址。 Let’s Encrypt 会将续订通知和其他相关信息发送到该地址。
- 输入 Y 同意服务条款。如果输入 N,Certbot 将终止请求。
- 当询问是否向电子前沿基金会注册时,输入 Y 或 N。这个答案不会以任何方式影响安装。
- 输入 PeerTube 服务器的域名。
完成后,certbot 确认证书已安装。当证书即将过期时,它会自动安排更新任务。
由于虚拟主机文件是预先填充的,因此必须先关闭NGINX。如果 certbot 请求可操作,则会失败。
sudo systemctl stop nginx
sudo certbot certonly --standalone --post-hook "systemctl restart nginx"
sudo systemctl reload nginx
![](https://freee4u.com/assets/files/2023-07-18/1689709626-896551-2023-07-18-34535.png)
如何调整 PeerTube 并开启 PeerTube 服务
在 PeerTube 最终可以使用之前,还需要执行一些步骤。 PeerTube 需要与大多数应用程序不同的传输控制协议 (TCP) 设置。 PeerTube 还必须注册为系统服务。这允许用户使用 systemctl 来控制它。要完成 PeerTube 配置,请完成以下步骤。
1.将 PeerTube TCP 文件复制到系统设置。
sudo cp /var/www/peertube/peertube-latest/support/sysctl.d/30-peertube-tcp.conf /etc/sysctl.d/
2.启用 PeerTube TCP 设置。
sudo sysctl -p /etc/sysctl.d/30-peertube-tcp.conf
![](https://freee4u.com/assets/files/2023-07-18/1689709651-696059-2023-07-18-34801.png)
3.启用 PeerTube 服务。将默认服务文件复制到 /etc/systemd/system/ 目录。
默认配置应该足以满足大多数情况。要确认服务设置,请查看 /etc/systemd/system/peertube.service 文件。
sudo cp /var/www/peertube/peertube-latest/support/systemd/peertube.service /etc/systemd/system/
4.重新加载 systemctl 守护进程。
sudo systemctl daemon-reload
5.注册peertube 服务以在系统启动时自动启动。
sudo systemctl enable peertube
6.启动peertube服务。
sudo systemctl start peertube
7.验证peertube 服务的状态并确保其处于活动状态。
如果服务未运行,请使用命令 sudojournalctl -feupeertube 查看服务日志。
sudo systemctl status peertube
![](https://freee4u.com/assets/files/2023-07-18/1689710649-72717-2023-07-18-35232.png)
8.PeerTube 的默认管理帐户名为 root。虽然可以在 Production.yaml 文件中定义的日志中找到密码,但重置密码更容易。切换到peertube-latest目录并使用以下命令为PeerTube root帐户设置唯一的安全密码。出现提示时提供新密码。
cd /var/www/peertube/peertube-latest
sudo -u peertube NODE_CONFIG_DIR=/var/www/peertube/config NODE_ENV=production npm run reset-password -- -u root