アップデート一覧に戻る
New releaseJul 25, 2026

ogi v0.8.0

オープンソースのリンク分析&OSINTフレームワーク

共有
OGI マスコット

OpenGraph Intel (OGI)

オープンソースのビジュアルリンク分析およびOSINTフレームワーク。 無料で自己ホスティング可能、コミュニティ主導。

License: AGPL v3 CI Docker Python 3.14+ TypeScript React FastAPI Version

機能スクリーンショットクイックスタートDockerTransform Hubアーキテクチャコントリビューション


注意: このプロジェクトは活発に進化しています。中核機能とテストカバレッジは確立されていますが、リリースごとにドキュメント、堅牢性、機能の充実を継続的に改善しています。コントリビューション、バグ報告、フィードバックを歓迎します。

機能

  • ビジュアルグラフ調査 — エンティティのドラッグ&ドロップ、インタラクティブな接続探索
  • 20以上のビルトイントランスフォーム — DNS、WHOIS、SSL証明書、ジオロケーション、Web/メール/ハッシュ/ソーシャルエンリッチメントなど
  • Transform Hubレジストリからコミュニティトランスフォームをブラウズ・インストール
  • AI Investigator — トランスフォーム実行を計画し、進行状況をライブストリームし、監査可能な要約を生成するプロンプト駆動のエージェント調査
  • インポート / エクスポート — JSON、CSV、GraphML、MTGX形式のインポート
  • グラフ分析 — 中心性、コミュニティ検出、最短経路
  • リアルタイムコラボレーション — Supabase Realtimeによるプロジェクト、共有、ライブ同期
  • 非同期トランスフォームジョブ — WebSocket進捗更新付きのRedis/RQキュー
  • プラグインシステム — YAMLマニフェストによるディレクトリベースのプラグイン検出
  • CLIツール — ターミナルからのトランスフォーム検索、インストール、管理
  • どこでも実行可能 — ローカルSQLiteモード(設定不要)またはチーム/クラウド向けPostgreSQL + Supabase
  • Docker対応docker compose up でワンコマンドデプロイ

スクリーンショット

グラフ調査エンティティエンリッチメント
グラフ調査エンティティエンリッチメント
Transform Hubエクスポート / インポート
Transform Hubエクスポート / インポート

クイックスタート

前提条件

ツールバージョン
Python3.14+
uv最新
Node.js20+
pnpm最新

バックエンド```bash

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

フロントエンド```bash

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

PowerShell:

..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 Cloud

Get Hetzner Cloud credits Deploy Docker CE on Hetzner

新しいHetznerユーザーは、最初のリンクを使用してHetzner Cloudのクレジットを利用してサインアップできます。これは紹介リンクであり、紹介が条件を満たした場合、OGIメンテナーもHetzner Cloudクレジットを受け取ることがあります。サーバーを作成した後、上記のDockerデプロイコマンドを使用してOGIを実行してください。

設定可能な変換上限

OGIには、max_resultsmax_linksmax_urlsmax_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 と設定すると送信内容を削減

basic では以下が送信されます:

  • OGIバージョン
  • 毎日のアクティブインストールping

full ではさらに以下が送信されます:

  • インスタンス作成日
  • 期間内のプロジェクト、エンティティ、エッジ、トランスフォーム実行、調査官実行、アクティブユーザーの集計数
  • インストールされているトランスフォームとそのバージョン

テレメトリーは、グラフの内容、エンティティ値、APIキー、プロンプト、その他の調査データを送信しないように設計されています。現在のポリシーの詳細はプライバシーポリシーにも公開されています。

開発用Composeサービス
サービス説明ポート
backendFastAPIアプリケーションサーバー8000
workerRQ非同期ジョブワーカー-
agent-workerAI調査官ワーカー-
frontendnginxで配信されるReactアプリ80
dbPostgreSQL 165432
redisRedis 7(ジョブキュー)6379
本番用Composeサービス
サービス説明ポート
backendFastAPIアプリケーションサーバー8000
workerRQ非同期ジョブワーカー-
agent-workerAI調査官ワーカー-
frontendnginxで配信されるReactアプリ80
redisRedis 7(ジョブキュー)6379

docker-compose.prod.ymlOGI_DATABASE_URL を介して外部のPostgreSQLデータベースを想定しています。


起動時プラグイン依存関係

プリビルドイメージを使用していて、プラグインに追加のPythonライブラリが必要な場合、OGIはコンテナ起動時に以下の場所からプラグインの依存関係をインストールします:

  1. plugins/requirements.txt(推奨)、または
  2. requirements.txtがない場合、plugins/ogi-lock.json から自動生成された要件

環境変数:

変数デフォルト説明
OGI_BOOT_REQUIREMENTS_ENABLEtrue起動時インストールの有効/無効
OGI_BOOT_REQUIREMENTS_FILE/app/plugins/requirements.txtrequirementsファイルへのパス
OGI_BOOT_LOCK_FILE/app/plugins/ogi-lock.jsonロックファイルへのパス
OGI_BOOT_REQUIREMENTS_STRICTfalse要件がない場合に起動を失敗させる
OGI_BOOT_REQUIREMENTS_CACHE_DIR/tmp/ogi-boot生成された要件の一時/キャッシュディレクトリ

トランスフォームハブ

OpenGraph Intelにはビルトインのトランスフォームマーケットプレイスがあります。コミュニティレジストリからトランスフォームを参照、インストール、管理できます。

セキュリティに関する注意: APIキーを必要とするプラグインは特権コードとして扱う必要があります。プラグインがシークレットにアクセスし、アウトバウンドのネットワークリクエストを行える場合、それらのシークレットを悪用または流出させる可能性があります。サードパーティのプラグインをインストールまたは実行する前に、信頼レベル、権限、必要なサービスを確認してください。```bash

Search for transforms

uv run ogi transform search dns

Install a transform

uv run ogi transform install shodan-host-lookup

### 組み込み変換カテゴリ

| カテゴリ | 例                              |
| -------- | ------------------------------------- |
| DNS      | A, AAAA, MX, NS, CNAME レコード        |
| IP & ASN | GeoIP, リバースIP, ASN 情報           |
| SSL/TLS  | 証明書透過性, SSL ラボ    |
| Email    | メールサーバー検証, 侵害チェック  |
| Web      | WHOIS, ドメイン情報, Web 抽出    |
| Social   | ユーザー名列挙, ソーシャルプロフィール |
| Hash     | MD5, SHA1, SHA256 ルックアップ             |
| Location | ジオコーディング, 天気, 近隣の ASN データ   |

### サポートされているエンティティタイプ

`Person` • `Username` • `Domain` • `IPAddress` • `EmailAddress` • `PhoneNumber` • `Organization` • `URL` • `SocialMedia` • `Hash` • `Document` • `Location` • `ASNumber` • `Network` • `MXRecord` • `NSRecord` • `Nameserver` • `SSLCertificate` • `Subdomain` • `HTTPHeader`

### 独自の変換を作成する

独自に作成したいですか?[貢献ガイド](https://github.com/opengraphintel/ogi-transforms/blob/main/CONTRIBUTING.md) を参照してください。

変換で外部サービスの認証情報が必要な場合は、`api_keys_required` で宣言してください。変換設定にシークレットを保存しないでください。OGI はそれらを `API Keys` の下で管理し、シークレットを使用するプラグインは特権コードと見なされます。

変換が `max_results` や `max_content_chars` などの上限付き設定を公開する場合は、可能な限り特注の一回限りの名前よりも安定した設定名を優先してください。OGI は `OGI_TRANSFORM_SETTING_MAX_OVERRIDES` を使用して中央で最大値を上書きでき、クラウドデプロイメントが制限を強制し、ローカルユーザーがそれらを削除するのに役立ちます。

各プラグインは `plugin.yaml` マニフェストを含むディレクトリです:```yaml
name: my-transform
version: "1.0.0"
display_name: My Transform
description: What it does
author: Your Name
license: MIT
category: dns
input_types: [Domain]
output_types: [IPAddress]
permissions:
  network: true
  filesystem: false
  subprocess: false

アーキテクチャ

技術スタック

技術
バックエンドPython 3.14+, FastAPI, SQLModel, asyncpg / aiosqlite
フロントエンドReact 19, TypeScript 5.9, Sigma.js (graphology), Zustand, Tailwind CSS 4
データベースPostgreSQL 16 (primary) / SQLite (local fallback)
認証・リアルタイムSupabase Auth + JWT + Realtime (optional in local mode)
ジョブキューRedis 7 + RQ (async transforms)
AI ランタイムProvider-backed AI Investigator worker with audited transform orchestration
パッケージマネージャーuv (backend), pnpm (frontend)
デプロイDocker, nginx, GHCR

プロジェクト構造```

ogi/ ├── backend/ │ └── ogi/ │ ├── api/ # REST API routes │ ├── cli/ # CLI tool (Typer) │ ├── db/ # Database layer (asyncpg + aiosqlite) │ ├── engine/ # Graph engine & transform engine │ ├── models/ # SQLModel definitions │ ├── store/ # Data stores │ ├── transforms/ # Built-in transforms │ │ ├── dns/ # DNS resolution transforms │ │ ├── cert/ # SSL certificate transforms │ │ ├── email/ # Email enrichment │ │ ├── hash/ # Hash lookups │ │ ├── ip/ # IP/ASN/geolocation │ │ ├── org/ # Organization info │ │ ├── social/ # Social media │ │ └── web/ # Web scraping/extraction │ ├── worker/ # Async job queue (RQ) │ ├── config.py # Pydantic settings │ └── main.py # FastAPI entry point ├── frontend/ │ └── src/ │ ├── api/ # API client │ ├── components/ # React components │ ├── hooks/ # Custom hooks (realtime sync, etc.) │ ├── stores/ # Zustand state management │ ├── types/ # TypeScript types │ └── App.tsx # Main application ├── plugins/ # Community plugins directory ├── docs/ # Documentation & images ├── docker-compose.yml # Development deployment ├── docker-compose.prod.yml # Production deployment └── .env.example # Environment template

### 設定

OGIは、`.env`ファイルをサポートする[pydantic-settings](https://docs.pydantic.dev/latest/concepts/pydantic_settings/)を使用します。ランタイム/バックエンド変数には`OGI_`プレフィックスが付きます。

リスト形式の設定は、次のいずれかを受け付けます。

- JSON配列(例:`["plugins","../plugins"]`)
- カンマ区切りの文字列(例:`plugins,../plugins`)

<details>
<summary><strong>主要な環境変数</strong></summary>

| 変数                                        | 説明                                                                                                      | デフォルト                                           |
| ----------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | --------------------------------------------------- |
| `OGI_APP_NAME`                                  | アプリケーション名                                                                                                 | `OGI`                                               |
| `OGI_HOST`                                      | バックエンドのバインドホスト                                                                                                | `0.0.0.0`                                           |
| `OGI_PORT`                                      | バックエンドのポート                                                                                                     | `8000`                                              |
| `OGI_CORS_ORIGINS`                              | 許可されるフロントエンドのオリジン                                                                                         | `http://localhost:5173,http://localhost:3000`       |
| `OGI_USE_SQLITE`                                | PostgreSQLの代わりにSQLiteを使用する                                                                                 | `true`                                              |
| `OGI_DB_PATH`                                   | SQLiteデータベースファイルのパス                                                                                        | `ogi.db`                                            |
| `OGI_DATABASE_URL`                              | PostgreSQL接続文字列                                                                                     | `postgresql://postgres:postgres@localhost:5432/ogi` |
| `OGI_REDIS_URL`                                 | RQ/ジョブ用のRedis接続文字列                                                                              | `redis://localhost:6379/0`                          |
| `OGI_RQ_QUEUE_NAME`                             | 変換ジョブのキュー名                                                                                    | `transforms`                                        |
| `OGI_TRANSFORM_TIMEOUT`                         | 変換ジョブごとのタイムアウト(秒)                                                                             | `300`                                               |
| `OGI_AGENT_WORKER_POLL_INTERVAL_SEC`            | AI Investigatorワーカーのポーリング間隔                                                                     | `2.0`                                               |
| `OGI_AGENT_CLAIM_TIMEOUT_SEC`                   | AI Investigatorステップ回復のための古いクレームのタイムアウト                                                            | `120`                                               |
| `OGI_AUTO_RUN_MIGRATIONS`                       | ローカルの非SQLiteアプリ起動時にAlembicを自動実行                                                                 | `true`                                              |
| `OGI_RUN_DB_MIGRATIONS`                         | コンテナエントリポイントでDBマイグレーションを実行                                                                        | `false`                                             |
| `OGI_DB_MIGRATION_RETRIES`                      | エントリポイントのマイグレーション再試行回数                                                                                | `30`                                                |
| `OGI_DB_MIGRATION_DELAY_SECONDS`                | エントリポイントのマイグレーション再試行間の遅延                                                                      | `2`                                                 |
| `OGI_PLUGIN_DIRS`                               | プラグインの検索ディレクトリ                                                                                        | `plugins,../plugins`                                |
| `OGI_DEPLOYMENT_MODE`                           | デプロイメントモード(`self-hosted` または `cloud`)                                                                       | `self-hosted`                                       |
| `OGI_CLOUD_BILLING_ENABLED`                     | クラウド専用のSupporter請求と変換クールダウンを有効にする                                                                           | `false`                                             |
| `OGI_FREE_TRANSFORM_COOLDOWN_SECONDS`           | 無料クラウドユーザーのトランスフォーマー実行間のクールダウン                                                                | `1800`                                              |
| `OGI_PAID_TRANSFORM_COOLDOWN_SECONDS`           | 有料クラウドユーザーのトランスフォーマー実行間のクールダウン                                                                | `0`                                                 |
| `OGI_STRIPE_SECRET_KEY`                         | Checkoutおよびポータルセッション用のStripeサーバー側シークレットキー                                                   | 未設定                                               |
| `OGI_STRIPE_WEBHOOK_SECRET`                     | Stripe Webhook署名シークレット                                                                                    | 未設定                                               |
| `OGI_STRIPE_SUPPORTER_PRICE_ID`                 | SupporterプランのStripe定期購入価格ID                                                                 | 未設定                                               |
| `OGI_STRIPE_SUPPORTER_AMOUNT_CENTS`             | Supporterプランの表示金額                                                                            | `300`                                               |
| `OGI_STRIPE_SUPPORTER_CURRENCY`                 | Supporterプランの表示通貨                                                                          | `usd`                                               |
| `OGI_BILLING_SUCCESS_URL`                       | オプションのStripe Checkout成功リダイレクト                                                                        | リクエストから導出                                |
| `OGI_BILLING_CANCEL_URL`                        | オプションのStripe Checkoutキャンセルリダイレクト                                                                         | リクエストから導出                                |
| `OGI_BILLING_PORTAL_RETURN_URL`                 | オプションのStripe請求ポータル戻りURL                                                                        | リクエストから導出                                |
| `OGI_REGISTRY_REPO`                             | 変換レジストリのGitHubリポジトリ                                                                                   | `opengraphintel/ogi-transforms`                     |
| `OGI_REGISTRY_CACHE_TTL`                        | レジストリキャッシュのTTL(秒)                                                                                    | `3600`                                              |
| `OGI_TRANSFORM_SETTING_MAX_OVERRIDES`           | オプションの変換設定のグローバル最大オーバーライドマップ                                                          | 空                                               |
| `OGI_GITHUB_TOKEN`                              | オプションのレジストリ/APIレート制限用GitHubトークン                                                               | 未設定                                               |
| `OGI_SUPABASE_URL`                              | SupabaseプロジェクトURL                                                                                             | 未設定                                               |
| `OGI_SUPABASE_ANON_KEY`                         | Supabase匿名/公開キー                                                                                         | 未設定                                               |
| `OGI_SUPABASE_SERVICE_ROLE_KEY`                 | Supabaseサービスロールキー                                                                                        | 未設定                                               |
| `OGI_SUPABASE_JWT_SECRET`                       | Supabase JWTシークレット                                                                                              | 未設定                                               |
| `OGI_SUPABASE_REDIRECT_URL`                     | フロントエンド認証フローで使用されるリダイレクトURL                                                                         | 未設定                                               |
| `OGI_ADMIN_EMAILS`                              | レジストリ/プラグイン管理の管理ユーザー                                                                       | 未設定                                               |
| `OGI_TELEMETRY_ENABLED`                         | インストールレベルのテレメトリを有効または無効にする                                                                   | `true`                                              |
| `OGI_TELEMETRY_LEVEL`                           | テレメトリレベル(`basic` または `full`)                                                                              | `full`                                              |
| `OGI_API_KEY_ENCRYPTION_KEY`                    | 暗号化されたAPIキーストレージ用のFernetキー                                                                         | 未設定だが強く推奨                      |
| `OGI_API_KEY_INJECTION_ALLOW_COMMUNITY_PLUGINS` | コミュニティプラグインが保存されたAPIキーを受け取ることを許可する                                                               | `true`                                              |
| `OGI_API_KEY_INJECTION_TRUSTED_TIERS_ONLY`      | 保存されたキーの注入を信頼できるティアのみに制限する                                                              | `false`                                             |
| `OGI_API_KEY_INJECTION_ALLOWED_TIERS`           | 信頼のみモードが有効な場合に許可されるティア                                                                  | `official,verified`                                 |
| `OGI_API_KEY_SERVICE_ALLOWLIST`                 | オプションの保存されたキー注入の許可サービス                                                               | 空                                               |
| `OGI_API_KEY_SERVICE_BLOCKLIST`                 | オプションの保存されたキー注入のブロックサービス                                                               | 空                                               |
| `OGI_LLM_PROVIDER`                              | デフォルトのAI Investigatorプロバイダーのフォールバック                                                                        | `openai`                                            |
| `OGI_LLM_MODEL`                                 | デフォルトのAI Investigatorモデルのフォールバック                                                                           | `gpt-4.1-mini`                                      |
| `OGI_EXPOSE_ERROR_DETAILS`                      | 500応答に内部詳細を含める                                                                        | `false`                                             |
| `OGI_SANDBOX_ENABLED`                           | サンドボックス実行モードを有効にする                                                                                    | `false`                                             |
| `OGI_SANDBOX_TIMEOUT`                           | サンドボックスのタイムアウト(秒)                                                                                       | `30`                                                |
| `OGI_SANDBOX_MEMORY_MB`                         | サンドボックスのメモリ制限(MB)                                                                                       | `256`                                               |
| `OGI_SANDBOX_ALLOWED_TIERS`                     | クラウドサンドボックスモードで許可されるティア                                                                              | `official,verified`                                 |
| `OGI_BOOT_REQUIREMENTS_ENABLE`                  | 起動時のプラグイン依存関係インストールを有効にする                                                                       | `true`                                              |
| `OGI_BOOT_REQUIREMENTS_FILE`                    | ブート要件ファイルのパス                                                                                      | `/app/plugins/requirements.txt`                     |
| `OGI_BOOT_LOCK_FILE`                            | ブートロックファイルのパス                                                                                              | `/app/plugins/ogi-lock.json`                        |
| `OGI_BOOT_REQUIREMENTS_STRICT`                  | プラグイン要件がない場合に起動を失敗させる                                                                  | `false`                                             |
| `OGI_BOOT_REQUIREMENTS_CACHE_DIR`               | ブート要件生成用の一時/キャッシュディレクトリ                                                             | `/tmp/ogi-boot`                                     |
| `OGI_FRONTEND_PORT`                             | ローカルDockerフロントエンドポートマッピング                                                                               | `3000`                                              |
| `OGI_IMAGE_TAG`                                 | compose/Coolifyスタイルのデプロイ用プロダクションイメージタグ                                                                                                            | `latest`                                            |
| `OGI_BACKEND_IMAGE`                             | オプションのバックエンドイメージのオーバーライド                                                                                  | `ghcr.io/khashashin/ogi-backend`                    |
| `OGI_WORKER_IMAGE`                              | オプションのワーカーイメージのオーバーライド。デフォルトはバックエンドイメージ。ワーカーとバックエンドは同じイメージビルドを共有するため。 | `ghcr.io/khashashin/ogi-backend`                    |
| `OGI_FRONTEND_IMAGE`                            | オプションのフロントエンドイメージのオーバーライド                                                                                 | `ghcr.io/khashashin/ogi-frontend`                   |
| `OGI_CLI_BEARER_TOKEN`                          | オプションの認証対応バックエンド用CLIベアラートークン                                                              | 未設定                                               |

完全なリストは[`.env.example`](https://github.com/khashashin/ogi/blob/HEAD/.env.example)を参照してください。

</details>

## 開発

### テストの実行```bash
# Backend
cd backend
OGI_DB_PATH=":memory:" OGI_USE_SQLITE=true uv run pytest

# Frontend
cd frontend
pnpm test

リンティング & 型チェック```bash

Backend

cd backend uv run ruff check # Linting uv run mypy # Type checking

Frontend

cd frontend pnpm lint # ESLint

### CIパイプライン

[CIワークフロー](https://github.com/khashashin/ogi/blob/HEAD/.github/workflows/ci.yml)はすべてのプルリクエストで実行されます:

- **バックエンド:** ruff lint, mypy type check, pytest
- **フロントエンド:** vitest, eslint, vite build

## コントリビューション

PR歓迎! バグを見つけた場合やアイデアがある場合は、[イシューを開いて](https://github.com/khashashin/ogi/issues)ください。

新しいトランスフォームについては、[ogi-transforms](https://github.com/opengraphintel/ogi-transforms)にコントリビュートしてください。

### はじめに

1. リポジトリをフォーク
2. 機能ブランチを作成 (`git checkout -b feature/my-feature`)
3. 変更を加える
4. テストとリンターを実行
5. プルリクエストを送信

## 法的情報と責任ある使用

OGIは汎用OSINTおよびグラフ分析ツールです。**使用方法については、お客様が単独で責任を負います。** 完全な法的通知については[LEGAL.md](https://github.com/khashashin/ogi/blob/HEAD/LEGAL.md)を参照してください。

- **第三者サービスの利用規約を遵守してください。** 外部サービスを照会するトランスフォーム(DNS、WHOIS、Webスクレイピング、ユーザー名検索など)は、それらのサービスの利用規約に従って使用する必要があります。禁止しているサイトへの自動または一括照会は、それらの利用規約に違反する可能性があります。
- **データ保護法を尊重してください。** EUにお住まいの場合、またはEU居住者に関するデータを処理する場合は、データ管理者としてGDPRが適用されます。個人データ(名前、メールアドレス、IPアドレスなど)の収集、保存、または処理には、適法な根拠が必要です。OGI自体はローカルインスタンスを超えてデータを保存しません。収集および保持するものについてはお客様が責任を負います。
- **合法的な目的のみに使用してください。** OGIは、正当なセキュリティ研究、調査、脅威インテリジェンス、および教育目的での使用を意図しています。個人への嫌がらせ、不正アクセス、または適用される法律違反に使用しないでください。
- **ファイル形式の互換性。** OGIはMTGXグラフ交換形式のインポートをサポートしています。これは純粋にデータ相互運用性のために提供されるものであり、この形式を使用するツールの作成者との提携や承認を意味するものではありません。

> **免責事項:** OGIは「現状のまま」提供され、いかなる種類の保証もありません。著者は、本ソフトウェアの使用に起因する誤用または損害について責任を負いません。

## ライセンス

このプロジェクトは[GNU Affero General Public License v3.0](https://github.com/khashashin/ogi/blob/HEAD/LICENSE)の下でライセンスされています。

---

<div align="center">

**[バグを報告](https://github.com/khashashin/ogi/issues) • [機能をリクエスト](https://github.com/khashashin/ogi/issues) • [ディスカッション](https://github.com/opengraphintel/ogi-transforms/discussions)**

OGIコミュニティによって💜とともに作られました

</div>

カテゴリ