
オープンソースのリンク分析&OSINTフレームワーク
オープンソースのビジュアルリンク分析およびOSINTフレームワーク。 無料で自己ホスティング可能、コミュニティ主導。
機能 • スクリーンショット • クイックスタート • Docker • Transform Hub • アーキテクチャ • コントリビューション
注意: このプロジェクトは活発に進化しています。中核機能とテストカバレッジは確立されていますが、リリースごとにドキュメント、堅牢性、機能の充実を継続的に改善しています。コントリビューション、バグ報告、フィードバックを歓迎します。
docker compose up でワンコマンドデプロイ| グラフ調査 | エンティティエンリッチメント |
|---|---|
![]() | ![]() |
| Transform Hub | エクスポート / インポート |
|---|---|
![]() | ![]() |
| ツール | バージョン |
|---|---|
| Python | 3.14+ |
| uv | 最新 |
| Node.js | 20+ |
| pnpm | 最新 |
cd backend uv sync uv run uvicorn ogi.main:app --reload
The API will be available at `http://localhost:8000`.
For local transform execution, Redis and the transform worker must also be running. Redis alone is not enough.
Start Redis:```bash
docker run -d --name ogi-redis -p 6379:6379 redis:7-alpine
2番目のターミナルで変換ワーカーを起動してください。```bash cd backend uv run python -m ogi.worker.run_worker
`Job queue not available` または `Redis not available` が表示された場合は、以下を確認してください:
- `OGI_REDIS_URL` がローカルホストベースの実行では `redis://localhost:6379/0` を指していること
- Redis が起動した後にバックエンドが再起動されたこと
- 別のワーカープロセスが実行中であること
- Docker Compose の外部で Docker 専用のホスト名 `redis` を使用していないこと
PostgreSQL (`OGI_USE_SQLITE=false`) に対してバックエンドを実行する場合、起動時にリクエストを処理する前に Alembic マイグレーションが自動的に適用されます。Docker デプロイでも、バックエンドコンテナのエントリポイントで同様の処理が行われます。
AI Investigator の実行は、別のワーカーによって処理されます:```bash
cd backend
uv run python -m ogi.agent.run_worker
cd frontend pnpm install pnpm dev
Open http://localhost:5173 を開く。以上です。
### AI Investigator
AI Investigatorは、プロバイダーを利用したオプションのワークフローで、変換シーケンスの計画、承認の要求、ワークスペース内での調査進捗の要約を行うことができます。
- プロジェクト内の`AI Investigator`タブを開く
- 調査設定ダイアログでプロバイダーとモデルを設定する
- プロバイダーのAPIキーを`API Keys`に保存する
- バックエンドと一緒に別個の`agent-worker`プロセスを実行する
現在の実装では、ユーザーごとのプロバイダー設定と、メインAPIサーバーから独立して調査ステップを実行する専用ワーカーをサポートしています。
### CLI
CLIを実行するための2つのサポート方法:
**推奨**(アクティベーション不要):```bash
cd backend
uv sync
uv run ogi --help
アクティブ化されたvirtualenv (プレーン ogi コマンド):```bash
cd backend
uv venv
..venv\Scripts\Activate.ps1 uv pip install -e . ogi --help
## Docker
### 開発```bash
cp .env.example .env
docker compose up
事前にビルドされたGHCRイメージを使用してください。
重要: docker-compose.prod.yml は外部のPostgreSQLデータベースが必要です。dbサービスは含まれていません。
すべてを内蔵したローカルDockerスタック(PostgresとRedisが組み込まれている)が必要な場合は、以下を使用してください:```bash docker compose up -d
既に到達可能なPostgreSQLインスタンスがあり、それに応じて `OGI_DATABASE_URL` を設定している場合にのみ、本番用のcomposeファイルを使用してください:```bash
docker compose -f docker-compose.prod.yml pull
docker compose -f docker-compose.prod.yml up -d
.env内のOGI_IMAGE_TAGを設定して、特定のリリースイメージタグ(例:v0.2.6)を固定します。デフォルトはlatestです。
新しいHetznerユーザーは、最初のリンクを使用してHetzner Cloudのクレジットを利用してサインアップできます。これは紹介リンクであり、紹介が条件を満たした場合、OGIメンテナーもHetzner Cloudクレジットを受け取ることがあります。サーバーを作成した後、上記のDockerデプロイコマンドを使用してOGIを実行してください。
OGIには、max_results、max_links、max_urls、max_content_charsなどの項目に対して、適切なtransformごとの最大値が組み込まれていますが、これらの上限は中央で上書き可能になり、クラウドデプロイメントがローカル制限をハードコーディングせずに適用できるようになりました。
.env内のOGI_TRANSFORM_SETTING_MAX_OVERRIDESを使用します:```env
OGI_TRANSFORM_SETTING_MAX_OVERRIDES=max_results=50,max_urls=25,max_links=40,max_content_chars=20000
ローカルファーストデプロイメントで特定の制限を解除するには:```env
OGI_TRANSFORM_SETTING_MAX_OVERRIDES=max_results=none,max_urls=none,max_links=none,max_content_chars=none
オーバーライドはトランスフォーム設定名をキーとしており、ビルトイン・トランスフォームやOGIの共有トランスフォームベース/ランタイムを使用するコミュニティプラグインに適用されます。
ogi.khas.app のホスト型クラウドバージョンは、ユーザーがセルフホストする前にOGIをすばやく試せるように当初構築されました。その後、このプロジェクトで最も人気のある利用方法となり、350人以上のアクティブなクラウドユーザーがいます。
その利用により、このサイドプロジェクトのインフラコストも増加しました。そのため、リポジトリにはクラウド専用のサポーターサブスクリプションとトランスフォーマー実行のクールダウンシステムが含まれています。パブリッククラウドインスタンスでは、無料ユーザーはトランスフォーマーの実行間にタイムアウト制限を受けることがありますが、サポーターユーザーはSupabaseとVPSの費用を賄うために象徴的な月額3米ドルで購読できます。
サポーターサブスクリプションは、プロファイルの課金コントロールまたはStripeの課金ポータルからキャンセルできます。キャンセルすると将来の請求は停止されますが、支払い済みのサブスクリプション期間は返金または日割り計算されません。
この課金コードは設定によって意図的にガードされています。OGI_DEPLOYMENT_MODE=cloud かつ OGI_CLOUD_BILLING_ENABLED=true の場合にのみ効果を発揮します。セルフホストデプロイメントでは課金を無効にしたままにし、課金やペイウォールの動作は一切表示されないようにしてください。
OGIには、特にセルフホストデプロイメント全体での実際の利用状況を把握するための、インストールレベルの製品テレメトリーが含まれています。
OGI_TELEMETRY_ENABLED=true でテレメトリー収集を有効化OGI_TELEMETRY_LEVEL=full がデフォルトの収集レベルOGI_TELEMETRY_ENABLED=false と設定するとテレメトリーを完全に無効化OGI_TELEMETRY_LEVEL=basic と設定すると送信内容を削減