エックスサーバーVPSのMastodonイメージを使用したソロインスタンスを使用して、Mastodonを運用している。

3か月ほど運用してみて、ローカルタイムラインが機能していなということに気が付いた。

趣味サーバーであれば、ローカルタイムラインには趣味が合う投稿で溢れているのだろうけれど、ソロインスタンスは自身の投稿しかない。

そこでもう1つアカウントを追加し、その子にBotとして働いてもらうことにした。

色々試行錯誤してサーバーに不要なものをたくさんインストールしてしまったので、今後のことを考え、うまくいった方法をまとめておく。

色々調べて実行したけど、うまくいかないことも多く、エックスサーバーVPSのMastodonイメージが特殊なのかもしれないと考えているけど、言い訳かもしれない。

コンソールからユーザーを追加する

# Accountモデルの新しいインスタンスを作成し、データベースに保存する
# 'rss_feed' というユーザー名と 'rss feed' という表示名を持つアカウントを作成
account = Account.create(
  username: 'rss_feed',     # ユーザー名を 'rss_feed' に設定
  display_name: 'rss feed'  # 表示名を 'rss feed' に設定
)

# Userモデルの新しいインスタンスを作成(まだデータベースには保存しない)
user = User.new(
  email: 'example@mail.com',         # ユーザーのメールアドレス
  password: 'password',              # パスワード(仮のもの)
  password_confirmation: 'password', # パスワード確認(同じ値を指定)
  account: account                   # 先ほど作成した Account インスタンスを紐付け
)

# 招待IDを設定(最初の招待データを使用)
# Mastodonのユーザー登録では招待制を使用することがあるため、招待コードを紐付ける
user.invite_id = Invite.first.id

# ユーザーを承認済みに設定(管理者の承認が必要な場合に手動で承認を行う)
user.approved = true

# 利用規約に同意したことを示すフラグを設定
user.agreement = true

# ユーザーのメールアドレス確認を完了したことを示す
user.confirmed_at = Time.now

# メール確認をスキップ(通常は確認メールを送るが、この処理では省略)
user.skip_confirmation!

# ユーザーをデータベースに保存(バリデーションを強制的に通す)
user.save!

理解してないのでChat GPTにコメントアウトを書いてもらった。

試行錯誤したので、本当にこの通りだったか曖昧だけど、だいたいこんな感じだった。