Household pantry, fridge, and freezer inventory tracking with recipe recommendations based on what you already have at home. Self-hosted on a Raspberry Pi and served at onsinventory.com through a Cloudflare Tunnel.
| Directory | Description |
|---|---|
backend/ |
Java 25 / Spring Boot 4.1 REST API with PostgreSQL (prod) or H2 (local) |
frontend/ |
React + TypeScript SPA built with Vite and Tailwind CSS |
- Inventory management across pantry, fridge, and freezer, shared per household
- Recipe recommendations ranked by how many ingredients you already have
- Expiry tracking for expired and soon-to-expire products
- Meal planning and cooking recipes directly from stock
- Households with members, e-mail invitations, and shared inventory
- Accounts with JWT login, password reset, and anonymous feedback via e-mail (Resend)
# Backend (H2 in-memory, security disabled)
cd backend
mvn spring-boot:run
# Frontend (http://localhost:5173)
cd frontend
npm install
npm run devSee the backend README, frontend README, and QUICKSTART for details, and DEPLOYMENT for the Raspberry Pi setup.
cd backend && mvn test # JUnit integration tests
cd frontend && npm run test # Vitest unit tests- CI (
ci.yml) — tests backend and frontend on every PR and push tomain - Release (
release.yml) — branch prefixes drive semver:bug/*→ patch,feature/*→ minor,breaking/*→ major - Deploy (
deploy.yml) — builds and deploys to the Raspberry Pi via a self-hosted runner on release