Pleromaは、ソースコードを改造しないで使うなら、プレコンパイル済みのバイナリをインストールするのが推奨されています。ソースからだと、Elixirのコンパイルめっちゃ時間かかるからねー。
MastodonやMisskeyでインストールやアップデートに苦労することを考えると、時間もかからないですし、失敗しないので、サクッと導入できて良いかと思います。
実際にUbuntu 21.04のVPSにインストールしてみたので、流れをつかんでみてください。PostgreSQLは13、RUMインデックスを使います。 なお、実際の手順は、公式のドキュメントを合わせて読まれることをお薦めします。
Installing on Linux using OTP releases
Installing Pleroma/OTP on Ubuntu 21.04
Prepare the system
arch="$(uname -m)";if [ "$arch" = "x86_64" ];then arch="amd64";elif [ "$arch" = "armv7l" ];then arch="arm";elif [ "$arch" = "aarch64" ];then arch="arm64";else echo "Unsupported arch: $arch">&2;fi;if getconf GNU_LIBC_VERSION>/dev/null;then libc_postfix="";elif [ "$(ldd 2>&1|head -c 9)" = "musl libc" ];then libc_postfix="-musl";elif [ "$(find /lib/libc.musl*|wc -l)" ];then libc_postfix="-musl";else echo "Unsupported libc">&2;fi;echo "$arch$libc_postfix"
対応アーキテクチャかどうかを確認しています。実行結果の文字列がUnsupported libc
だったら、ソースからのビルドが必要です。
ここではamd64
となりましたので、後ほどPleromaをインストールするところでexport FLAVOUR="amd64"
と設定します。
apt install -y curl unzip libncurses5 postgresql postgresql-contrib nginx certbot libmagic-dev apt install -y postgresql-13-rum apt install -y imagemagick ffmpeg libimage-exiftool-perl
2行目はRUMのエクステンションです。 3行目は画像に加工を入れる場合の追加のパッケージで、不要なら省略できます。
Pleroma
adduser --system --shell /bin/false --home /opt/pleroma pleroma export FLAVOUR="amd64" su pleroma -s $SHELL -lc " curl 'https://git.pleroma.social/api/v4/projects/2/jobs/artifacts/stable/download?job=$FLAVOUR' -o /tmp/pleroma.zip unzip /tmp/pleroma.zip -d /tmp/ " su pleroma -s $SHELL -lc " mv /tmp/release/* /opt/pleroma rmdir /tmp/release rm /tmp/pleroma.zip " mkdir -p /var/lib/pleroma/uploads chown -R pleroma /var/lib/pleroma mkdir -p /var/lib/pleroma/static chown -R pleroma /var/lib/pleroma mkdir -p /etc/pleroma chown -R pleroma /etc/pleroma su pleroma -s $SHELL -lc "./bin/pleroma_ctl instance gen --output /etc/pleroma/config.exs --output-psql /tmp/setup_db.psql"
ここで、サーバのドメインや名称、管理者のメールアドレスなどを聞かれます。 今回はPostgreSQLのRUMインデックスを有効にする設定にしているので、RUMの質問にyと回答してください。
su postgres -s $SHELL -lc "psql -f /tmp/setup_db.psql" su pleroma -s $SHELL -lc "./bin/pleroma_ctl migrate" su pleroma -s $SHELL -lc "./bin/pleroma_ctl migrate --migrations-path priv/repo/optional_migrations/rum_indexing/"
これでももうインストールは終了です。
Test
デーモンとして起動(バックグラウンドで動作させるモード)して、APIを呼んでテストします。
su pleroma -s $SHELL -lc "./bin/pleroma daemon" sleep 20 && curl http://localhost:4000/api/v1/instance
20秒待つようになっていますが、起動が完了せずにエラーになることがあります。再度実行してください。 インスタンス情報が表示されたら、サーバとして無事に動作しています。
ダメっぽかったら、このあたり/opt/pleroma/tmp/log/erlang.log.1
のログをみてください。
su pleroma -s $SHELL -lc "./bin/pleroma stop"
確認が済んだら停止します。
Nginx
certbot certonly --standalone --preferred-challenges http -d yourinstance.tld cp /opt/pleroma/installation/pleroma.nginx /etc/nginx/sites-available/pleroma.conf ln -s /etc/nginx/sites-available/pleroma.conf /etc/nginx/sites-enabled/pleroma.conf $EDITOR /etc/nginx/sites-available/pleroma.conf nginx -t systemctl start nginx
Systemd
cp /opt/pleroma/installation/pleroma.service /etc/systemd/system/pleroma.service systemctl start pleroma systemctl enable pleroma
Create Admin User
cd /opt/pleroma su pleroma -s $SHELL -lc "./bin/pleroma_ctl user new joeuser joeuser@sld.tld --admin"
その他
certbotの定期実行による証明書の更新などが必要ですが、ここでは省略します。