自架服務
grocy/grocy avatar
grocy/grocy

Grocy:一個自架的家庭管理應用

冰箱以外的 ERP - Grocy 是一個基於網路的自架雜貨和家居管理解決方案。

9,498 個 Star807 個 ForkJavaScriptMIT

秒懂

它是什麼?
Grocy 是 Bernd Bestel 開發的一個基於 Web 的自架食品雜貨與家庭管理工具,支援 REST API、條碼掃描和本地化。
適合誰用?
Grocy 提供了一套實用的家庭庫存和任務管理功能,其 MIT 許可證和 API 使想要自動化或自訂它的使用者更容易上手。 部署時要把網站根目錄指向 `public`,複製 `config-dist.php` 為 `data/config.php`,確認 `data` 可寫,並立即更換 `admin/admin`;PHP 8.5、SQLite 3.40+、`pdo_sqlite` 等擴充是 README 明列的前置條件。
可以商用嗎?
可以。MIT 是寬鬆授權:你可以使用、修改並販售以它為基礎的軟體,只需保留著作權與授權聲明。
還在維護嗎?
有在維護。儲存庫最近一次提交在 11 天前。
用什麼語言寫的?
主要是 JavaScript(依據 GitHub 的語言統計)。

以上回答依據專案的 GitHub 資料(最近同步於 2026年9月15日)與我們的分析,不構成法律意見。

開源專案深度解析

grocy|專案起源與範圍

Grocy 是一個基於 Web 的自架食品雜貨和家庭管理應用,其作者 Bernd Bestel 將其描述為一個業餘專案。README 將其稱為「冰箱之外的 ERP」,用於管理家庭的庫存、購物、家務和膳食計畫。官方維護了兩個公開示範:一個用於最新穩定版,一個用於目前開發分支。該儲存庫的前端大量使用 JavaScript,但根據安裝說明,應用本身是一個 PHP 應用。專案沒有正式藍圖;錯誤和功能增強的進展在問題追蹤器中追蹤,並透過提交評論引用,里程碑指示了預期的發布版本。

第1項專案核對:grocy 的檢查不能只看功能名稱。使用者應確認作業系統、執行時版本、輸入格式和權限邊界,再依 README 入口建立最小案例。對 grocy/grocy 而言,部署時要把網站根目錄指向 `public`,複製 `config-dist.php` 為 `data/config.php`,確認 `data` 可寫,並立即更換 `admin/admin`;PHP 8.5、SQLite 3.40+、`pdo_sqlite` 等擴充是 README 明列的前置條件。 先觀察命令是否接受輸入,再檢查輸出檔案、終端訊息、服務狀態或備份內容是否符合文件描述。若結果不同,保留完整錯誤、版本與設定,不把一次成功寫成相容性承諾。實際採用還要看失敗後如何恢復,README 沒有提供的行為應標成未知,交由原始碼、issue 或發布記錄補查。

第2項專案核對:grocy 的檢查不能只看功能名稱。使用者應確認作業系統、執行時版本、輸入格式和權限邊界,再依 README 入口建立最小案例。對 grocy/grocy 而言,部署時要把網站根目錄指向 `public`,複製 `config-dist.php` 為 `data/config.php`,確認 `data` 可寫,並立即更換 `admin/admin`;PHP 8.5、SQLite 3.40+、`pdo_sqlite` 等擴充是 README 明列的前置條件。 先觀察命令是否接受輸入,再檢查輸出檔案、終端訊息、服務狀態或備份內容是否符合文件描述。若結果不同,保留完整錯誤、版本與設定,不把一次成功寫成相容性承諾。實際採用還要看失敗後如何恢復,README 沒有提供的行為應標成未知,交由原始碼、issue 或發布記錄補查。

第3項專案核對:grocy 的檢查不能只看功能名稱。使用者應確認作業系統、執行時版本、輸入格式和權限邊界,再依 README 入口建立最小案例。對 grocy/grocy 而言,部署時要把網站根目錄指向 `public`,複製 `config-dist.php` 為 `data/config.php`,確認 `data` 可寫,並立即更換 `admin/admin`;PHP 8.5、SQLite 3.40+、`pdo_sqlite` 等擴充是 README 明列的前置條件。 先觀察命令是否接受輸入,再檢查輸出檔案、終端訊息、服務狀態或備份內容是否符合文件描述。若結果不同,保留完整錯誤、版本與設定,不把一次成功寫成相容性承諾。實際採用還要看失敗後如何恢復,README 沒有提供的行為應標成未知,交由原始碼、issue 或發布記錄補查。

第4項專案核對:grocy 的檢查不能只看功能名稱。使用者應確認作業系統、執行時版本、輸入格式和權限邊界,再依 README 入口建立最小案例。對 grocy/grocy 而言,部署時要把網站根目錄指向 `public`,複製 `config-dist.php` 為 `data/config.php`,確認 `data` 可寫,並立即更換 `admin/admin`;PHP 8.5、SQLite 3.40+、`pdo_sqlite` 等擴充是 README 明列的前置條件。 先觀察命令是否接受輸入,再檢查輸出檔案、終端訊息、服務狀態或備份內容是否符合文件描述。若結果不同,保留完整錯誤、版本與設定,不把一次成功寫成相容性承諾。實際採用還要看失敗後如何恢復,README 沒有提供的行為應標成未知,交由原始碼、issue 或發布記錄補查。

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|更新與資料庫遷移

更新是透過用最新版本覆蓋所有內容,同時保留 `data` 目錄來完成的。應檢查 `config-dist.php` 中的新設定選項,並將其新增到 `data/config.php` 中;未定義的設定將使用預設值。在 Linux 上,附帶的 `update.sh` 可以執行此操作,並會在 `data/backups` 中建立目前安裝的備份封存(.tgz),並在更新時刪除超過 60 天的備份。資料庫結構遷移在存取根路由時自動執行,或在版本變更後自動觸發。README 警告說,遷移設計為在版本之間工作,而不是在每個提交之間工作,因此執行 `master` 分支需要自己處理。

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|輸入快捷鍵與條碼掃描

日期欄位接受 ISO-8601 輸入和幾種簡寫。例如,`MMDD` 擴充為目前年份或下一年的日期,`YYYYMMDD` 擴充為 ISO 日期,`YYYYMMe` 擴充為月末,`+1m` 擴充為相對日期,`x` 擴充為 2999-12-31,即「永不過期」的別名。方向鍵可以按天、週、月或年調整日期(搭配 Shift)。帶有粗體高亮字母的按鈕可以透過按該鍵來啟動。條碼讀取器在掃描前加字首字元(如 `$`)並在掃描後傳送 `TAB` 時效果最好。相機也可以透過 ZXing 程式庫掃描條碼,完全在用戶端進行,但僅支援安全連線。產品可以透過外部服務查詢;預設包含 Open Food Facts 外掛,並提供了一個示範外掛作為建立自訂外掛的範例。

grocy|API、本地化與授權

Grocy 具有 REST API,並透過 `/api` 上的整合 Swagger UI 提供文件。Web 前端幾乎完全使用該 API,因此 UI 中可能的任何操作也可以透過 API 完成。本地化在 Transifex 上處理;預設語言是英語,德語由作者維護。至少完成 70% 的翻譯會包含在發布中,預先發布示範每小時過十分會從 Transifex 更新。尚不支援從右到左的語言。該專案根據 MIT 授權授權,該授權授予使用、複製、修改、合併、發布、分發、再授權和出售軟體副本的權利,前提是包含版權聲明。授權按「原樣」提供軟體,不做任何形式的保證。README 沒有提到任何安全保證或支援承諾,除了作者聲明會定期檢查問題追蹤器和 subreddit。

專案化核對:部署時要把網站根目錄指向 `public`,複製 `config-dist.php` 為 `data/config.php`,確認 `data` 可寫,並立即更換 `admin/admin`;PHP 8.5、SQLite 3.40+、`pdo_sqlite` 等擴充是 README 明列的前置條件。 這些觀察只針對 grocy/grocy README 已列出的行為;素材沒有交代的版本、平台或安全結果,保留為待確認事項。

編輯結論

Grocy 提供了一套實用的家庭庫存和任務管理功能,其 MIT 許可證和 API 使想要自動化或自訂它的使用者更容易上手。 部署時要把網站根目錄指向 `public`,複製 `config-dist.php` 為 `data/config.php`,確認 `data` 可寫,並立即更換 `admin/admin`;PHP 8.5、SQLite 3.40+、`pdo_sqlite` 等擴充是 README 明列的前置條件。

官方來源

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
社群筆記

社群筆記