手動セットアップ
これは、ガイド付きウィザードを使用したくない技術的なユーザー向けの手動インストール手順です。手厚いガイドラインが必要な場合は、代わりにセットアップウィザードを使用してください。ウィザードが .env を作成し、安全な CRYPTO_SECRET を生成し、PostgreSQLを設定し、インストールを実行してくれます。
- Bun
- Node.js v20以上(MCPツールに使用)
- ネイティブにインストールされたPostgreSQL、またはDockerコンテナで実行されているPostgreSQL(ステップ2を参照)
PostgreSQLスキーマ、pgcrypto、シード、および移行は、ボットの起動時に自動的に初期化されます。
1. インストール
Section titled “1. インストール”git clone https://github.com/Bredrumb/TomoriBot.gitcd TomoriBotbun install --frozen-lockfileサンプルから環境ファイルを作成し、必要な値を入力します。
cp .env.example .env必須項目:
DISCORD_TOKEN:Discordボットのトークン(GuildMembers、MessageContent、およびGuildPresencesの特権インテントを有効にしてください)。CRYPTO_SECRET:32文字の暗号化キー(保存されたAPIキーを暗号化するために使用されます)。- PostgreSQL接続:
POSTGRES_HOST、POSTGRES_PORT、POSTGRES_USER、POSTGRES_PASSWORD、POSTGRES_DB。
オプションの調整値は .env.optional.example にあります。カスタマイズしたい値(制限、タイムアウト、機能トグル、サイドカーURLなど)をコピーしてください。
bun run devTomoriBot up and running! と表示されたら、Discordに移動してサーバーで /config setup を実行し、AIプロバイダーのキーを追加してボットを初期化します。Discord側の操作についてはクイックスタートを参照してください。
オプションのサイドカー(SearXNG、Crawl4AI、ローカルTTS/STT)をボットと一緒に起動したい場合は、bun run dev の代わりに bun run launch を使用します。
bun run launch --searxng --crawl4aibun run launch --help # すべてのフラグを表示オプションの追加機能(手動での「フルインストール」)
Section titled “オプションの追加機能(手動での「フルインストール」)”セットアップウィザードのフルインストールパスでは、基本インストールの上に4つの軽量な追加機能がレイヤー化されます。ボットの実行に必須のものはありませんが、それぞれが特定の機能をアンロックします。手動でインストールする場合は、必要なものを追加してください。
pgvector : ドキュメント/RAGメモリー
Section titled “pgvector : ドキュメント/RAGメモリー”RAG(ドキュメントのアップロードとチャンネル間のリコール)は、エンベディングを vector カラムに保存するため、pgvector拡張機能が必要です。お使いのPostgreSQLのメジャーバージョンに合わせてインストールします。
# Debian/Ubuntu(例: PostgreSQL 16の場合)sudo apt-get install -y postgresql-16-pgvector次に、データベースで一度だけ有効にします。.env の POSTGRES_* の値を使って psql で接続します(POSTGRES_PASSWORD の入力を求められます)。
# ネイティブ / ホストの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 “トークナイザーアセット : モデルを意識したロジットバイアス”ロジットバイアス(絵文字/単語の繰り返しペナルティ)にはローカルのトークナイザーアセットが必要です。
bun run setup:tokenizers一部のファミリー(例: Gemma)はゲートで保護されており、ライセンスに同意した後にHuggingFaceトークンが必要です。
# Windows (PowerShell)$env:HF_TOKEN="hf_xxx"; bun run setup:tokenizers
# macOS/LinuxHF_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が必要です。
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 update、bun run backup、bun run restore-backup、bun run nuke-db、bun run rotate-keys など)、および更新とバックアップの手順はすべてメンテナンスとバックアップページにあります。新しいバージョンをプルする前に、まずは安全な移行から始めてください。