About this project
Stash is a self-hosted, single-household home inventory system that treats items primarily as barcode/QR-code-labeled things. Rather than serving as a recipe or meal-planning tool, it focuses on fast restock/consume flows, low-stock and expiry tracking, printable labels, and optional automation via outbound webhooks.
Key capabilities:
- Continuous camera scanning in Restock (+1) and Consume (−1) modes with format hints, higher resolution, autofocus, audible beep, haptic feedback, and a low-light flash toggle. Unknown barcodes automatically create a new item and open a quick sheet for location and threshold.
- Unified item+barcode model supporting UPC/EAN, self-issued internal QR codes (deep-linking to the item), Matter pairing codes, and manual serial numbers. A single print button sends only the selected barcode symbology, which matters when an item carries multiple codes.
- Asset mode for single physical devices, with condition tracking, serial-number barcode entry, and a maintenance-history log; asset items are excluded from shopping-list and low-stock logic.
- Nested locations and categories rendered as an indented tree, with search, filters, sorting, pagination, and remembered last-used filter/sort state. Bulk operations let you move or delete selected items at once.
- Item detail includes quantity, low-stock threshold, expiry/warranty dates, price with a default currency, inline name/unit editing, attachments, and adjustment/maintenance logs.
- File attachments for receipts, manuals, warranties, and photos. Any image can become the item’s representative avatar; uploads are auto-resized.
- Dashboard highlighting total inventory value, low-stock items, expiring-soon items, and recently added items, plus an onboarding checklist for locations, notifications, and public URL.
- Shopping list built from low-stock items or manually added entries, with memos and a bought checkbox; items drop off automatically once stock rises above their threshold.
- Optional pluggable product lookups (Open Food Facts, UPCItemDB, Naver Shopping) per scan, or disabled entirely.
- CSV import/export, including barcode values, for bulk entry and spreadsheet round-trips.
- Label printing as single PNG or A4 label-sheet PDF, with a search box on the picker; Korean typography is supported via a bundled Noto Sans KR subset.
- Web Push notifications for expiry/warranty events and a weekly low-stock digest.
- Soft delete with undo toast, restore, and 30-day auto-purge.
- Offline-friendly PWA: cached app shell, cached item responses, and an offline scan queue that syncs when connectivity returns.
- Outbound inventory webhook for printer or Home Assistant automations, with last delivery failures visible in Settings and optional HMAC-SHA256 signature verification.
- Multi-user family accounts with admin/general roles, first-admin bootstrap, one-time admin password reset, log out everywhere, backup/restore, and ko/en i18n with light/dark theme.
Not in scope: recipe/meal planning, per-household multi-tenancy within a single process.
Deployment is available as Docker Compose or as a one-click Proxmox LXC installer. A local development setup uses PostgreSQL, Prisma migrations, and separate API/web dev servers. Images are published to GitHub Container Registry, and production notes cover subpath serving, health checking, and secret management.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.