Introduction
Tandoor Recipes is a Django-based recipe management tool that replaces scattered bookmarks and paper cookbooks with a searchable, self-hosted recipe database. It supports importing recipes from URLs, meal planning for the week, and automatic shopping list generation based on planned meals.
What Tandoor Recipes Does
- Stores recipes with ingredients, instructions, nutrition info, and photos in a structured database
- Imports recipes from thousands of websites using built-in parsers and the recipe-scrapers library
- Generates meal plans with drag-and-drop weekly calendar scheduling
- Creates consolidated shopping lists from planned meals with automatic ingredient merging
- Supports multi-user households with shared cookbooks, meal plans, and shopping lists
Architecture Overview
Tandoor is a Django application with a Vue.js frontend served as a single-page application. PostgreSQL is the recommended database backend, with SQLite supported for smaller installations. Recipe import uses the recipe-scrapers Python library to extract structured data from web pages. Background tasks for search indexing and import processing run via Django-Q or Celery. File uploads (images, PDFs) can be stored locally or on S3.
Self-Hosting & Configuration
- Deploy using Docker Compose with PostgreSQL, or install directly on a Python environment
- Configure the .env file for database connection, secret key, and allowed hosts
- Set up external storage (S3 or local) for recipe images and file attachments
- Enable email sending for password resets and sharing invitations via SMTP configuration
- Configure reverse proxy (Nginx/Traefik) for HTTPS access and static file serving
Key Features
- One-click recipe import from URLs with automatic parsing of ingredients and steps
- Meal planning calendar with drag-and-drop recipe scheduling and portion scaling
- Shopping list generation that merges duplicate ingredients across multiple recipes
- Full-text search with filtering by keywords, food types, ratings, and cook time
- Cookbooks feature for organizing recipes into themed collections
Comparison with Similar Tools
- Mealie — similar feature set with a Go + Vue stack, different UI style and import approach
- Paprika — commercial app with cloud sync, not self-hostable or open source
- Grocy — broader household management including recipes, more complex setup
- KitchenOwl — Flutter-based recipe and grocery app, newer with smaller community
- Nextcloud Cookbook — Nextcloud plugin, requires full Nextcloud instance, simpler feature set
FAQ
Q: Can Tandoor import my existing recipes from websites? A: Yes. Paste a URL and Tandoor automatically extracts the recipe title, ingredients, instructions, and image using the recipe-scrapers library, which supports thousands of cooking sites.
Q: Does it support multiple users? A: Yes. Tandoor supports multiple user accounts with configurable spaces (separate recipe collections), shared meal plans, and collaborative shopping lists.
Q: Can I access recipes offline? A: Tandoor is a web application and requires network access to the server. However, it works well as a PWA and you can use a reverse proxy with caching for local network access.
Q: What about nutrition information? A: Recipes can include nutritional data either imported from source websites or manually entered. Tandoor can also connect to the Open Food Facts API for ingredient nutrition lookup.