Grocy

Stock overview listing products by due date, with expired and soon-due items highlighted in color.

A household ERP built around the pantry

In Grocy, a purchase becomes a stock entry with a due date, consuming it takes it off again, and the stock overview flags what has expired, what is due soon and what has dropped below its minimum amount. That minimum is what fills the shopping list. The project calls itself an "ERP beyond your fridge": recipes, meal planning, chores, tasks, battery tracking and device manuals all hang off the same stock. It is a PHP web app on SQLite, under the MIT license.

Cataloguing durable belongings and their warranties is closer to what Homebox does: it starts from the item, not from stock levels.

Recipes scored on what expires first, products created from a scan

  • Due Score on recipes: each recipe shows whether everything it needs is in stock, and the Due Score points to the ones that use up items due soon or already overdue.
  • USB scanner or phone camera: camera scanning (the ZXing library) runs in the browser. An unknown barcode is looked up on Open Food Facts, the plugin enabled by default, to create the product. The maintainer himself recommends a USB laser scanner.
  • Fine-grained stock: locations, price history, opened and frozen products, and conversions between purchase, consume and stock units.
  • The UI runs on the public API: the web frontend goes through the REST API for nearly everything, with Swagger docs at /api, so whatever can be done on screen can be scripted.
  • Modules you can hide, login you can choose: each major module (chores, batteries, equipment...) has a feature flag that hides it, and login goes through Grocy's own accounts, a header set by the reverse proxy, or an LDAP directory.

Weekly meals, shared chores and battery logs

  • Build a meal plan from saved recipes and push the missing ingredients to the shopping list in one click
  • Assign chores to people in the household and share Grocy's calendar through an iCal link
  • Record when each set of rechargeable batteries was last charged
  • Run Grocy on a Windows PC with no web server through Grocy Desktop, also listed in the Microsoft Store

One household per instance, PHP 8.5 only

Each instance describes a single home. Asked to split Grocy into several households (issue #644), Bernd Bestel replied in 2023 that it was technically unlikely ever to happen, since it would mean rethinking the whole backend and frontend. His suggested workarounds are separate instances, or locations and custom fields. Several user accounts can share one instance, though.

PHP 8.5 is the only supported runtime. That has been the rule since 4.6.0, released on 6 March 2026: PHP 8.5, SQLite 3.40 or later, and seven extensions (fileinfo, pdo_sqlite, gd, ctype, intl, zlib, mbstring). No database server is needed. The LinuxServer.io Docker image, the Home Assistant add-on and the mobile apps are all community contributions, according to the website.

The camera needs HTTPS, and nothing works offline. Browsers only allow camera scanning over https://, and the installable web app (PWA) has no offline mode. A fresh install logs in as admin / admin, a password the README says to change straight away.

A hobby project with no roadmap. Bernd Bestel has run Grocy as a personal project since 2017. Support is limited to the GitHub issue tracker and the r/grocy subreddit. Under "Roadmap", the README says: "There is none."

Latest release: 4.7.1, from 4 September 2026. It follows 4.7.0 from 28 August, which reorganized the authentication middleware (the AUTH_CLASS setting needs a second look) and invalidated every web session. Version 4.6.0 had arrived almost a year after 4.5.0. Schema migrations are only meant to work between releases, so anyone tracking the master branch handles them alone. The last commit dates from 16 September 2026.