在 Ubuntu 22.04 LTS 上安装 Pleroma

Pleroma 是一个参与 Fediverse 的轻量级服务器。Peroma是Mastodon服务器软件的替代品。与Mastodon相比,Pleroma不需要那么多的处理器或RAM进行类似的安装。本教程记录了 Pleroma 服务器的安装步骤。服务器可以是个人的 Fediverse 主实例,也可以是与朋友、家人或感兴趣的社区共享的实例。

一、准备工作

  • 一个新的 Vultr Ubuntu 22.04 LTS 服务器实例。单用户实例将在具有 1 GB RAM 的实例上运行良好。主机名应设置为完全限定的域名 (FQDN),例如用于服务器。Pleroma 软件和操作系统文件将使用大约 8.2 GB 的磁盘空间。pleroma.example.com
  • 非根 sudo 用户。使用Vultr 的最佳实践指南在 Ubuntu 上创建一个 sudo 用户。
  • 指向服务器 IP 地址的完全限定域名 (FQDN)。

二、案例

本教程使用示例:

  • 服务器主机名:普莱罗马
  • 服务器完全限定域名 (FQDN):pleroma.example.com
  • IP地址:192.0.2.1

三、初始步骤

3.1、验证主机名和 FQDN

验证实例的主机名是否设置为用于服务器的主机名。

$ hostname

pleroma

如果主机名不正确,请按照Vultr 的说明更改主机名或使用正确的主机名重新安装映像。重新安装映像以修改主机名将完全擦除实例上的所有内容,因此必须在进行任何进一步配置之前完成此操作

设置常用项的环境变量:

这应该看起来像,,和export FQDN=pleroma.example.comexport EMAIL=admin@example.comexport USER=admin

$ export FQDN=<fully qualified domain name>    

$ export EMAIL=<email address>

$ export USER=<username to use on Pleroma instance>

验证 DNS 记录是否指向 FQDN。

$ dig +short $FQDN

192.0.2.1

应在Vultr 控制面板中配置将服务器的 IP 地址与其完全限定域名相关联的 DNS PTR 记录。

3.2、确保系统软件是最新的并启用自动更新

系统应运行当前软件以获得最佳性能和安全性。

$ sudo apt update

$ sudo apt -y full-upgrade

删除任何不必要/过时的软件包:

$ sudo apt autoremove

启用软件更新的自动安装。

(对有关下载和安装稳定更新的问题回答“是”)

$ sudo apt-get install unattended-upgrades

$ sudo dpkg-reconfigure -plow unattended-upgrades

3.3、安装邮政和支持软件

$ sudo apt -y install git build-essential postgresql postgresql-contrib cmake libmagic-dev

3.4、安装 Elixir 和 Erlang

$ sudo apt -y install elixir erlang-dev erlang-nox

3.5、安装图像处理工具

$ sudo apt -y install imagemagick ffmpeg libimage-exiftool-perl

四、安装普莱罗马

创建一个用户来运行 Pleroma 软件:

$ sudo useradd -r -s /bin/false -m -d /var/lib/pleroma -U pleroma

创建 Pleroma 目录

$ sudo mkdir -p /opt/pleroma

$ sudo chown -R pleroma:pleroma /opt/pleroma

将 Pleroma git 存储库克隆为 Pleroma 用户

$ sudo -Hu pleroma git clone -b stable https://git.pleroma.social/pleroma/pleroma /opt/pleroma

更改为 pleroma 子目录

$ cd /opt/pleroma

安装 Pleroma 的支持包。当要求安装十六进制时,回答Yes。

$ sudo -Hu pleroma mix deps.get

生成肋骨配置。这可能需要几分钟时间。当被要求安装钢筋3时,回答Yes。

$ sudo -Hu pleroma MIX_ENV=prod mix pleroma.instance gen

配置程序将询问一系列问题,应按如下方式回答:


您的实例将使用哪个域?(例如 pleroma.soykaf.com)[]把 FQDN 放在这里 ENTER

您的实例的名称是什么?(例如玉米狗商场)[]服务器名称 ENTER

您的管理员电子邮件地址是什么?[]电子邮件地址 ENTER

您想使用哪个电子邮件地址发送电子邮件通知?[]电子邮件地址 ENTER

您希望搜索引擎索引您的网站吗?(是/否)[y]ENTER

是否要将配置存储在数据库中(允许从 admin-fe 控制它)?(是/否)[n]Y ENTER

数据库的主机名是什么?[本地主机]ENTER

您的数据库的名称是什么?[胸膜瘤]ENTER

用户使用什么连接到数据库?[胸膜瘤]ENTER

用于连接到数据库的密码是什么?[自动生成]ENTER

是否要使用 RUM 索引?[n]ENTER

应用程序将侦听哪个端口(如果您使用的是nginx的默认设置,请保留它)?[4000]ENTER

应用程序将侦听什么 ip(如果您使用的是 nginx 的默认设置,请保留它)?[127.0.0.1]ENTER

媒体上传应该进入哪个目录(使用本地上传程序时)?[上传]ENTER

应该从哪个目录中读取自定义公共文件(自定义表情符号、前端包覆盖、robots.txt 等)?[实例/静态/]ENTER

是否要从上传的图像中剥离位置 (GPS) 数据?这需要exiftool,它被检测为已安装。(是/否)[y]ENTER

您想匿名化上传的文件名吗?(是/否)[n]Y ENTER

是否要删除重复的上传文件?(是/否)[n]Y ENTER

将 config 写入 config/generated_config.exs。

将 postgres 脚本编写到 config/setup_db.psql。

编写 /opt/pleroma/instance/static/robots.txt。

 

所有文件都已成功写入!有关后续步骤,请参阅平台的安装说明。

请在运行数据库迁移后将您的配置传输到数据库。有关更多信息,请参阅文档的“将配置传输到/传出数据库”部分。


4.1、将配置文件移动到其最终位置:

$ sudo -Hu pleroma mv config/{generated_config.exs,prod.secret.exs}

五、改进安全配置

设置为 true,以便通过安全连接发送 Cookie。secure_cookie_flag

$ sudo sed -i 's/secure_cookie_flag: false/secure_cookie_flag: true/g' config/config.exs

启用严格的传输安全性,以便攻击者无法将HTTPS 连接降级为 HTTP。

$ sudo sed -i 's/ sts: false/ sts: true/g' config/config.exs

5.1、更新ca-certificate.crt文件并将其添加到pleroma配置中:

$ sudo update-ca-certificates --fresh

$ sudo sed -i 's,path/to/file/with/PEM/cacerts,/etc/ssl/certs/ca-certificates.crt,' config/description.exs

5.2、创建 Postgres 数据库:

$ sudo -Hu postgres psql -f config/setup_db.psql

5.3、运行数据库迁移:

$ sudo -Hu pleroma MIX_ENV=prod mix ecto.migrate

六、安装 Nginx

Nginx将在Pleroma面前充当反向代理,处理TLS和会话管理。

$ sudo apt -y install nginx

6.1、停止 Nginx 以允许 Certbot 使用端口 80:

$ sudo service nginx stop

6.2、配置防火墙 (ufw) 以允许端口 80 和 443 上的入站 TCP 连接:

$ sudo ufw allow http

$ sudo ufw allow https

七、安装证书机器人并请求 TLS 证书

$ sudo apt -y install certbot

$ sudo mkdir -p /var/lib/letsencrypt/

Certbot将要求批准Let’s Encrypt的(强制性)服务和报价条款

对(可选)邮件列表的订阅。Certbot 将自行配置为自动刷新 TLS 证书。

$ sudo certbot certonly --email $EMAIL -d $FQDN --standalone

7.1、安装 Nginx 配置

$ sudo cp /opt/pleroma/installation/pleroma.nginx /etc/nginx/sites-available/pleroma.nginx

$ sudo ln -s /etc/nginx/sites-available/pleroma.nginx /etc/nginx/sites-enabled/pleroma.nginx

7.2、将域名添加到 Nginx 配置

$ sudo sed -i "s,example.tld,$FQDN," /etc/nginx/sites-available/pleroma.nginx

7.3、使 Nginx 能够在启动时启动并立即启动

$ sudo systemctl enable --now nginx.service

7.4、安装 systemd 服务文件:

$ sudo cp /opt/pleroma/installation/pleroma.service /etc/systemd/system/pleroma.service

7.5、使 Pleroma 在引导时启动并立即启动:

$ sudo systemctl enable --now pleroma.service

7.6、创建管理性 Pleroma 用户:

$ sudo -Hu pleroma MIX_ENV=prod mix pleroma.user new $USER $EMAIL --admin

系统将显示一个 URL 以设置指定用户名的密码。

八、最后

使用提供的链接设置密码,然后单击“主页”。

使用刚刚创建的用户名/密码登录,然后单击屏幕右上角的地球图标转到“管理”菜单,然后在左侧面板上选择“设置”,然后选择“实例”。向下滚动并修改“注册打开”设置以允许(默认选项)或拒绝公共用户注册和状态帖子,并根据需要设置其他选项。修改“联合”设置以允许(默认)或拒绝与Fediverse 中其他服务器的连接。

选择“提交”按钮将配置更改发送到服务器。安装完成。

赞(0)
未经允许不得转载:主机百科 » 在 Ubuntu 22.04 LTS 上安装 Pleroma