A simple, self-hosted application to track food inventory in your freezers. Built with Go, React, and SQLite, designed for homelab environments.
📚 View the Instructions Guide & user manual here!
- Freezer & Location Management: Create and manage multiple virtual freezers (e.g., Kitchen Freezer, Garage Deep Freeze).
- Categories & Icons: Organize food items into default categories (Pork, Seafood, Beef, Poultry, Bread, Uncategorized) or create custom categories with custom icons.
- Category & Freezer Filtering: Quickly filter your inventory by freezer or category.
- Inventory Tracking: Track items by name, quantity, weight, category, and frozen date (defaults automatically to today's date, or mark as unknown to prioritize for consumption).
- Smart Grouping: Group identical items automatically with batch consume and deduct capabilities.
- Quick Transfers: Move items between freezers with partial quantity support by clicking freezer badges or using the Move action.
- Database Backup & Restore: Export timestamped database backups (
freezo_backup_YYYY-MM-DD_HH-MM-SS.db), restore from snapshots, or perform database resets. - Responsive UI: Sleek, mobile-friendly interface built with React, Vite, and Lucide icons.
- Backend: Go (Golang) with Chi router, modernc SQLite engine (WAL mode with concurrency safety).
- Frontend: React (Vite) with Lucide icons and date-fns.
- Deployment: Kubernetes via Helm Chart (using Recreate strategy for PVC stability).
- Go 1.25+
- Node.js 22+
- Docker
- Kubernetes Cluster (e.g., k3s, minikube)
- Helm
You can run the backend and frontend in separate terminals:
Terminal 1 (Backend):
make run-backendTerminal 2 (Frontend):
make run-frontendRunning Tests:
make testTo release a new version of the application (Frontend + Backend):
- Tag the release:
This triggers the
git tag v0.3.0 git push origin v0.3.0
release.ymlworkflow which builds and pushes the Docker images.
To release a new version of the Helm chart:
- Update Config: Bump
versionandappVersionin Chart.yaml. - Push: Commit and push the change to
main. This triggers thechart-release.ymlworkflow which packages and releases the chart to GitHub Pages.
helm repo add freezo https://rpressiani.github.io/freezo
helm install freezo freezo/freezoThis project was vibe coded with Google Antigravity and Gemini 3.
