Skip to content

Domocn/Laro

Repository files navigation

Laro Logo

Laro

Your Recipe Companion
Self-hosted recipe manager for home cooks

Cloud Version License Python React

Cloud VersionSelf-HostFeaturesConfiguration


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.


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

# Start services
docker-compose up -d

# Open http://localhost:3000
# 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 with your database and settings

# Run
uvicorn main:app --host 0.0.0.0 --port 8000

Frontend (Node 18+):

npm install
npm run dev
# Open http://localhost:5173

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

Cooking Mode

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

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=[email protected]

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

Docker Compose

version: '3.8'
services:
  backend:
    build: ./backend
    ports:
      - "8000:8000"
    environment:
      - DATABASE_URL=postgresql://laro:password@db:5432/laro
      - JWT_SECRET=your-secure-secret
    depends_on:
      - db

  frontend:
    build: .
    ports:
      - "3000:80"
    depends_on:
      - backend

  db:
    image: postgres:15
    environment:
      - POSTGRES_USER=laro
      - POSTGRES_PASSWORD=password
      - POSTGRES_DB=laro
    volumes:
      - postgres_data:/var/lib/postgresql/data

volumes:
  postgres_data:

Tech Stack

Component Technology
Web React, TypeScript, Tailwind CSS, Vite
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

No releases published

Packages

 
 
 

Contributors