Skip to content

jackthomasanderson/glou-server

Repository files navigation

🍷 Glou

Simply precious.

Glou is a self-hosted asset manager for luxury collections — wines, spirits, bubbles, and cigars. Visual recognition, expert data, and peak maturity indicators in one stack you fully own.


✨ Top 5 Highlights

  1. 📸 Zero-Effort Intake: Snap a label photo. OCR pre-fills the details instantly.
  2. 🤝 Shared Inventory: Every user on the instance shares one collective cellar — built for families, roommates, and wine clubs.
  3. 🧠 Smart Data Engine: Auto-enrichment via Vivino and Whiskybase, backed by a local cache.
  4. 🔔 Peak Maturity Alerts: Get notified when a bottle enters its drinking window before it's too late.
  5. 🛡️ Fully Self-Hosted: A Docker Compose stack (Node.js · Next.js · PostgreSQL) you run on your own machine.

🚀 Quick Start

Prerequisites:

  • Docker installed and running.

Step 1 — Configure

cp .env.example .env

Open .env and set a strong JWT_SECRET.

Caution

JWT_SECRET has no safe default. Running with the placeholder value makes all user sessions trivially forgeable. Generate one with: openssl rand -hex 32

Step 2 — Launch

docker compose up -d

Docker pulls the pre-built images and starts the stack. No compilation required.

Step 3 — Create your account

Open http://localhost:3000 and click Register. The first account you create is automatically granted admin privileges.

Tip

To update to a new version: docker compose pull && docker compose up -d

For advanced configuration, environment variables, and troubleshooting, see the Wiki.


🗺️ Roadmap & Next Steps

🏗️ In Progress (WIP)

  • 🔒 Two-Factor Authentication (FEAT-02): TOTP-based 2FA for account protection.
  • Express Label Scanning (FEAT-04): Session mode for scanning dozens of bottles in one go.

✅ Recently Implemented

  • 📸 Graphical Item Visualization (FEAT-69): Auto image search as soon as name and producer are filled (DuckDuckGo, local storage). Photo displayed at the top of inventory cards and in the detail view, Vivino-style. Replace via manual search, URL paste, or file upload.
  • 🗺️ Visual Cellar Map (FEAT-68): Grid-based occupancy view of cellar slots, drag & drop bottle placement, color-coded by product category.
  • Smart Autocomplete (FEAT-66): Google-powered suggestions for name and producer when adding a bottle — vintage auto-extracted from suggestions.
  • 🔍 Global Search (FEAT-64): Instant navbar search across your entire inventory by name, producer, vintage, or category.
  • 🔗 Duplicate Detection (FEAT-65): Automatic duplicate warning before saving a bottle that already exists in your cellar.
  • 📡 Connectivity Indicator (FEAT-67): Live internet status in the navbar — external features (autocomplete, images) degrade gracefully when offline.
  • 👥 Member Roles & Access Control (FEAT-61): Admins can activate/deactivate user accounts with immediate effect (live JWT invalidation) and browse a paginated audit log.
  • 🔔 Peak Maturity Alerts (FEAT-06): Automated alerts when a bottle enters its optimal drinking window.
  • 🎨 User Profiles & Personalization (FEAT-03): Theme, accent color, language (FR/EN), and date format — applied instantly.
  • 🏷️ Contextual Asset CRUD (FEAT-01): Adaptive creation workflows for wines, bubbles, spirits, and cigars.
  • 🔍 Advanced Search & Faceted Filtering (FEAT-48): Find any bottle by name, producer, vintage, category, or cellar in real time.
  • 📦 Bulk Actions & Presets (FEAT-11): Update your collection in bulk and save action presets to automate routine tasks.

🔮 Next Up

  • Predictive analytics for collection valuation.
  • Advanced IoT integration for live cellar temperature and humidity monitoring.
  • Native mobile companion application.

About

Self-hosted cellar management system with modern web interface. Track wines, spirits, beers, and more. 100% open-source.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages