# エックスサーバーVPSのMastodonイメージを使用したソロインスタンスに新規ユーザーを追加した

3 min read
Table of Contents

エックスサーバー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にコメントアウトを書いてもらった。

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

My avatar

Thanks for reading my blog post! Feel free to check out my other posts or contact me via the social links in the footer.


More Posts

# PM2を使ってMastodonのBotを作成した

4 min read

前回に引き続き、ソロインスタンスのローカルタイムラインをRSS Feedとして活用したいという思いで、今回は追加したアカウンをBotとして機能するようにした。

Read

Comments