Skip to content

Latest commit

 

History

30 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Laro Logo

Laro

Your Recipe Companion
Self-hosted recipe manager for home cooks

Cloud VersionSelf-HostFeaturesHome AssistantConfiguration

Audited by VAS


What is Laro?

Laro is a self-hosted recipe manager for home cooks. Import recipes from any website with AI, track your pantry, plan weekly meals, generate shopping lists, and cook with step-by-step guidance.

Your data stays on your server. No cloud required.

This public repo is a sanitized self-host artefact generated from the production codebase. Production laro.food is not deployed from this tree.


Don't Want to Self-Host?

Use our cloud version at laro.food - no setup required! Download the Android app from the Play Store and start cooking.

Self-hosted users can also use our official Android app - just point it to your server in the settings.


Quick Start

Option 1: Docker Compose (Recommended)

# Clone the repo
git clone https://github.com/Domocn/Laro.git
cd Laro

# Copy and configure environment
cp backend/.env.example backend/.env
# Edit backend/.env with your settings (JWT_SECRET, DATABASE_URL, …)

# Start services
docker compose up -d

# Open http://localhost:3000 (API on :8001 via compose)
# First user becomes admin!

Option 2: Manual Setup

Backend (Python 3.11+):

cd backend
python -m venv venv
source venv/bin/activate  # or venv\Scripts\activate on Windows
pip install -r requirements.txt

# Configure
cp .env.example .env
# Edit .env — then export it (config.py does not auto-load .env)
set -a && source .env && set +a

# Run (module is server:app on port 8001)
./venv/bin/uvicorn server:app --host 0.0.0.0 --port 8001

Frontend (Node 18+, CRA/craco):

npm install
# Prefer mixed hostnames so the SPA does not collapse API port to same-origin:
PORT=3000 BROWSER=none HOST=0.0.0.0 REACT_APP_BACKEND_URL=http://localhost:8001 npm start
# Open http://127.0.0.1:3000

Database (PostgreSQL 15+):

# Create database
createdb laro

# Or with Docker
docker run -d --name laro-db \
  -e POSTGRES_USER=laro \
  -e POSTGRES_PASSWORD=your-password \
  -e POSTGRES_DB=laro \
  -p 5432:5432 \
  postgres:15

Features

Recipe Management

  • AI-powered import from any URL
  • Quick paste - AI parses raw text
  • Categories, tags, and favorites
  • Scale servings up/down
  • Version history

Pantry Tracking

  • Track ingredients with expiry dates
  • Swipe to mark used or delete
  • Find recipes matching your ingredients
  • AI recipe suggestions

Meal Planning

  • Weekly calendar view
  • Drag-and-drop planning
  • Auto-generate meal plans with AI

Shopping Lists

  • Auto-generate from meal plans
  • Check off as you shop
  • Smart ingredient grouping + taught grocery aisles
  • Offline queue (check / add / remove / aisle / create / delete list)
  • UK-first barcode lookup (camera on web when supported)
  • Live presence when others view the same list

Cooking Mode

  • Full-screen step-by-step
  • AI cooking assistant
  • Timer integration

Kitchen & Nutrition

  • Ingredient aliases / merge duplicates
  • Store aisle overrides
  • UK Open Prices + % Reference Intake nutrition

Home Assistant

Laro has two separate Home Assistant packages:

1. HACS integration (cloud / remote Laro)

Repo: Domocn/laro-ha-intergration

For laro.food or any existing Laro server (sensors, meal calendar, services).

  1. HACS → Integrations → ⋮ → Custom repositories
  2. https://github.com/Domocn/laro-ha-intergration
  3. Category: Integration
  4. Download Laro → restart Home Assistant
  5. Laro Settings → API Tokens → create a token
  6. Settings → Devices & Services → Add Integration → Laro
  7. URL https://laro.food + paste the token

2. Supervisor add-on (self-host inside HA OS)

Repo: Domocn/Laro-home-assistant-addon

Runs a full Laro stack inside Home Assistant OS.

Using laro.food? Skip the add-on — use the HACS integration above.

Android App

Download our official Android app and connect it to your self-hosted server:

  1. Install the Laro app from the Play Store or laro.food
  2. Go to Settings > Server Configuration
  3. Enter your server URL (e.g., https://laro.yourdomain.com)

Configuration

Required: Database

DATABASE_URL=postgresql://laro:password@localhost:5432/laro

Required: JWT Secret

# Generate a secure random string (min 32 characters)
JWT_SECRET=your-very-long-secure-random-string-here

AI Provider (Choose One)

Ollama (Free, Self-Hosted):

LLM_PROVIDER=ollama
OLLAMA_URL=http://localhost:11434
OLLAMA_MODEL=llama3

OpenAI:

LLM_PROVIDER=openai
OPENAI_API_KEY=sk-your-key

Anthropic Claude:

LLM_PROVIDER=anthropic
ANTHROPIC_API_KEY=sk-ant-your-key

Email (Password Reset)

EMAIL_ENABLED=true
RESEND_API_KEY=re_your-key
SMTP_FROM_EMAIL=noreply@yourdomain.com

OAuth (Social Login)

GOOGLE_CLIENT_ID=your-id.apps.googleusercontent.com
GOOGLE_CLIENT_SECRET=your-secret
GITHUB_CLIENT_ID=your-id
GITHUB_CLIENT_SECRET=your-secret
OAUTH_REDIRECT_BASE_URL=https://yourdomain.com

Tech Stack

Component Technology
Web React, Tailwind CSS, CRA/craco
Backend FastAPI (Python), PostgreSQL
AI Ollama, OpenAI, Claude, Gemini

Contributing

  1. Fork the repo
  2. Create feature branch (git checkout -b feature/amazing)
  3. Commit changes (git commit -m 'Add feature')
  4. Push (git push origin feature/amazing)
  5. Open a Pull Request

License

MIT License - use it, modify it, share it!


Made with love for home cooks

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages