Hako weblog

GCE無料枠でAkkomaインスタンスを作る!その1

⚠注意 この記事は超超超超初心者が遊び半分でインスタンスを建てた際の記録のようなものです。ここで書いてある以外にも気をつけないと行けないことやマナーなどもありますので、インスタンスを建てる際は他の情報も調べるようにしてください。

※ここではドメインの設定などについて説明していません。その2もご覧ください。

こんにちは、Hakoです。

最近MisskeyやMastodonなどの分散型SNSが話題になっています。そこで、「おひとり様インスタンス」というものを作ってみることにしました。
自分専用のインスタンスでのんびり過ごそうというわけです。

だがしかし、金欠Hakoはどうしてもコストを抑えたいです。
ということで、ドメインは今持っている hako.lol を使い、サーバーはGoogle CloudのCompute Engineを使うことにしました。無料枠で使えるe2-microはスペックが低く、MastodonやMisskeyは動かないようなので、今回はAkkomaを使用することにしました。

1.VMインスタンスを作成

Console → プロジェクトの選択から自分のプロジェクトを選択 → Compute Engineを選択 → VMインスタンスを選択し、インスタンスを作成 をクリック
これでインスタンスを作成する画面になると思います。
以下設定です

これで作成しましょう。
月間予測が$6.11になっていますが気にしなくていいようです。

インスタンスが作成されるとVMインスタンスのところに作成したものが出てくるので、右の方にあるSSHの隣の矢印から ブラウザ ウィンドウで開く をクリックするとブラウザのウィンドウでSSHが開けます。

2.Akkoma バックエンドの構築

いよいよAkkomaをインストールしていきます。基本的に公式ガイドに沿ってインストールします。

まずはシステムを更新しましょう。

sudo apt update && sudo apt full-upgrade -y

時間がかかるので気長に待ちましょう。

更新が終わったら、必要なパッケージをインストールします。

sudo apt install git build-essential postgresql postgresql-contrib cmake libmagic-dev wget -y

ElixirとErlangをインストールします。

sudo apt update
sudo apt install elixir erlang-dev erlang-nox -y

オプションのパッケージもインストールします。

sudo apt install imagemagick ffmpeg libimage-exiftool-perl -y

Akkomaユーザーを追加します。

sudo useradd -r -s /bin/false -m -d /var/lib/akkoma -U akkoma

Akkomaのリポジトリをcloneし、Akkomaユーザーをディレクトリの所有者にします。

sudo mkdir -p /opt/akkoma
sudo chown -R akkoma:akkoma /opt/akkoma
sudo -Hu akkoma git clone https://akkoma.dev/AkkomaGang/akkoma.git -b stable /opt/akkoma

新しいディレクトリに移動します。

cd /opt/akkoma

Akkomaの依存関係をインストールします。Hexのインストールを求められたら、yと入力しenterを押しましょう。

sudo -Hu akkoma mix deps.get

Akkomaの構成を追加します。rebar3のインストールを求められたら、先程と同じくyと入力しenterを押しましょう。

sudo -Hu akkoma MIX_ENV=prod mix pleroma.instance gen

これには時間がかかります。

途中でインスタンスについていくつかの質問に答えます。内容などは以下の通りです。

この設定をAkkomaがロードするように名前を変更します。

sudo -Hu akkoma mv config/{generated_config.exs,prod.secret.exs}

続いて実行します。

sudo -Hu postgres psql -f config/setup_db.psql

データベースの移行を実行します。

sudo -Hu akkoma MIX_ENV=prod mix ecto.migrate

これでAkkomaを起動できるようになりました。

sudo -Hu akkoma MIX_ENV=prod mix phx.server

一回起動したらctrl+c → a で終了しましょう。

cdを実行し一番上のディレクトリに戻ります。

Nginxをインストールします。

sudo apt install nginx -y

certbotもインストールします。

sudo apt install certbot -y

Nginxを一旦停止します

sudo nginx -s stop

それぞれを設定します。

sudo mkdir -p /var/lib/letsencrypt/
sudo certbot certonly --email メアド -d ドメイン --standalone

yを送信して進めますx2

nginxの設定の例をコピーして有効にします。

sudo cp /opt/akkoma/installation/nginx/akkoma.nginx /etc/nginx/sites-available/akkoma.nginx
sudo ln -s /etc/nginx/sites-available/akkoma.nginx /etc/nginx/sites-enabled/akkoma.nginx

設定のファイルがあるディレクトリに移動します

cd /etc/nginx/sites-enabled

vimで設定のファイルを編集します

sudo vi akkoma.nginx

vimで5箇所のexample.tldをあなたのドメインに置き換えます

iキーで編集モードに入り、escで編集モードを終わります。:wqと入力し、Enterを押すことで保存できます。

保存を終えたらcdを実行し上のディレクトリに戻ります。

nginxを有効にして起動します。

sudo systemctl enable --now nginx.service

サンプルサービスファイルをコピーします。

sudo cp /opt/akkoma/installation/akkoma.service /etc/systemd/system/akkoma.service

akkomaを有効にして起動します。

sudo systemctl enable --now akkoma.service

これでバックエンドは完成です!

3.Akkoma フロントエンドのインストール

次はフロントエンドをインストールしていきます。

akkomaディレクトリに移動します。

cd /opt/akkoma

akkomaユーザーでpleroma-feをインストールします。時間がかかります。

sudo -Hu akkoma mix pleroma.frontend install pleroma-fe --ref stable

akkomaユーザーでadmin-feをインストールします。

sudo -Hu akkoma mix pleroma.frontend install admin-fe --ref stable

cd ../を2回実行し一番上のディレクトリに戻ります。

一応再起動しておきます。

sudo systemctl restart akkoma.service

これでドメインにアクセスするとakkomaのインスタンスが表示されるはずです

今回はとりあえずここまで。次回はユーザーの追加やadmin-feでのインスタンスの設定変更などをしていきます。


Recent posts