在 Ubuntu 22.04 LTS 上安裝 Pleroma

Pleroma 是一個參與 Fediverse 的輕量級服務器。 Pleroma 是 Mastodon 服務器軟件的替代品。 與 Mastodon 相比,Pleroma 不需要那麼多的處理器或 RAM 來進行類似的安裝。 本教程記錄了 Pleroma 服務器的安裝步驟。 服務器可以是 Fediverse 的個人家庭實例,也可以是與朋友、家人或興趣社區共享的實例。

以前的要求

  • 一個新的 Vultr 服務器實例Ubuntu22.04 長期支持。 單個用戶實例將在具有 1 GB RAM 的實例上正常工作。 主機名應設置為完全限定域名 (FQDN),例如 pleroma.googlesyndication.com 用於服務器。 Pleroma 軟件和操作系統文件將使用大約 8.2 GB 的磁盤空間。

  • 非 root sudo 用戶。 使用 Vultr 最佳實踐指南在 Ubuntu 上創建一個 sudo 用戶。

  • 指向服務器 IP 地址的完全限定域名 (FQDN)。

例子

本教程使用示例:

  • 服務器主機名:普累若瑪

  • 服務器完全限定域名 (FQDN):pleroma.googlesyndication.com

  • IP地址:192.0.2.1

初始步驟

驗證主機名和 FQDN

驗證實例主機名是否設置為服務器的預期主機名。

                      
                        $ hostname

pleroma

                      
                    

如果主機名不正確,請按照 Vultr 的說明更改主機名或使用正確的主機名重新安裝映像。 重新安裝映像以修改主機名完全刪除實例上的所有內容因此,這必須在任何其他配置發生之前完成。

為常用項設置環境變量:

這應該看起來像 export FQDN=pleroma.googlesyndication.com , export [email protected] export 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 記錄。

確保您的系統軟件是最新的並啟用自動更新

系統必須運行當前軟件以獲得最佳性能和安全性。

                      
                        $ sudo apt update

$ sudo apt -y full-upgrade

                      
                    

刪除任何不必要的或過時的包:

                      
                        $ sudo apt autoremove

                      
                    

啟用軟件更新的自動安裝。

(對有關下載和安裝穩定更新的問題回答“是”)

                      
                        $ sudo apt-get install unattended-upgrades

$ sudo dpkg-reconfigure -plow unattended-upgrades

                      
                    

安裝 Postgres 及配套軟件

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

                      
                    

安裝 Elixir 和 Erlang

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

                      
                    

安裝圖像處理工具

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

                      
                    

安裝Pleroma

創建一個用戶來運行 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 用戶身份克隆 Pleroma git 存儲庫

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

                      
                    

更改到 pleroma 子目錄

                      
                        $ cd /opt/pleroma

                      
                    

安裝 Pleroma 支持包。 回答當系統提示您安裝 Hex 時。

                      
                        $ sudo -Hu pleroma mix deps.get

                      
                    

生成 pleroma 配置。 這可能需要幾分鐘時間。 回答這是當系統提示您安裝 rebar3 時。

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

                      
                    

安裝程序會詢問您一系列需要您回答的問題,如下所示:

您的實例將使用哪個域? (例如 pleroma.soykaf.com)將 FQDN 放在這裡

服務器名稱進入您的實例名稱是什麼? (例如,Corndog 商場)

進入電子郵件地址

您的管理員電子郵件地址是什麼?進入

電子郵件地址

您要使用哪個電子郵件地址發送電子郵件通知?

進入

您想讓搜索引擎為您的網站編制索引嗎? (是/否)[y] 輸入

您想將配置存儲在數據庫中(允許從 admin-fe 控制它)嗎? (是/否)[n] 並輸入

您的數據庫的主機名是什麼? [本地主機] 輸入

您的數據庫的名稱是什麼? [pleroma] 進入

用於連接到您的數據庫的用戶是什麼? [pleroma] 進入

用於連接到數據庫的密碼是什麼? [自動生成] 輸入

您想使用 RUM 指數嗎? [n] 輸入

應用程序將監聽哪個端口(如果您使用 nginx 的默認配置,請保留它)?

進入

應用程序將監聽什麼 ip(如果您使用 nginx 的默認配置,請保留它)? [127.0.0.1] 輸入

媒體上傳應該放在哪個目錄中(使用本地上傳器時)? [上傳] ENTER

應從哪個目錄讀取自定義公共文件(自定義表情符號、界麵包覆蓋、robots.txt 等)? [實例/靜態/] ENTER

您想從上傳的圖像中刪除位置數據 (GPS) 嗎? 這需要 exiftool,它被檢測為已安裝。 (是/否)[y] 輸入

你想匿名上傳文件名嗎? (是/否)[n] 並輸入

您要對上傳的文件進行重複數據刪除嗎? (是/否)[n] 並輸入

將配置寫入 config/generated_config.exs。

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

                      
                    

在 config/setup_db.psql 中編寫 postgres 腳本。

所有文件寫入成功! 有關後續步驟,請參閱適用於您的平台的安裝說明。 secure_cookie_flag 運行數據庫遷移後將您的配置傳輸到數據庫。 有關詳細信息,請參閱文檔的“將配置傳輸到數據庫/從數據庫傳輸配置”部分。輸入 /opt/pleroma/instance/static/robots.txt。將配置文件移動到它們的最終位置:

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

                      
                    

cookies 通過安全連接發送改進安全設置建立

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

                      
                    

如此真實

                      
                        $ sudo update-ca-certificates --fresh

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

                      
                    

.

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

                      
                    

將 HTTPS 連接降級為 HTTP

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

                      
                    

啟用嚴格的傳輸安全,以便攻擊者無法

.

                      
                        $ sudo apt -y install nginx

                      
                    

更新 ca-certificates.crt 文件並將其添加到 pleroma 配置中:

                      
                        $ sudo service nginx stop

                      
                    

創建 Postgres 數據庫:

                      
                        $ sudo ufw allow http

$ sudo ufw allow https

                      
                    

運行數據庫遷移:

                      
                        $ sudo apt -y install certbot

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

                      
                    

安裝 Nginx

Nginx 將作為 Pleroma 前面的反向代理,處理 TLS 和會話管理。

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

                      
                    

停止 Nginx 以允許 Certbot 使用端口 80:

                      
                        $ 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

                      
                    

配置防火牆 (ufw) 以允許端口 80 和 443 上的傳入 TCP 連接:

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

                      
                    

安裝 Certbot 並請求 TLS 證書

                      
                        $ sudo systemctl enable --now nginx.service

                      
                    

Certbot 將請求批准 Let's Encrypt 的(強制性)服務條款和報價

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

                      
                    

訂閱郵件列表(可選)。 Certbot 將配置為自動更新 TLS 證書。

                      
                        $ sudo systemctl enable --now pleroma.service

                      
                    

安裝 Nginx 設置

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

                      
                    

在 Nginx 配置中添加域名

允許 Nginx 在開機時啟動並立即啟動

安裝systemd服務文件:

創建 Pleroma 管理用戶:允許 Pleroma 在啟動時啟動並立即啟動它:系統將顯示一個 URL 來為指定的用戶名設置密碼。

最後步驟

使用提供的鏈接設置密碼,然後單擊“主頁”。

使用您剛剛創建的用戶名/密碼登錄,然後單擊屏幕右上角的地球圖標進入“管理”菜單,然後在左側面板上選擇“設置”,然後選擇“實例”。 向下滾動並修改“打開註冊”設置以允許(默認)或拒絕公共用戶註冊和狀態發布,並根據需要配置其他選項。 修改“聯合”設置以允許(默認)或拒絕連接到其他服務器聯邦宇宙.

其他閱讀選擇“提交”按鈕將配置更改發送到服務器。 安裝完成。官方文檔

有關 Pleroma 服務器管理的更多信息,請訪問

.

” 的文檔,了解有關如何保護您的 Pleroma 實例安全的說明。