Pleromaインスタンスを立ててみた。(備忘録)

少し気になっていたので実際に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が欲しいなぁ・・・と思いました。

コメントを残す

コメントを投稿するには、以下のいずれかでログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中