PantryPantry
Self-hostedPWAFree

A pantry that keeps track of expiry dates for you

Pantry is an app for the whole household: scan EAN barcodes, see what's about to go off, plan shopping with your family and keep all your recipes in one place. It runs on your own server, so your data stays with you.

Pantry – Scanner
Pantry – Dashboard
Pantry – Recipes

What Pantry can do

Everything you need, with no cloud accounts and no subscriptions.

EAN barcode scanner

Scan a product with your phone's camera and its data is fetched from Open Food Facts. Pick an expiry date (+3 days, +1 week, +1 month or a date from the calendar) and you're done. Quick-remove mode subtracts used items with a single scan.

Expiry dates under control

The dashboard instantly shows what needs to be used up. The warning period is configurable, and expired products can be moved to your shopping list with one click.

Shared shopping lists

Multiple lists with real-time sync. When someone ticks off an item in the store, everyone else in the household sees it right away.

Notes, checklists and recipes

Colourful pinnable notes, quick checklists and a recipe manager with photos, ratings and ingredient lists.

Households and roles

The first account becomes the administrator. Family members join with a 6-character code valid for 5 minutes, and the admin panel manages users and households.

PWA on every phone

Install it like a regular app on iOS and Android. Changes appear on all devices without refreshing.

Your kitchen, your colour

In Settings you can choose one of six accent colours. Click to see how the whole app changes. This page reacts too.

Selected: Green

What it looks like

Dashboard
Pantry – Dashboard
Pantry
Pantry – Pantry
Shopping
Pantry – Shopping
Scanner
Pantry – Scanner
Notes
Pantry – Notes
Recipes
Pantry – Recipes
Audit
Pantry – Audit
Settings
Pantry – Settings

On your own hardware

A server at home, on a NAS or a VPS. One SQLite database file and full control.

Closed registration

New accounts can only be created with an invite code from the administrator.

Change history

The audit log shows who added, changed or discarded a given product.

Under the hood

Frontend
React 18, TypeScript, Vite, Tailwind CSS, Socket.IO Client, vite-plugin-pwa
Backend
Node.js, Express, TypeScript, Prisma, SQLite, JWT, bcrypt, Zod, Socket.IO
Product data
Open Food Facts, Open Beauty Facts, Open Products Facts, Open Pet Food Facts
Deployment
Docker Compose, Nginx, SQLite volume (./data)

Installation

All you need is Docker and Docker Compose. The app will start at http://localhost:3200.

git clone https://github.com/paczuu/Pantry.git
cd pantry
docker compose up -d --build
  1. Open the app and register the first account. It automatically becomes the household and system administrator.
  2. In Settings, under the General tab, generate an invite code and give it to your family members.
  3. For access from outside your home, expose the app over HTTPS, otherwise the camera and PWA installation won't work.

Installation via Portainer and on a NAS is coming soon.

FAQ

Help improve Pantry

Found a bug or have an idea for a new feature? Reports and ideas are very welcome.

Open repository