9a2d77ffec27349ee2b1a845cb8a6585a25d9189
Build and Push Fridger Container / Build & Push Fridger Image (push) Failing after 31s
🧊 Fridger
Smart Fridge Inventory & Grams Tracker with live Barcode Scanner and Dual View/Manage modes.
✨ Features
-
👁️ Fridge View Mode ("What's in my fridge?"):
- Visual layout organized by shelf/compartment (Top Shelf, Middle Shelf, Bottom Shelf, Crisper Drawer, Door Rack, Freezer).
- Clear stock level and remaining grams/ml progress indicators with percentage fullness.
- Expiration countdown badges (Fresh, Expiring Soon, Expired).
- Quick consume buttons (
-50g,-100g,-1 item, or custom slider).
-
⚙️ Manage Fridge Mode:
- Full inventory CRUD management.
- Dynamic Grams/Weight Tracking: When an item has weight (e.g. 250g cheese pack, 1kg flour, 500ml cream), easily slide or click quick-adjustment chips (
-10g,-25g,-50g,-100g,Half,Empty) to log partial usage after cooking. - Opened vs. unopened item tracking with open date.
-
📸 Live Barcode Scanner & Search:
- Camera-based barcode scanner (
html5-qrcode) directly in your browser (mobile & desktop). - Open Food Facts API integration for instant autofill: product title, brand, package net weight (grams/ml/units), category, and image.
- No nutrition/macro clutter — purely focused on what is in your fridge and how much is left!
- Camera-based barcode scanner (
-
🚀 Self-Contained Container & CI/CD:
- Lightweight Alpine container (
node:22-alpine) with built-in SQLite engine. - Automated build & push pipeline via Gitea Actions to
gitea.eibl.tech/me0nline/fridger:latest.
- Lightweight Alpine container (
🐳 Quick Start with Docker
Using Docker Run
docker run -d \
--name fridger \
-p 3000:3000 \
-v fridger-data:/data \
gitea.eibl.tech/me0nline/fridger:latest
Using Docker Compose
services:
fridger:
image: gitea.eibl.tech/me0nline/fridger:latest
container_name: fridger
restart: unless-stopped
ports:
- "3000:3000"
volumes:
- fridger-data:/data
volumes:
fridger-data:
name: fridger-data
Access the web interface at http://localhost:3000.
🛠️ Local Development
# 1. Install dependencies
npm install
# 2. Run backend test suite
npm test
# 3. Start development server
npm start
📡 REST API Summary
| Method | Endpoint | Description |
|---|---|---|
GET |
/api/items |
List items (supports search, category, location, status) |
GET |
/api/items/:id |
Get single item details |
POST |
/api/items |
Add item |
PUT |
/api/items/:id |
Update item details |
PATCH |
/api/items/:id/quantity |
Adjust grams/count ({ delta: -50 } or { newQuantity: 150 }) |
DELETE |
/api/items/:id |
Remove item |
GET |
/api/barcode/:code |
Barcode lookup (local cache + Open Food Facts) |
GET |
/api/stats |
Summary stats (total, fresh, expiring soon, opened, low) |
GET |
/api/meta |
Predefined categories, shelf locations, and units |
GET |
/health |
Healthcheck status |
📜 License
MIT
Description
A docker web-app that is built to scan and store what you have in your fridge
261 KiB
Languages
JavaScript
65.7%
HTML
31.9%
CSS
1.6%
Dockerfile
0.8%