Your Recipe Companion
Self-hosted recipe manager for home cooks
Cloud Version • Self-Host • Features • Configuration
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.
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.
# 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!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 8000Frontend (Node 18+):
npm install
npm run dev
# Open http://localhost:5173Database (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- AI-powered import from any URL
- Quick paste - AI parses raw text
- Categories, tags, and favorites
- Scale servings up/down
- Version history
- Track ingredients with expiry dates
- Swipe to mark used or delete
- Find recipes matching your ingredients
- AI recipe suggestions
- Weekly calendar view
- Drag-and-drop planning
- Auto-generate meal plans with AI
- Auto-generate from meal plans
- Check off as you shop
- Smart ingredient grouping
- Full-screen step-by-step
- AI cooking assistant
- Timer integration
Download our official Android app and connect it to your self-hosted server:
- Install the Laro app from the Play Store or laro.food
- Go to Settings > Server Configuration
- Enter your server URL (e.g.,
https://laro.yourdomain.com)
DATABASE_URL=postgresql://laro:password@localhost:5432/laro# Generate a secure random string (min 32 characters)
JWT_SECRET=your-very-long-secure-random-string-hereOllama (Free, Self-Hosted):
LLM_PROVIDER=ollama
OLLAMA_URL=http://localhost:11434
OLLAMA_MODEL=llama3OpenAI:
LLM_PROVIDER=openai
OPENAI_API_KEY=sk-your-keyAnthropic Claude:
LLM_PROVIDER=anthropic
ANTHROPIC_API_KEY=sk-ant-your-keyEMAIL_ENABLED=true
RESEND_API_KEY=re_your-key
SMTP_FROM_EMAIL=[email protected]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.comversion: '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:| Component | Technology |
|---|---|
| Web | React, TypeScript, Tailwind CSS, Vite |
| Backend | FastAPI (Python), PostgreSQL |
| AI | Ollama, OpenAI, Claude, Gemini |
- Fork the repo
- Create feature branch (
git checkout -b feature/amazing) - Commit changes (
git commit -m 'Add feature') - Push (
git push origin feature/amazing) - Open a Pull Request
MIT License - use it, modify it, share it!
Made with love for home cooks
