LoginSignup
9
9

More than 5 years have passed since last update.

PleromaをGoogle Cloud Platformで建ててみた

Last updated at Posted at 2018-03-08

はじめに

普段は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書いた

参考記事など

ubuntuにpleromaを入れてなんとなく動かす

Ubuntu16.04にPostgreSQLをインストール

GCE(Google Compute Engine)で独自ドメインを設定する

9
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
9