Skip to content

設置の手順

Tatsuya Koishi edited this page Feb 24, 2022 · 126 revisions

動作環境について、先に確認しておくこと。

基本的な手順

ボットアカウントの作成

エージェントボット2体を登録する為のアカウントを事前に登録する。 ボットのアクセストークンは後ほど取得する手順があるので、ここではアカウントを作成するだけでいい。

リポジトリをクローン

cd 設置先ディレクトリ
git clone git@github.com:pooza/mulukhiya-toot-proxy.git

依存するgemのインストール

めいすきーの場合

cd mulukhiya-toot-proxy
bundle config set without 'postgres'
bundle install

めいすきー以外の場合

cd mulukhiya-toot-proxy
bundle config set without 'mongo'
bundle install

リバースプロキシ設定

nginxにリバースプロキシを設定する。 該当するserverブロックに以下を追記し、nginxを再起動。

設定ファイルを編集

ハンドラの有効/無効

  • 利用しないことが分かっているハンドラは、この時点で無効に設定するとよい。
  • 逆に、実験的な扱いであるハンドラは、この時点で有効にする。

以下、Nextcloud関連機能(NextcloudClippingCommandHandler, NextcloudBookmarkHandler)を無効にする設定の例。

handler:
  nextcloud_clipping_command:
    disable: true
  nextcloud_bookmark:
    disable: true

エージェントボット

エージェントボットの為の設定項目(以下)は、この時点では無作為な文字列を仮入力しておく。(なんでもいい)

以下、設定例。

agent:
  info:
    token: foo
  test:
    tokan: bar

設定の確認

設定後、設定の確認を実行。指摘された箇所がもしあれば、修正する。

bundle exec rake config:lint

設定への誤りが指摘されなければ、仮起動を行う。

bundle exec rake start

トークンの取得

エージェントボットのトークンを設定

エージェントボットの為の設定項目(以下)を、正しい値で本登録する。

なお、モロヘイヤHOMEに表示される暗号化トークンはクォートが必要な文字を含む為、必ずクォートして記述する。

agent:
  info:
    token: 'your_info_token' # シングルクォートでくくる
  test:
    tokan: 'your_test_token' # シングルクォートでくくる

再起動

bundle exec rake restart
bin/test.rb

100% passed が表示されることを確認。

任意の設定

これ以降は、動作上必須ではないがお勧めする設定。 動作には必須ではないとはいえ、少なくとも本番環境では、実際には強くお勧めする項目。

本体改造

syslog

mulukhiya-toot-proxyというプログラム名で、syslogに出力している。 以下、rsyslogでの設定例。

:programname, isequal, "mulukhiya-toot-proxy" -/var/log/mulukhiya-toot-proxy.log

ローテーションに関しては、設置先OSの各々の流儀で。

バックアップ

Redisのバックアップが必要。 自動で作成されるダンプファイル(*.rdb)を、何らかの方法(rsync等)で他のサーバに 定期的にコピーする。 日付を含めたファイル名で保存し、直近数世代を保管するのが望ましい。 バックアップ先サーバで、保管先ディレクトリのスナップショットを残す等でも可。

Sidekiqの認証

Sidekiqにリモートアドレス等によるアクセス制限が設定されているのでなければ、通常はBASIC認証を設定。

監視

監視環境を構築しているなら、公開API GET /mulukhiya/api/health (例えば、 https://mstdn.example.com/mulukhiya/api/health)に対してGETを行い、200を返すことの監視を行う。 このヘルスチェックURLに対して、UptimeRobotの無料枠で監視設定するのでもよい。

Clone this wiki locally