RELEASE NOTE

OpenGreenTrack を公開しましたScope 1・2・3 の算定基盤と、軽くなった IDEA 取込

2026 年 9 月 9 日、OpenGreenTrack を GitHub で公開しました。Scope 1・2・3 の活動量の入力から、排出係数の管理、拠点別の集計、PDF・CSV のレポート出力までをひとつにまとめた、セルフホスト型の GHG 管理ツールです。公開から 1 週間で、セットアップの分かりやすさと、IDEA 取込の重さを改善しました。

  • リリース
  • Scope 1・2・3
  • IDEA
  • セットアップ
OpenGreenTrack のダッシュボード。総排出量、Scope 別の排出量、削減目標に対する進捗、月別の推移が並ぶ

この版のポイント

  1. Scope 1・2・3 の入力から集計、レポート出力までをひとつにしたオープンソース版を公開(Apache License 2.0)
  2. デモデータ入りの評価環境を、clone から 3 つのステップで起動できる
  3. IDEA 取込をストリーミング読取に変え、ヒープ使用量のピークを 1,266 MiB から 78 MiB に削減
  4. 招待リンクが localhost のときは、ほかの PC では開けないことを画面で知らせる

01RELEASE

算定から開示の準備までを、ひとつのデータモデルで

OpenGreenTrack は、企業の温室効果ガス(GHG)排出量を算定・可視化・管理するためのプラットフォームです。拠点ごとの電気・ガス・燃料の使用量と、Scope 3 のサプライチェーンの活動量を同じ手順で登録し、公的な排出係数や自社のカスタム係数で算定して、ダッシュボードとレポートにまとめます。

公開時点で使える画面は次の 6 つです。冒頭のダッシュボードでは、総排出量と Scope 別の内訳、削減目標に対する進捗、月別の推移をひとつの画面で確認できます。

  • ダッシュボード:総排出量、Scope 別の推移、削減目標に対する進捗
  • データ入力:Scope 1・2 と Scope 3(積上げ)を 1 つのフォームで登録。入力履歴の検索・編集・削除
  • Scope 分析:Scope 1・2・3 の構成と、Scope 3 のカテゴリ別の排出量
  • 排出係数:公的な係数マスタと、拠点別・事業部別のカスタム係数
  • 拠点:拠点ごとの排出量、稼働状況
  • レポート:年度サマリなどを印刷用 PDF・CSV で出力
データ入力フォーム。カテゴリに電気を選ぶと、排出係数の参照方式が供給事業者別係数に切り替わる
データ入力。カテゴリを選ぶと、排出係数の参照方式(供給事業者別・標準・IDEA)が自動で切り替わります。
Scope 分析の画面。Scope 1・2・3 の構成比の帯グラフと、Scope 3 のカテゴリ別排出量のドーナツグラフ
Scope 分析。Scope 別の構成と、Scope 3 のカテゴリごとの排出量を並べて見られます。
レポートの画面。レポートの種類、対象拠点、対象年度、出力形式を選び、出力内容をプレビューできる
レポート。種類・拠点・年度を選ぶと、出力前に合計値をプレビューできます。CSV はその場でダウンロード、PDF は印刷用の画面からブラウザで保存します。

コードは GitHub で公開しています。ライセンスは Apache License 2.0 で、商用利用や改変もできます。データは自社の Supabase(ローカルまたはクラウド)に置き、組織ごとの分離は Supabase の RLS(行レベルセキュリティ)で行います。

02HOW TO

デモ環境を 3 ステップで動かす

架空の企業 2 社と、2023〜2026 年度の月次の活動量が入ったデモデータを使って、手元ですぐに試せます。この記事の画面も、このデモデータで撮影しています。

STEPSローカルで起動する手順

  1. リポジトリを取得して依存をインストールする

    git clone のあと npm install を実行します。前提は Node.js 24 以上と Docker Desktop です。

  2. Supabase を起動し、デモデータで DB を作る

    cp .env.example .env.local でひな形を作り、npx supabase start で起動します。表示された URL とキーを .env.local に書き、npm run db:reset:demo でスキーマ・公式排出係数・デモデータを入れます。

  3. アプリを起動してログインする

    npm run dev を実行し、http://localhost:3000 を開きます。デモのアカウント org-a@example.com(パスワード password123)でログインできます。

コマンドの流れ(.env.local に貼り付ける 3 行は supabase status で出力できます)
git clone https://github.com/japan-gx-group/OpenGreenTrack
cd OpenGreenTrack
npm install
cp .env.example .env.local

npx supabase start
npx supabase status -o env \
  --override-name api.url=NEXT_PUBLIC_SUPABASE_URL \
  --override-name auth.anon_key=NEXT_PUBLIC_SUPABASE_ANON_KEY \
  --override-name auth.service_role_key=SUPABASE_SERVICE_ROLE_KEY
npm run db:reset:demo

npm run dev

03IMPROVED

IDEA 取込を、数十 MB のファイルでも軽く

Scope 3 の積上げ算定では、産業技術総合研究所の排出原単位データベース IDEA を使えます。IDEA は SuMPO(サステナブル経営推進機構)との契約で提供される有償のデータベースで、OpenGreenTrack には付属しません。契約先から受け取った Excel ファイル(数十 MB)を、係数管理の画面から取り込みます。

公開時の取込は、ファイルをそのまま API に送り、ワークブック全体をメモリに展開していました。そのため、リクエストの大きさに上限があるホスティング(例:Vercel の 4.5 MB)では動かず、Node.js に 2 GB 以上のメモリが必要でした。この 1 機能のためにセルフホストを強いる状態だったので、送り方と読み方を変えました。

変更前

ブラウザ
ファイルを丸ごと送信(数十 MB)
取込 API

ワークブック全体をメモリに展開

リクエストの大きさに上限があるホスティングでは止まり、Node.js に 2 GB 以上のメモリが必要だった

変更後

  1. 1ブラウザアップロード URL の発行 API署名付きの URL を、ログインした人の組織のフォルダにだけ発行する
  2. 2ブラウザSupabase Storage(隔離領域)ファイルを直接アップロードする。API はファイルを受け取らない
  3. 3ブラウザ取込 APIファイルの置き場所(パス)だけを JSON で渡す
  4. 4取込 APISupabase Storage対象のシートを 1 行ずつ読みながら DB に登録する
  5. 5取込 APISupabase Storage完了・失敗にかかわらず、取り込んだファイルを削除する
図解変更後の取込の流れ。ファイルは API を通さずに Storage へ直接置き、API はパスだけを受け取って行単位で読みます。
  • 変更前(ワークブック全体を展開)
  • 変更後(ストリーミング読取)
  • いずれも短いほど良い

ヒープ使用量のピークMiB

変更前1,266 MiB
変更後78 MiB

RSS のピークMiB

変更前1,714 MiB
変更後399 MiB

所要時間秒

変更前6.6 秒
変更後2.9 秒
図解10,300 行 × 307 列・17 MiB のダミーファイルでの実測(リポジトリの計測スクリプト scripts/measure-idea-import.ts)。
実測値(上のグラフの数値)
経路ヒープ使用量のピークRSS のピーク所要時間
変更前(ワークブック全体を展開)1,266 MiB1,714 MiB6.6 秒
変更後(ストリーミング読取)78 MiB399 MiB2.9 秒

STEPSIDEA を取り込む

  1. 係数管理の「IDEA データベース」を開く

    サイドバーの「排出係数」を開き、下にある「IDEA データベース」のカードまで進みます。

  2. ファイルと GWP モデルを選ぶ

    契約先から受け取った IPCC 版の Excel ファイル(.xlsx)を選び、GWP モデルを選びます。使用許諾契約を結んでいることを確認するチェックを入れて「取り込む」を押します。

  3. 段階表示が終わるまで待つ

    ボタンが「アップロード中…」「取込を開始中…」と進み、その後はカードに取込の進捗が出ます。取込中もほかの画面へ移動できます。

IDEA データベースのカード。ファイルを選んで取込を始めると、ボタンが「アップロード中…」に変わる
アップロードの段階がボタンに表示されます。
取込が終わった IDEA データベースのカード。バージョン、取込日、製品数、GWP モデル、引用表記が並ぶ
取込後は版・製品数・引用表記が表示されます(画面のファイルはスクリーンショット用のダミーです)。

04IMPROVED

localhost の招待リンクは「この PC でしか開けない」と伝える

README のとおりローカルで動かしていると、メンバー招待で発行されるリンクは http://localhost:3000/invite/... になります。localhost は「リンクを開いた人自身の PC」を指すため、メールやチャットで送っても相手の環境では開けず、送った側も受け取った側も原因に気づけませんでした。

ユーザー招待のモーダル。このリンクはいまお使いのパソコンの中でしか開けない、という注意が表示されている
招待リンクを発行した直後のモーダル。リンクが localhost・127.0.0.1 などを指すときだけ注意を出します。

ほかの人を招待するには、ほかの PC からアクセスできる URL で運用する(クラウドに置くなど)必要があります。招待メールを自動で送りたい場合は、モーダルのリンクからセットアップガイドの「招待メールの設定」を開けます。

05MAINTENANCE

依存関係の脆弱性の解消と、名前の統一

  • npm audit で出ていた 4 件(critical 1・high 1・moderate 2)を解消しました。Next.js は 16.2.12 から 16.3.4 に、vitest は 5 に上げています。
  • リポジトリ名と製品名を OpenGreenTrack にそろえ、Supabase の project_id も opengreentrack に変えました。
  • README から公式サイト(g-track.org)へ移れるようにしました。

06CHANGELOG

変更の一覧

  • 新機能・改善IDEA 取込を Supabase Storage への直接アップロードとストリーミング読取に変更#18
  • 新機能・改善招待リンクが localhost の場合に共有できない旨をモーダルで案内#15
  • ドキュメントREADME のセットアップ手順を実行順に並べ替え、環境変数の対応表と Node.js の要件を追記#16
  • 保守npm audit の脆弱性 4 件を解消し、依存を最新の安定版へ更新#14
  • 保守supabase/config.toml の project_id を opengreentrack に変更#13
  • ドキュメント公式サイト https://g-track.org/ への導線を追加#7
  • 保守リポジトリ名・製品名を OpenGreenTrack に変更#6
  • ドキュメントCONTRIBUTING.md と AGENTS.md をブランチ保護の設定に合わせる#5
  • 保守リポジトリ URL とフォルダ名の参照を新しいリポジトリに合わせる#1

TRY OPENGREENTRACK

コードもロードマップも、GitHub で公開しています。

README を読んで動かす 導入・共創について相談する