What Is EverShelf?
EverShelf is a self-hosted web application for tracking what is in your pantry, when it expires and what to buy next. The README calls it a "self-hosted pantry manager — inventory, barcode scan, AI recipes, less waste"; it is written in PHP with an SQLite database and a single-page front end, and the code is open source under the MIT licence.
The README credits one developer, Stimpfl Daniel (GitHub: dadaloop82), and asks for more contributors. An unrelated iOS app from Joshumi Technologies uses the same name; the README states that there is no affiliation.
Get It
EverShelf is a server you install yourself; the documented route is Docker Compose, and phones and tablets reach it through a browser or the Android kiosk app.
Server (Docker Compose)
- How to get it:
- README quick start: clone the repository, copy .env.example to .env, run docker compose up -d
Browser and phone
- How to get it:
- Open the server address in a browser (port 8080 in the supplied compose file); on a phone, add it to the home screen
Android kiosk tablet
- How to get it:
- evershelf-kiosk.apk (version 1.7.24, Android 7.0 or later)
Unraid
- How to get it:
- Community Applications template and guide
Website
- How to get it:
- evershelf.site
Privacy statement
- How to get it:
- evershelf.site, Privacy section: a short statement on the home page; no separate policy document was found
Source code
- How to get it:
- github.com/dadaloop82/EverShelf
Demo
- How to get it:
- evershelf.site/demo, which the README says includes AI
Version reviewed: v1.16.16, published on 25 October 2026 per the GitHub release; the repository's last change was on 1 November 2026. Installing needs a terminal, Docker and a hand-edited .env file, so this is a developer-style setup rather than a double-click install. The GitHub release list carries only the Android kiosk APK.
Requirements
The sources give no RAM or CPU minimum; the stated needs are Docker or PHP 8.0+, a camera for scanning and, for AI, a provider key or a Llama server.
Server
- What the sources say:
- Docker with Compose, or a PHP 8.0+ web server pointed at the repository root with a writable data/ folder
Storage
- What the sources say:
- SQLite database in the data volume; the built-in backup is stored in that same volume, so copy it elsewhere
Memory and CPU
- What the sources say:
- Not stated in the sources read
Camera
- What the sources say:
- Barcode scanning uses the device camera in the browser (QuaggaJS, per the wiki)
Kiosk
- What the sources say:
- Android 7.0 (API 24) or later; optional Bluetooth kitchen scale support
AI
- What the sources say:
- An API key for Gemini or OpenAI, or the address of an OpenAI-compatible Llama server such as Ollama, llama.cpp or vLLM
Network
- What the sources say:
- Built for a trusted home network; for internet access the security policy expects your own authentication layer
These items come from the README, wiki and SECURITY.md; PromptQuorum did not measure resource use.
How to Get Started
These steps follow the project's README; PromptQuorum has not run them.
- 1Fetch the code and the config template
Why it matters: Run git clone for the repository, then copy .env.example to .env in the project folder. - 2Choose the AI setting
Why it matters: In .env, set AI_ENABLED=false to run without AI, or set AI_PROVIDER to gemini, openai or llama and add the matching key or base URL. - 3Start the container
Why it matters: Run docker compose up -d and open http://localhost:8080; to update later, the README gives docker compose pull followed by docker compose up -d. - 4Pair your devices
Why it matters: If API_TOKEN is set, the web interface asks for a one-time pairing code, shown under Settings, System, Security on a paired device or in the server log.
Key Features
Every item below comes from the project's README or wiki; none has been tested by PromptQuorum.
- Inventory. Barcode scanning, storage locations, expiry dates, opened packs, favourites and CSV import and export.
- Shopping. A smart shopping list with anti-waste quantities, recipes that add missing items after deducting what you have, and optional Bring! sync.
- Cooking. Step-by-step recipes with spoken instructions, timers and zero-waste tips.
- Alerts and calendar. Expiry notifications through ntfy, a JSON webhook or Home Assistant, plus an ICS feed for Google or Apple Calendar.
- Integrations. A REST API, an MCP server, a Home Assistant integration in a separate repository, a Health Bridge with Fuel Mode, and the Android kiosk with a Bluetooth scale gateway.
AI Features and Where They Run
One AI provider is active at a time, chosen in .env: Gemini, OpenAI, or "llama", an OpenAI-compatible endpoint you run yourself; AI can also be switched off.
- Product recognition. AI identifies a product from a camera photo, and with a Gemini key it can be asked about barcodes that other lookups miss.
- Expiry dates. AI reads a photo of the label and fills in the expiry field.
- Recipes and chat. AI writes recipes from what is in the pantry and offers a chat; recipes can also come from a connected Mealie instance.
- Providers. The example configuration documents Gemini, OpenAI with a changeable base URL and model, and a Llama option for Ollama, llama.cpp or vLLM. The wiki describes the AI features in terms of Gemini and does not say which of them work with a local model.
- Cost controls. The example file sets a daily cap on Gemini classification calls and can estimate token costs.
Data Flow and Privacy
The site states that inventory and history stay on your device or home server, that AI is optional and that there is no telemetry. The architecture notes describe a SQLite database in the data folder, and the security policy assumes a trusted home network.
Outside requests named in the sources: the AI provider you pick (Gemini or OpenAI, unless you use the Llama option), Open Food Facts for unknown barcodes, Open Prices for price estimates, and optional services such as Bring!, ntfy, Google Drive backup and a PayPal donation link. Error reports go to a local, redacted log, and sending them to GitHub is a second opt-in. The README says a one-time dialog offers a donation or nothing and that no advertising is shown. The public demo uses cloud AI.
📌Note: These are the project's declarations, not audit results. PromptQuorum has not inspected network traffic or the source code.
Who Should Use It
- Self-hosters with a Docker server or NAS who want a private pantry and expiry tracker.
- Households that cook from the pantry and want a shared shopping list, expiry alerts and recipes built from what is on hand.
- Home Assistant users who want expiry and shopping data in their smart home or in an MCP-connected agent.
What We Could Not Verify
- AI quality. Product recognition, expiry reading and recipe quality were not tested, and the sources do not say which AI features work with a local Llama model.
- Maturity. The project began in March 2026 and credits one developer; PromptQuorum did not assess its stability or security.
- Security documentation. SECURITY.md still lists 1.7.x as the supported line, well behind the current v1.16.16.
- Data claims. "No telemetry" and "data stays at home" are the project's statements; traffic was not inspected.
- Hardware needs. No RAM or CPU minimum is documented, and speed on a small device such as a Raspberry Pi was not checked.
Competitors and Alternatives
The directory has one other review in the same smart-home layer: a voice assistant inside Home Assistant, the platform EverShelf offers an integration for. The project's own site compares EverShelf with Grocy, Mealie and KitchenOwl; those pantry and recipe managers are not in the directory, and PromptQuorum did not verify that comparison.
Home Assistant Assist
- Platforms:
- Home Assistant, web, iOS, Android
- Price / license:
- Free / Apache-2.0
- Key difference:
- Voice control for a smart home, not a pantry tracker
Articles about Home Assistant Assist (1)
- Home Assistant Assist Review: Local Voice Control and LLM AgentsUpdated October 24, 2026
Confirm each app's current price, license and platforms on its own page.
Frequently Asked Questions
Is EverShelf a local LLM?
No. It is a pantry manager written in PHP; its AI is delegated to Gemini, OpenAI or a Llama server you run, and the site says the pantry features work without AI.
How do I back up my data?
The release notes say a daily backup runs as a database snapshot, but it is stored inside the data volume, so copy it off the volume yourself.
Does it work with Home Assistant or AI agents?
The repository links a Home Assistant integration (ha-evershelf) and an MCP server for agents; PromptQuorum tested neither.
Does it work on a phone or tablet?
It opens in a browser and can be added to the home screen, and the Android kiosk app is meant for wall-mounted tablets. The site and README link no App Store or Google Play listing.
Which languages does the interface support?
The README lists Italian, English, German, French, Spanish and Chinese, and the app opens in the language of a link such as ?lang=de; contributors add a language by translating translations/en.json.
Verdict
EverShelf is a free, actively updated way to track a pantry, expiry dates and shopping on a server you control, with optional AI for recognising products, reading expiry labels and writing recipes. Against that, setup needs Docker and a hand-edited .env file, the AI runs on Gemini or OpenAI unless you configure your own Llama server, the project is under a year old, and none of the AI or privacy claims could be checked here. It suits households that already self-host; anyone who wants a double-click app or a language-model assistant should look elsewhere.
Sources
- EverShelf website — features, FAQ and privacy statement, checked 1 November 2026.
- EverShelf on GitHub — README, releases, example configuration, security policy and commit activity, checked 1 November 2026.
- EverShelf wiki pages in the repository — features, installation and AI providers, checked 1 November 2026.
- EverShelf Android kiosk README — version, minimum Android level and download, checked 1 November 2026.
