少し気になっていたので実際にPleromaインスタンスを設置してみることにしました。
(現状は実験的取り組みのため、URLは非公開とさせていただきます。)
次に構築する時に備えて、以下に備忘録を残しておきます。
・サーバ
サーバは、IDCFクラウドさんのLight.S1プラン(0.4円/h, 200円/月)に、ディスク容量はとりあえず20GB(1GBあたり 0.04円/h, 20円/月)で、合計600円/月という構成です。
・OS
とりあえずUbuntu 18.04.1を使用しました。
ISOイメージ( http://cdimage.ubuntu.com/releases/18.04/release/ubuntu-18.04.1-server-amd64.iso )からインストールを実行。
・パーティション構成
| マウントポイント |
サイズ |
オプション |
| Reserved BIOS boot area |
1.0 MB |
|
| /boot |
0.5 GB |
|
| / |
10.0 GB |
|
| /var/lib/postgresql |
10.0 GB |
noatime nodiratime |
| swap |
max |
|
・OSインストール後に実施したこと
注)実験環境の為、rootユーザで実行していますがsudoを利用することをお勧めします。
IDCFクラウドさんの環境に最適化するために「open-vm-tools」をインストールします。
# apt install open-vm-tools
OSをアップデートします。
# apt update
# apt upgrade
ファイアウォールの設定やSSHサーバの設定、カーネルパラメータの設定を行います。
<セキュリティ上の理由により非公開>
PostgreSQLをインストールして、データページチェックサムを有効にします。
# apt install postgresql postgresql-contrib
# systemctl stop postgresql
# su postgres
$ cd
$ rm -rf /var/lib/postgresql/10/main
$ /usr/lib/postgresql/10/bin/initdb –no-locale -E UTF-8 -D /var/lib/postgresql/10/main -k
$ exit
パフォーマンスチューニングを実施。
# vi /etc/postgresql/10/main/postgresql.conf
権限を設定。
# vi /etc/postgresq/10/main/pg_hba.conf
PostgreSQLを起動して、ユーザとデータベースを作成します。
# systemctl start postgresql.service
# su postgres
$ cd
$ psql
CREATE USER pleroma_testuser PASSWORD ‘passw0rd’;
create database pleroma_testdb owner pleroma_testuser;
\q
# apt install apache2 git build-essential openssl imagemagick
# wget https://packages.erlang-solutions.com/erlang-solutions_1.0_all.deb
# dpkg -i erlang-solutions_1.0_all.deb
# apt update
# apt install elixir erlang-dev erlang-parsetools erlang-xmerl erlang-tools
ユーザを追加してPleromaをインストールします。
(Wikiを参考に作業を進めました。 https://git.pleroma.social/pleroma/pleroma/wikis/home )
# adduser pleroma_testuser
# su pleroma_testuser
$ cd
$ git config –global user.email “メールアドレス”
$ git clone https://git.pleroma.social/pleroma/pleroma.git pleroma
<使用したバージョンは https://git.pleroma.social/pleroma/pleroma/commit/4f03bb22998b9713d84dc8e81a3d63bb60c5b648 です。>
$ cd ~/pleroma
$ mix deps.get
Shall I install Hex ? Y
$ mix generate_config
Shall I install rebar3 ? Y
$ cd config
$ mv generated_config.exs prod.secret.exs
設定を調整します。
(/config/config.exsがサンプルファイルなのでこれを見ながら設定しました。)
$ vi prod_secret.exs
<ここでオブジェクトストレージを使用する設定を行いますが上手くいきませんでした。>
IDCFクラウドさんのオブジェクトストレージ(S3互換)とは上手くつながりませんでした。
おそらく現バージョンのPleromaはv4にしか対応しておらず、現在のIDCFクラウドさんのオブジェクトストレージはv2のため互換性が無い。
次にConoHaのオブジェクトストレージ(Openstack Swift)への接続を試しましたが、こちらも上手くつながりませんでした。
$ exit
# su postgres -c ‘psql -f config/setup_db.psql’
# su pleroma_testuser
$ MIX_ENV=prod mix ecto.migrate
systemdの設定を行います。
(/installation/pleroma.serviceがサンプルファイルなのでこれを見ながら設定しました。)
# vi /etc/systemd/system/pleroma-test.service
[Unit]
Description=Pleroma social network
After=network.target postgresql.service
[Service]
User=pleroma_testuser
WorkingDirectory=/home/pleroma_testuser/pleroma
Environment="HOME=/home/pleroma_testuser"
Environment="MIX_ENV=prod"
ExecStart=/usr/local/bin/mix phx.server
ExecReload=/bin/kill $MAINPID
KillMode=process
TimeoutSec=15
Restart=on-failure
[Install]
WantedBy=multi-user.target
# systemctl daemon-reload
# systemctl enable /etc/systemd/system/pleroma-test.service
# systemctl start pleroma-test.service
稼働状況をチェックします。
# journalctl -fu pleroma-test.service
・感想
インストール作業は手順通りに進めていけば特に難しい点もなくあっさり動いてくれました。
メモリ消費量も少なくて済むので安価なVPSでもサクサク動作してくれますし、configファイルで設定が行える点や、シンプルなWebUIなどとても気に入っているのですが、管理用のWebUIが欲しいなぁ・・・と思いました。