インストール
方法A:Docker(お試しにおすすめ)
git clone git@github.com:pipihosting/themis.git
cd themis
cp .env.example .env # RAILS_MASTER_KEY と ANTHROPIC_API_KEY を記入
docker compose up
http://localhost:3000にアクセスし、シード済みの管理者アカウント admin@themis.local / password123 でサインインしてください。
docker compose upは2つのサービス — db(Postgres 16)とapp(Rails 開発イメージ)を起動します。appコンテナはリポジトリをバインドマウントするため、コード変更はライブリロードされます。gemとPostgresのデータは再起動をまたいで名前付きボリュームに保持されます。MCPサーバー(GitHub、Sentry、Google Workspace)は同梱されません。MCPを使わないフローではエージェントは動作します。必要な場合は以下で別途インストールしてください。
方法B:ネイティブ
前提条件
- Ruby 3.4.7(miseまたはrbenvを使用)
- PostgreSQL 14以上
- Node.js 20以上(MCPサーバーとアセットパイプライン用)
- Go(GitHub MCPサーバー用)
クローンとセットアップ
git clone git@github.com:pipihosting/themis.git
cd themis
bin/setup
bin/setupはgemのインストール、データベースの作成、マイグレーションの実行、開発サーバーの起動を自動的に行います。
環境変数
.env.exampleを.env(または.env.local)にコピーし、以下を記入してください:
POSTGRES_HOST=localhost
POSTGRES_USERNAME=postgres
POSTGRES_PASSWORD=your_password
オプションのボット識別情報の上書きやAnthropicプロキシ設定を含む全リストは.env.exampleを参照してください。
Rails認証情報
ThemisはAPIキーをRailsの暗号化認証情報に保存します:
bin/rails credentials:edit
Anthropic APIキー(必須)とオプションのインテグレーションを追加します:
themis:
anthropic_api_key: sk-ant-xxx
# オプション — Google OAuthサインイン用
google_oauth:
client_id: xxx
client_secret: xxx
# オプション — Tier 1軽量エージェント用
openai_api_key: sk-xxx
MCPサーバーのインストール
Themisはエージェントを外部サービスに接続するためにMCP(Model Context Protocol)サーバーを使用します:
# Sentry(オプション)
npm install -g @sentry/mcp-server
# Google Workspace(オプション)
pip install workspace-mcp
GitHubへのアクセスはMCPサーバーではなく、専用のGitHub Appを使用します。登録とインストールについては admin/github-app.md を参照してください。
Linear MCPはLinearがhttps://mcp.linear.app/mcpでホスティングしています。ローカルへのインストールは不要です。
サーバーの起動
bin/dev
以下が起動します:
| プロセス | ポート | 説明 |
|---|---|---|
| Rails | 3000 | Webアプリケーション |
| Tailwind | — | CSSウォッチャー |
| Solid Queue | — | バックグラウンドジョブ |
| Google Workspace MCP | 10299 | Drive + Calendar + Gmailインテグレーション(インストール済みの場合) |
| Jekyll docs | 4000 | ドキュメントサイト |
http://localhost:3000にアクセスして開始してください。
シードデータ(開発環境)
bin/setupとdocker compose upのいずれも初回起動時にdb:prepareを実行し、管理者ユーザーを1件シードします:
| メール | パスワード | 役割 |
|---|---|---|
admin@themis.local | password123 | 管理者、共有「Default」スペースのオーナー |
ALLOW_PASSWORD_LOGIN=true(docker-compose.ymlのデフォルト)の場合、サインインページにメール/パスワードのログインフォームが表示されます。ネイティブ開発でGoogle OAuthを設定せずにサインインする場合は、.envで有効化してください。シードのソースはdb/seeds/default.rbを参照してください。