Grocy: セルフホスト型家庭管理アプリケーション
冷蔵庫を超えた ERP - Grocy は、Web ベースでセルフホスト型の食料品および家計管理ソリューションです。
ひと目でわかる
- これは何?
- Grocyは、Bernd Bestel氏によるWebベースのセルフホスト型食品・家庭管理ツールで、REST API、バーコードスキャン、ローカライゼーションを備えています。
- 誰に向いている?
- grocy/grocy が向くのは、READMEに示された対象と入力形式が自分の用途に一致し、固有の導入手順を実行できる人です。短いサンプルで grocy/grocy の出力、エラー、依存関係を確認し、対応していない環境や文書にない性能を前提にしないでください。
- 商用利用できる?
- できます。MIT は寛容なライセンスで、著作権表示とライセンス表示を残せば、使用・改変・販売が可能です。
- 今もメンテナンスされている?
- されています。最後のコミットは 11 日前です。
- 何の言語で書かれている?
- 主に JavaScript です(GitHub の言語統計による)。
回答はプロジェクトの GitHub データ(最終同期:2026年9月15日)と当サイトの分析に基づくもので、法的助言ではありません。
オープンソース詳細解説
grocy/grocy: READMEが定義する対象
Grocyは、Webベースのセルフホスト型食品および家庭管理アプリケーションであり、著者のBernd Bestel氏はこれを趣味のプロジェクトと説明しています。READMEでは「冷蔵庫を超えたERP」と位置づけられ、家庭の在庫、買い物、家事、食事計画を管理するためのものです。公式のデモが2つ維持されています。最新の安定版用と現在の開発ブランチ用です。リポジトリのフロントエンドはJavaScriptを多用していますが、インストール手順によると、アプリケーション自体はPHPアプリケーションです。プロジェクトには正式なロードマップはなく、バグや機能拡張の進捗はIssueトラッカーで追跡され、コミットコメントで参照され、マイルストーンがリリース予定バージョンを示します。
grocy/grocy のREADMEと素材に記載された範囲を対象にします。 記載内容から確認できる事実と、READMEが説明していない事項を分けて読みます。スター数や説明文は利用の手掛かりにはなりますが、性能や長期運用を証明するものではありません。文書にない挙動は未確認として扱います。
grocy/grocy の第1章では、READMEに登場する固有のファイル名、コマンド、設定キー、対応形式を一つずつ拾います。小さな入力を用意して処理を実行し、成功時の出力だけでなく失敗時のログと終了状態も記録します。設定を変更したときは変更点を残し、同じ入力で結果がどう変わるかを比較します。これにより、機能の存在と自分の環境で使えることを混同しません。
grocy/grocy: 入力と出力の境界
インストールはPHPアプリケーションに基づいています。READMEの基本的な手順は、最新リリースを解凍し、`config-dist.php`を`data/config.php`にコピーして編集し、`data`ディレクトリを書き込み可能にし、Webサーバーのルートを`public`ディレクトリに指定し、nginxの場合はlocationブロックに`try_files $uri /index.php$is_args$query_string;`を含めるか、設定オプションでURLリライトを無効にします。デフォルトのログインはユーザー名`admin`、パスワード`admin`で、すぐに変更する必要があります。必要なプラットフォームはPHP 8.5、SQLite 3.40以降、拡張機能`fileinfo`、`pdo_sqlite`、`gd`、`ctype`、`intl`、`zlib`、`mbstring`です。サポートされるブラウザは最新のFirefox、Chrome、Edgeです。Webサーバーを管理せずにデスクトップ環境を希望する場合は、READMEはGrocy Desktop(別のリポジトリ)を指しています。DockerイメージはDocker Hubのlinuxserverイメージから入手できます。
grocy/grocy の第2章では、READMEに登場する固有のファイル名、コマンド、設定キー、対応形式を一つずつ拾います。小さな入力を用意して処理を実行し、成功時の出力だけでなく失敗時のログと終了状態も記録します。設定を変更したときは変更点を残し、同じ入力で結果がどう変わるかを比較します。これにより、機能の存在と自分の環境で使えることを混同しません。
grocy/grocy: 構成要素から見える設計
更新は、`data`ディレクトリを保持したまま、最新リリースですべてを上書きすることで行われます。`config-dist.php`の新しい設定オプションを`data/config.php`にコピーする必要があります。未定義の設定はデフォルト値にフォールバックします。Linuxでは、同梱の`update.sh`がこれを行い、`data/backups`に現在のインストールのバックアップアーカイブ(.tgz)を作成し、60日より古いバックアップを削除します。データベーススキーマのマイグレーションは、ルートルートにアクセスしたとき、またはバージョン変更後に自動的に実行されます。READMEは、マイグレーションはリリース間で動作するように設計されており、すべてのコミット間ではないと警告しているため、`master`ブランチを実行する場合は自分で対処する必要があります。
grocy/grocy の第3章では、READMEに登場する固有のファイル名、コマンド、設定キー、対応形式を一つずつ拾います。小さな入力を用意して処理を実行し、成功時の出力だけでなく失敗時のログと終了状態も記録します。設定を変更したときは変更点を残し、同じ入力で結果がどう変わるかを比較します。これにより、機能の存在と自分の環境で使えることを混同しません。
grocy/grocy: 導入手順を追う
`data/config.php`ファイルは、デフォルトのロケールや`MODE`設定など、多くの設定を制御します。`MODE`を`dev`、`demo`、または`prerelease`に設定すると、アプリケーションはデモモードになり、認証が無効になり、スキーママイグレーション中にデモデータが生成されます(`nodemodata`クエリパラメータを渡さない場合)。機能フラグを使用すると、家事などの機能セット全体を無効にして、関連するUI要素を非表示にできます。アプリケーションを変更せずにカスタムCSSやJavaScriptを注入できます。ファイル`data/custom_css.html`と`data/custom_js.html`は、それぞれ`head`と`body`の末尾に挿入されます。Grocy Desktop用の埋め込みモードがあります。`embedded.txt`ファイルに書き込み可能なパスが含まれている場合、そのパスがデータディレクトリとして使用され、認証が無効になります。埋め込みモードでは、`data/settingoverrides`内のテキストファイルを使用して設定を上書きできます。
grocy/grocy のREADMEにあるインストール手順、コマンド、設定ファイルを対象にします。 記載内容から確認できる事実と、READMEが説明していない事項を分けて読みます。スター数や説明文は利用の手掛かりにはなりますが、性能や長期運用を証明するものではありません。文書にない挙動は未確認として扱います。
grocy/grocy の第4章では、READMEに登場する固有のファイル名、コマンド、設定キー、対応形式を一つずつ拾います。小さな入力を用意して処理を実行し、成功時の出力だけでなく失敗時のログと終了状態も記録します。設定を変更したときは変更点を残し、同じ入力で結果がどう変わるかを比較します。これにより、機能の存在と自分の環境で使えることを混同しません。
grocy/grocy: 運用時に確認する条件
日付フィールドはISO-8601入力と、いくつかのショートカットを受け入れます。たとえば、`MMDD`は現在の年または翌年の日付に展開され、`YYYYMMDD`はISO日付に、`YYYYMMe`は月末に、`+1m`は相対日付に、`x`は2999-12-31(「期限切れなし」のエイリアス)に展開されます。矢印キーで日付を日、週、月、年単位で調整できます(Shiftと組み合わせる)。太字の強調文字が含まれるボタンは、そのキーを押すことでアクティブにできます。バーコードリーダーは、スキャン前に`$`などの文字をプレフィックスし、スキャン後に`TAB`を送信すると最適に動作します。カメラは、ZXingライブラリを使用してバーコードをスキャンすることもでき、完全にクライアントサイドで処理されますが、セキュアな接続でのみ機能します。製品は外部サービスからルックアップできます。Open Food Factsプラグインがデフォルトで含まれており、独自のプラグインを構築するための例としてデモプラグインが利用可能です。
grocy/grocy のREADMEに記載された入力形式、出力、ログ、依存関係を確認対象にします。 記載内容から確認できる事実と、READMEが説明していない事項を分けて読みます。スター数や説明文は利用の手掛かりにはなりますが、性能や長期運用を証明するものではありません。文書にない挙動は未確認として扱います。
grocy/grocy の第5章では、READMEに登場する固有のファイル名、コマンド、設定キー、対応形式を一つずつ拾います。小さな入力を用意して処理を実行し、成功時の出力だけでなく失敗時のログと終了状態も記録します。設定を変更したときは変更点を残し、同じ入力で結果がどう変わるかを比較します。これにより、機能の存在と自分の環境で使えることを混同しません。
grocy/grocy: 採用前に見るべき制約
GrocyにはREST APIがあり、`/api`の統合Swagger UIでドキュメント化されています。Webフロントエンドはほぼすべての操作でこのAPIを使用しているため、UIで可能なことはAPIでも可能です。ローカライゼーションはTransifexで処理されます。デフォルト言語は英語で、ドイツ語は著者がメンテナンスしています。少なくとも70%完成した翻訳はリリースに含まれ、プレリリースデモは毎時10分過ぎにTransifexから更新されます。右から左への言語はまだサポートされていません。このプロジェクトはMITライセンスの下でライセンスされており、著作権表示が含まれていれば、ソフトウェアのコピーを使用、コピー、変更、マージ、公開、配布、サブライセンス、販売する権利を付与します。ライセンスはソフトウェアを「現状のまま」提供し、いかなる種類の保証も行いません。READMEには、著者がIssueトラッカーとsubredditを定期的にチェックしていると述べている以外、セキュリティ保証やサポートの約束は記載されていません。
grocy/grocy の第6章では、READMEに登場する固有のファイル名、コマンド、設定キー、対応形式を一つずつ拾います。小さな入力を用意して処理を実行し、成功時の出力だけでなく失敗時のログと終了状態も記録します。設定を変更したときは変更点を残し、同じ入力で結果がどう変わるかを比較します。これにより、機能の存在と自分の環境で使えることを混同しません。
編集部の結論
grocy/grocy が向くのは、READMEに示された対象と入力形式が自分の用途に一致し、固有の導入手順を実行できる人です。短いサンプルで grocy/grocy の出力、エラー、依存関係を確認し、対応していない環境や文書にない性能を前提にしないでください。採用を決める前に、READMEの具体的なコマンドと設定ファイルを使った検証結果を残す必要があります。
コミュニティノート