AWSでMastodonインスタンスを立てる


やること

  • AWS周りの設定
  • Mastodonインスタンスの構築

前提

  • AWSアカウントがある
  • CUIが扱える
  • 独自ドメインがある

当記事では、以下で構築します
- AWS ルートユーザー(12ヶ月無料期間中)
- 非Docker
- Mastodon v3.1.4
- メールサーバー非構築

実際にやってみる

AWS EC2インスタンスを作成

下記URL通りに基本進めていく

下記URLの説明と違う点

  • Ubuntu 18.04 LTS を選択
  • スペック選択は「無料期間枠の対象」となっているものを選択

※ここらへんのスペック周りは自分の好きなものをどうぞ
※無料期間枠の対象通りに立てると結構サーバーギリギリです

SSHログイン

今回はめんどくさかったので、Windows Terminal でログイン。
Powershell で鍵のあるディレクトリに移動しログイン。

※インスタンス右クリック > 接続からコピれる

Mastodon 構築

基本的に公式ドキュメント通り
https://docs.joinmastodon.org/admin/install/

公式ドキュメント通りに curl nodejs yarn を導入。

"System packages"を導入する際、apt install -y \ ... でちゃんと導入できなかったら、1個1個順番に入れてください。
1個でも抜けると動きません(←抜けてて動かなかった人)

公式ドキュメント通りに Ruby 導入。mastodonというユーザーを作る。
公式ドキュメント通りにデータベースをつくる。

公式ドキュメント通りに行くと、Mastodon を clone するが、独自にGitで管理しながらいろいろ書き換えたいのならばフォークしておき、フォークからcloneすることをおすすめする。

clone 後もドキュメント通りに進めるが、

bundle config deployment 'true'
bundle config without 'development test'
bundle install -j$(getconf _NPROCESSORS_ONLN)
yarn install --pure-lockfile

上記の yarn install で注意。
ドキュメント通りに nodejs v12.xを入れていないとココでエラーを吐く。
吐いたときはこれで解決するので試してほしい。
yarn install時に、error : The engine "node" is incompatible with this module.

yarn installが終わったら、Mastodon のセットアップウィザードを起動させる。
ここは質問どおりに答えていけばいいだけだ。

終わり次第、公式ドキュメント通りにユーザーを切り替え nginx Let’s Encryptの設定を済ませる。

そして公式ドキュメント通りに進み、最後。

systemctl daemon-reload
systemctl start mastodon-web mastodon-sidekiq mastodon-streaming
systemctl enable mastodon-*

最後 systemctl enable mastodon-*はおそらく動かないと思うので一つ一つ指定してあげよう。
例:systemctl enable mastodon-web

上記コマンドで構築自体は終了。
ちなみに動かなかったときは sudo をつければなんとかなる。

設定したドメインに行くとアカウントの登録ができる。

アカウント周り

Mastodonのセットアップウィザード時に、SMTPサーバー等の設定をしていない人はおそらくアカウント作成してもメールが届かない。
また、シングルユーザモードで利用する人はあえてサーバーを作っていない人もいると思う。

そういったときは

ubuntu $ sudo su - mastodon
mastodon $ cd live
mastodon $ RAILS_ENV=production bundle exec bin/tootctl accounts create [USERNAME] [OPTIONS]
OK
New password: [AUTO_GENERATED_PASSWORD]

これでアカウントの作成ができる。
コマンドについてはコチラを参照→ mastodon コマンド備忘録

もちろん、ログインできたらパスワードは変えようね!

インスタンスの設定

インスタンス自体は立っているが、現状初期設定だ。なので色々変える。

まず、Mastodonにadmin権限のあるアカウントでログイン。
ユーザー設定 > 管理を開くといろいろと設定が出てくる。

  • ダッシュボード : だいたいのことが分かる
  • サイト設定 : インスタンスの名前などaboutページに表示される内容を編集できる
  • お知らせ : お知らせを掲載できる。(後術)
  • カスタム絵文字 : カスタム絵文字を追加できる(後術)
  • リレー : 連合リレーの設定(後術)

管理 > お知らせ

インスタンスのお知らせを掲載できる。
初心者UIの場合ヘッダーに、上級者UIの場合、ホームタブの上部ボタンから見ることができる。

friends.nicoやBestFriendsにあるトゥート欄の下のお知らせではない。

管理 > 連合リレー

おそらく初期設定のままだと、連合TLが一切流れてこないだろう。
他インスタンスのTLを流すには連合リレーの設定が必要。

いろいろ探してみてください

管理 > カスタム絵文字

カスタム絵文字を登録できます。
連合リレーを登録した後だと、他インスタンスの絵文字がたくさん表示されますが、使うことはできないのでご注意を。

お疲れさまでした。ここまでで一通り完了です。

おわりに

実際に運用していくと重たくなったりいろいろと問題が出てきますが、ググればだいたい出てくるのでググってください。

今後も楽しいマストドンライフを。