コンテンツにスキップ

手動セットアップ

これは、ガイド付きウィザードを使用したくない技術的なユーザー向けの手動インストール手順です。手厚いガイドラインが必要な場合は、代わりにセットアップウィザードを使用してください。ウィザードが .env を作成し、安全な CRYPTO_SECRET を生成し、PostgreSQLを設定し、インストールを実行してくれます。

  • Bun
  • Node.js v20以上(MCPツールに使用)
  • ネイティブにインストールされたPostgreSQL、またはDockerコンテナで実行されているPostgreSQL(ステップ2を参照)

PostgreSQLスキーマ、pgcrypto、シード、および移行は、ボットの起動時に自動的に初期化されます。

Terminal window
git clone https://github.com/Bredrumb/TomoriBot.git
cd TomoriBot
bun install --frozen-lockfile

サンプルから環境ファイルを作成し、必要な値を入力します。

Terminal window
cp .env.example .env

必須項目:

  • DISCORD_TOKEN:Discordボットのトークン(GuildMembersMessageContent、および GuildPresences の特権インテントを有効にしてください)。
  • CRYPTO_SECRET:32文字の暗号化キー(保存されたAPIキーを暗号化するために使用されます)。
  • PostgreSQL接続:POSTGRES_HOSTPOSTGRES_PORTPOSTGRES_USERPOSTGRES_PASSWORDPOSTGRES_DB

オプションの調整値は .env.optional.example にあります。カスタマイズしたい値(制限、タイムアウト、機能トグル、サイドカーURLなど)をコピーしてください。

Terminal window
bun run dev

TomoriBot up and running! と表示されたら、Discordに移動してサーバーで /config setup を実行し、AIプロバイダーのキーを追加してボットを初期化します。Discord側の操作についてはクイックスタートを参照してください。

オプションのサイドカー(SearXNG、Crawl4AI、ローカルTTS/STT)をボットと一緒に起動したい場合は、bun run dev の代わりに bun run launch を使用します。

Terminal window
bun run launch --searxng --crawl4ai
bun run launch --help # すべてのフラグを表示

オプションの追加機能(手動での「フルインストール」)

Section titled “オプションの追加機能(手動での「フルインストール」)”

セットアップウィザードフルインストールパスでは、基本インストールの上に4つの軽量な追加機能がレイヤー化されます。ボットの実行に必須のものはありませんが、それぞれが特定の機能をアンロックします。手動でインストールする場合は、必要なものを追加してください。

pgvector : ドキュメント/RAGメモリー

Section titled “pgvector : ドキュメント/RAGメモリー”

RAG(ドキュメントのアップロードとチャンネル間のリコール)は、エンベディングを vector カラムに保存するため、pgvector拡張機能が必要です。お使いのPostgreSQLのメジャーバージョンに合わせてインストールします。

Terminal window
# Debian/Ubuntu(例: PostgreSQL 16の場合)
sudo apt-get install -y postgresql-16-pgvector

次に、データベースで一度だけ有効にします。.envPOSTGRES_* の値を使って psql で接続します(POSTGRES_PASSWORD の入力を求められます)。

Terminal window
# ネイティブ / ホストのpsql(POSTGRES_USER と POSTGRES_DB はご自身の値に置き換えてください):
psql -h localhost -p 5432 -U tomori -d tomodb
# または、データベースをステップ2のDockerコンテナで実行している場合:
docker exec -it tomori-db psql -U tomori -d tomori

接続したら、次を実行します。

CREATE EXTENSION vector;

pgvectorがなくてもボットは動作しますが、RAG機能は完全に利用できなくなります。この拡張機能は、バックアップを復元する前にターゲットデータベースにも必要です。詳細については安全な移行を参照してください。

pg_cron : スケジュールされたクリーンアップジョブ

Section titled “pg_cron : スケジュールされたクリーンアップジョブ”

pg_cron は、オプションの定期的なデータベースメンテナンス(クールダウン/リマインダー行のクリーンアップ)を強力にサポートします。このリポジトリのDocker Composeでは既に設定されています。

自己管理のPostgreSQLの場合は、アクティブな設定ファイルを見つけます。

SHOW config_file;

postgresql.conf で拡張機能を有効にします。shared_preload_libraries に他のライブラリがすでにリストされている場合は末尾に追加します。

shared_preload_libraries = 'pg_cron' # 例: 'pg_stat_statements,pg_cron'
cron.database_name = 'your_dbname'

PostgreSQLを再起動した後、以下を実行します。

CREATE EXTENSION IF NOT EXISTS pg_cron;

トークナイザーアセット : モデルを意識したロジットバイアス

Section titled “トークナイザーアセット : モデルを意識したロジットバイアス”

ロジットバイアス(絵文字/単語の繰り返しペナルティ)にはローカルのトークナイザーアセットが必要です。

Terminal window
bun run setup:tokenizers

一部のファミリー(例: Gemma)はゲートで保護されており、ライセンスに同意した後にHuggingFaceトークンが必要です。

Terminal window
# Windows (PowerShell)
$env:HF_TOKEN="hf_xxx"; bun run setup:tokenizers
# macOS/Linux
HF_TOKEN=hf_xxx bun run setup:tokenizers

この手順を行わないとロジットバイアスは暗黙のうちに無効化されますが、その他のすべては正常に動作します。

URL Fetch MCP : fetch_url フォールバック

Section titled “URL Fetch MCP : fetch_url フォールバック”

バンドルされている fetch_url ツールは、ブラウザなしのページフェッチ用として、Pythonの mcp-server-fetch パッケージにフォールバックします。これにはPython 3が必要です。

Terminal window
pip install mcp-server-fetch
# Linuxで "externally-managed-environment" エラーが発生した場合:
pip install --break-system-packages mcp-server-fetch
# ...または仮想環境(virtualenv)内にインストールしてください。

DuckDuckGo/Feloの web_search は別物であり、bun install --frozen-lockfile とともに同梱されているため、追加の手順は必要ありません。

メンテナンス、更新とバックアップ

Section titled “メンテナンス、更新とバックアップ”

インストールが完了したら、ホスト側のスクリプト(bun run updatebun run backupbun run restore-backupbun run nuke-dbbun run rotate-keys など)、および更新とバックアップの手順はすべてメンテナンスとバックアップページにあります。新しいバージョンをプルする前に、まずは安全な移行から始めてください。