以下内容是给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
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
按 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
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
3.验证新用户目录的目录权限。每个人都必须具有读取和执行权限,但只有peertube用户应该能够写入该目录。权限字符串必须是 drwxr-xr-x。
注:如果未为所有用户设置执行和读取权限,请使用命令 sudo chmod +rx /var/www/peertube
添加它们
ls -ld /var/www/peertube
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
如何下载并安装 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"
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
如何调整 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
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
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