コンテンツにスキップ

セットアップウィザード

bun run setup は、ローカルでのBunベースのインストールに推奨されるセルフホストパスです。 .env を作成し、CRYPTO_SECRET を生成し、Discordボットのトークンを尋ね、PostgreSQLを設定し、 bun.lock に記録された正確な依存関係をインタラクティブにインストールするため、プロンプトに従うだけで済みます。 再実行しても安全です。既存の .env の値は、再設定を選択しない限り保持されます。

Terminal window
git clone https://github.com/Bredrumb/TomoriBot.git
cd TomoriBot

コマンドを実行すると、2つのパスのいずれかを選択することになります。

Terminal window
bun run setup
パス使用する場合実行内容
フルインストール軽量な追加機能を含む推奨のセットアップを行いたい場合。基本インストールを実行後、以下の4つの追加機能を試行します。
基本インストール最低限動作するボットのみが必要な場合。.env、Discordトークン、PostgreSQL、および依存関係を作成・設定します。
  • Bun(ボットおよびウィザード自体の実行に必要です)。
  • Node.js v20+(MCPツールで使用されます)。
  • GuildMembersMessageContent、および GuildPresences の特権インテントが有効になっている Discordボットのトークン
  • データベース。 TomoriBotはすべてをPostgreSQLに保存します。 ウィザードが自動で行うため、手動で設定する必要はありません。 PostgreSQLがすでにインストールされている場合はそれを使用し、 インストールされていない場合はDocker上で実行します。 始める前に、どちらか一方がインストールされていることだけを確認してください。

psql が見つからない場合やプロビジョニングに失敗した場合、ウィザードは手動で実行するためのSQLを出力します。 いずれにせよ、TomoriBotは初回起動時にスキーマ、シード、移行、pgcrypto、およびRAGスキーマを自動的に初期化します。

フルインストールでは、まず基本インストールが実行され、その後以下の追加機能のインストールが試行されます。 いずれかが失敗した場合、ウィザードは手動で完了させるためのコマンドやガイドを出力し、そのまま処理を続行します。

追加機能目的
pgvectorドキュメント/RAGメモリー用のベクトル検索。
pg_cronオプションのスケジュールされたクールダウン/リマインダー行のクリーンアップ。
トークナイザーアセットモデルを意識したロジットバイアス用のローカルのトークナイザーアセット。

これらを手動でインストールする場合は、 マニュアルセットアップの追加機能を参照してください。

Terminal window
bun run dev # ボットのみ
bun run launch --searxng --crawl4ai # ボットとサイドカー(bun run launch --help を参照)

ボットがオンラインになったら、Discordで /setup を実行してAIプロバイダーを接続します。 自身のプロバイダーを持たないワークスペースは返信できません。ただし、 各メンバーの個人プロバイダーが代わりに応答するユーザーBYOKモードで動かす場合は例外です。 そのため、これはどのインストールパスでも最後の手順になります。

/setup は、それを実行した本人だけが操作できる一時的なチェックリストパネルを開きます。 サーバー内ではサーバー管理権限が必要で、DMではその本人のワークスペースで利用できます。 パネル上のすべての行は下書きの値であり、セットアップを完了(Finish Setup)だけが何かを書き込む唯一の操作です。 そのため、開く、編集する、キャンセルする、再開するといった操作を行っても、データベースの行は一切変更されません。

ステップ表示条件収集する内容
ポリシー(Policies)RUN_ENV=production の場合のみ利用規約とプライバシーポリシーへの同意。両方とも1つのモーダルで行います。
AIプロバイダー(AI Provider)すべての環境返信がモデルにどう届くか。下記の3つのアクセスモードのいずれか。
初期設定(Starting Settings)すべての環境開始時のペルソナ、返信スタイル、タイムゾーン、ワークスペースのデフォルトシステムプロンプト。

RUN_ENV がそれ以外の値の場合は、2ステップのレイアウトのみが表示され、ポリシーの文言は一切表示されません。 RUN_ENV=production で動作しているデプロイメントは、/legal license に加えて /legal terms-of-service/legal privacy-policy を登録します。 それ以外の値では /legal license のみが登録されます。

プロバイダーのアクセスモード

Section titled “プロバイダーのアクセスモード”
  • AIプロバイダー(推奨)(AI Provider (Recommended)): カタログからプロバイダーを選び、APIキーを貼り付けます。 キーはプロバイダーに対して検証され、暗号化されて下書きに保存されます。 パネルにはキーが保存されたことのみが表示され、キー自体が表示されることはありません。 プロバイダーごとの手順は、/help を実行し、セットアップ(Setup)、 ステップ1:APIキーを取得(Step 1: Get an API Key)の順に選択して確認してください。
  • カスタムエンドポイント(上級者向け)(Custom Endpoint (Advanced)): セルフホストまたはプロキシ エンドポイント用の、2つのボタンから成るサブエリアです。 接続を設定(Configure Connection)はAPI互換性、ラベル、URL、任意の認証トークンを収集し、 エンドポイントが応答するかを確認します。 テキストモデルを設定(Configure Text Model)はモデルコード、コンテキストサイズ、機能宣言を収集し、 接続が検証されるまで無効のままになります。 接続を再度保存すると、モデル宣言はクリアされます。宣言の内容は選択したAPI互換性に依存するためです。 これは /providers が行うのと同じ登録処理をウィザード内で行うもので、 セットアップを完了(Finish Setup)を押すまで行は一切作成されません。
  • ユーザーBYOK(サーバーのみ、DMでは不可): ワークスペースは自身のプロバイダーを一切持たず、 メンバーが発言した際の返信はすべて代わりに個人プロバイダーで解決されます。 モーダルで確認したうえで、メンバーに /personal providers で自分のプロバイダーを登録してもらってください。 サーバーモデレーションを参照してください。

1つの4行モーダルで、ペルソナ、返信スタイル、タイムゾーンのオフセット、デフォルトのシステムプロンプトを収集します。 タイムゾーンは任意項目で、デフォルトはUTCです。 システムプロンプトは組み込みデフォルト(推奨)(Built-in Default (Recommended))に加えて、 ワークスペースのカタログにあるすべてのプリセットから選べます。 組み込みの選択肢はプロンプトのテキストを一切保存しないため、出荷時のデフォルトを追い続けます。 一方、プリセットを選ぶと、そのプリセットのテキストがコミット時点の内容として保存されます。 保存済みのペルソナやプロンプトをカタログから削除すると、別のものが選ばれるまでこのステップが再度開きます。

セットアップを完了(Finish Setup)は、表示されているすべてのステップが完了するまで無効のままです。 これはカタログとワークスペースの状態を再検証し、下書き全体を1つのトランザクションでコミットし、 パネルを受付票(receipt)に置き換えます。 キャンセル(Cancel)は下書きを破棄し、パネル上のすべてのコントロールを失効させます。

下書きはデータベースではなくボットのプロセス内に存在するため、キャンセル、完了、 またはプロセスの再起動が発生するまで残り続けます。 一度に保持される下書きは最大 SETUP_DRAFT_MAX_ENTRIES(デフォルト200)件で、 上限に達すると最も古いものが破棄されます。 これは .env.optional.exampleセットアップウィザードの下書きの項に記載されています。 すでに利用できなくなったセッションのコントロールは、何も書き込みません。

バックアップ優先のアップデーターコマンドである bun run update を使用してください。

これにより、bun run backup が実行され、続いて git pull --rebase --autostash、 そして bun install --frozen-lockfile が実行されます。 dist/ から実行する場合は --build を、Composeデプロイメントの場合は --docker を追加してください。 詳細についてはメンテナンスとバックアップページを参照してください。