#はじめに
普段はCreatodonというMastodon インスタンスの管理人をしています。
趣味的な好奇心と、Google Cloud Platform の無料分がかなり余っている状況だったので、Pleromaのサーバを建ててみた。
本記事では、Pleroma を Google Cloud Platform 上で建てるまでの手順を解説します。
#必要なもの
- Google Cloud Platform のアカウント(GoogleのアカウントがあればOK)
- お名前.com のアカウント
- クレジットカード(GCPやお名前.comでドメイン購入に必要)
- 取得したドメイン
サーバ構築手順
基本的には、ておりあ氏のこの記事をもとにすすめていく。
VMインスタンスの作成
まず、GCPのコンソールでProjectを作成する。次に、Computer Engine でVMインスタンスを作成。
OSは Ubuntu 16.04 LTS を使用します。
それと、HTTPとHTTPSのトラフィック許可にチェックを入れておいてください。
最後に「作成」をクリックすることでVMインスタンスが作成されます。
DNSなどの設定。
下記の記事の「Cloud DNSの設定」を参照して設定しました。
GCE(Google Compute Engine)で独自ドメインを設定する
此方の記事通りにすればDNSの設定はOKです。
Pleromaの構築
作成したVMインスタンスをSSHで開いてやり、Pleromaの環境を構築していきます。
まず、下記のコマンドを実行してアップデートをかけておきます。
sudo apt update && sudo apt dist-upgrade
次に、postgres-9.6以外の必要なものをインストールします
sudo apt install git build-essential openssl ssh sudo letsencrypt
インストール完了後、以下のコマンドを実行して postgres-9.6 をインストールします。
sudo sh -c "echo 'deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main' > /etc/apt/sources.list.d/pgdg.list"
wget --quiet -O - http://apt.postgresql.org/pub/repos/apt/ACCC4CF8.asc | sudo apt-key add -
sudo apt update
sudo apt install postgresql-9.6
これで、postgres-9.6 がインストールされます。
ここまで作業を進めてきた辺りでSSL証明を取得します(DNS周りのエラーが表示されたら飛ばしてください。あとでまた実行するとOKです)
letsencrypt certonly --standalone -d example.com(任意の独自ドメイン)
次に、Elixir/Erlang をインストールします。
wget https://packages.erlang-solutions.com/erlang-solutions_1.0_all.deb && sudo dpkg -i erlang-solutions_1.0_all.deb
sudo apt update
sudo apt install elixir erlang-dev erlang-parsetools erlang-xmerl
インストール完了後、Pleromaユーザーの追加&sudoの有効化を行います。
sudo adduser pleroma
sudo usermod -aG sudo pleroma
ユーザーを切り替えて、Pleromaのソースコードをcloneします。
su - pleroma
git clone https://git.pleroma.social/pleroma/pleroma.git
pleromaへ移動し、必要な依存関係を取得します。
cd pleroma
mix deps.get
次に、設定ファイルを作成
mix generate_config
ドメインなどを聞かれますので随時入力してください。
その後、以下のコマンドを実行していきます。
mv config/{generated_config.exs,prod.secret.exs}
sudo su postgres -c 'psql -f config/setup_db.psql'
MIX_ENV=prod mix ecto.migrate
これで Pleromaユーザーでの作業は完了です。
exit して rootユーザーへ戻ります。
exit
rootに戻ったら、nginxをインストールします
sudo apt install nginx
次に、Pleromaのソースコード内にあるテンプレートを使って、nginxの設定を記述します
単に、example.tldを取得したドメインに変更するだけです。
sudo cp /home/pleroma/pleroma/installation/pleroma.nginx /etc/nginx/sites-enabled/pleroma.nginx
sudo vi /etc/nginx/sites-enabled/pleroma.nginx
変更が終わったら、nginxを再起動します。
sudo systemctl restart nginx.service
最後に、Pleromaのサービス化を行います。
こちらもテンプレートを編集し、使用します。
sudo cp /home/pleroma/pleroma/installation/pleroma.service /etc/systemd/system/pleroma.service
コピー後、以下のコマンドで編集します。
vi /etc/systemd/system/pleroma.service
Environment="HOME=/home/pleroma" と書いてある箇所を
Environment="MIX_ENV=prod"
このように変更します。
後は、以下のコマンドを実行すれば、OKです。
sudo systemctl enable --now pleroma.service
sudo systemctl start pleroma.service
#終わりに
今現在、GCPの一番スペックの低いVMインスタンスで運用していますが中々に快適です。
他なMastodonやPleromaともやり取りができるので、ちょっと腕試しにお一人様インスタンスを立てたいという方にはPleromaはオススメかもしれませんね
#追記
PleromaをGCP上でほぼ一発で構築できるShell書いた
#参考記事など