Back to articles
Technology Insight

Build Your Own Self-Hosted Recipe and Meal Planning Application with Tandoor Recipes on a Home Docker VPS

June 3, 2026

Introduction: The Case for Self-Hosting Your Culinary Data

In the digital age, managing a household efficiently requires the right tools. For food enthusiasts, home cooks, and meal prep strategists, recipes and meal plans are often scattered across bookmarked websites, saved social media videos, physical cards, and fragmented note-taking apps. While commercial SaaS solutions exist, they frequently suffer from sudden feature paywalls, intrusive advertisements, data privacy concerns, and the risk of service discontinuation.

Enter Tandoor Recipes (formerly known as Owncloud Recipes), a powerful, open-source recipe manager designed for modern digital homesteading. By deploying Tandoor Recipes on a local Virtual Private Server (VPS) or a home server using Docker, you build a resilient, private, and highly customizable platform. This enterprise-grade home application allows you to manage recipes, plan weekly meals, generate automated shopping lists, and collaborate with family members. This guide provides a comprehensive, production-ready walkthrough to deploying Tandoor Recipes via Docker Compose on your home infrastructure.


Why Choose Tandoor Recipes and Docker?

Before diving into the deployment steps, it is essential to understand why this specific software stack offers the ultimate solution for self-hosted meal management.

Key Features of Tandoor Recipes

  • Advanced Recipe Parsing: Automatically import recipes from almost any website simply by pasting the URL. The built-in scraping engine extracts ingredients, instructions, and images seamlessly.
  • Dynamic Meal Planner: Plan your meals by days, weeks, or months. You can schedule breakfasts, lunches, dinners, and snacks with a drag-and-drop interface.
  • Automated Shopping Lists: Tandoor consolidates ingredients from your planned meals into a single, organized shopping list, automatically combining quantities of identical items.
  • Multi-User Collaboration: Create accounts for family members or roommates, allowing collective meal planning and synchronized grocery shopping in real-time.
  • Extensive Customization: Manage dietary restrictions, track nutritional values, organize by tags, and scale ingredient quantities dynamically based on guest counts.

The Advantages of Using Docker on a Home VPS

Running a home server or a localized VPS (such as an Intel NUC, Raspberry Pi, or a repurposed mini-PC) using Docker ensures application isolation and portability. Docker containers bundle all necessary dependencies, ensuring that database updates or Python runtime changes within Tandoor do not interfere with other services running on your home network. Maintenance, backups, and updates are reduced to simple, repeatable commands.


Prerequisites and Infrastructure Setup

To ensure a smooth installation process, verify that your home server environment meets the following baseline requirements:

  • Operating System: A stable Linux distribution (Ubuntu Server 22.04 LTS or 24.04 LTS recommended).
  • Docker Engine: Docker Engine v20.10+ installed and running.
  • Docker Compose: Compose V2 plugin integrated into your Docker CLI.
  • Network & Domain: A local static IP address for your server. If you plan to access Tandoor outside your home network, a domain name and a reverse proxy (like Nginx Proxy Manager, Caddy, or Traefik) with SSL encryption are highly recommended.
Security Note: Always ensure your firewall (e.g., UFW) is configured properly. If exposing Tandoor to the internet, never use default credentials and ensure SSL certificates are active.

Step-by-Step Deployment via Docker Compose

Tandoor Recipes relies on a multi-container architecture consisting of the core application server, a PostgreSQL database for robust data management, a web server (Nginx) to serve static assets efficiently, and optionally a background worker for asynchronous tasks like URL scraping.

Step 1: Preparing the Directory Structure

Log into your home server via SSH and create a dedicated directory for your Tandoor deployment to keep your configurations organized.

mkdir -p ~/docker/tandoor-recipes
cd ~/docker/tandoor-recipes
mkdir -p tandoor_data tandoor_media pg_data

Step 2: Configuring the Environment Variables

Tandoor uses an .env file to manage sensitive configurations, database credentials, and application behaviors. Create and edit this file:

nano .env

Paste the following optimized configuration, ensuring you modify the secret keys and database passwords:

# Secret Key for Django session encryption (generate a random string)
SECRET_KEY=super_secret_and_long_random_string_here

# Database configuration
POSTGRES_DB=tandoor
POSTGRES_USER=tandoor_user
POSTGRES_PASSWORD=your_secure_password_here
POSTGRES_HOST=tandoor_db
POSTGRES_PORT=5432

# Application settings
TIME_ZONE=Asia/Ho_Chi_Minh
LANGUAGE=en
DEBUG=0

# Allowed hosts (adjust to your server's IP or domain)
ALLOWED_HOSTS=192.168.1.100,localhost,yourdomain.com

# Max upload size for images (in bytes)
MAX_UPLOAD_SIZE=5242880

Step 3: Creating the Docker Compose File

Now, define the multi-container setup in a docker-compose.yml file. This production-grade blueprint establishes the web app, database, and background worker containers, mapping the necessary persistent storage volumes.

nano docker-compose.yml

Insert the following configuration:

version: '3.8'

services:
  tandoor_db:
    image: postgres:15-alpine
    container_name: tandoor_db
    restart: always
    volumes:
      - ./pg_data:/var/lib/postgresql/data
    environment:
      POSTGRES_DB: ${POSTGRES_DB}
      POSTGRES_USER: ${POSTGRES_USER}
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}

  tandoor_web:
    image: vabene1111/recipes:latest
    container_name: tandoor_web
    restart: always
    env_file:
      - .env
    volumes:
      - ./tandoor_data:/opt/recipes/staticfiles
      - ./tandoor_media:/opt/recipes/mediafiles
    ports:
      - "8080:8000"
    depends_on:
      - tandoor_db

Step 4: Launching the Application

With your environment and compose configuration established, initiate the deployment using Docker Compose. Run the following command in detached mode:

docker compose up -d

Docker will pull the specified PostgreSQL and Tandoor Recipes images, configure the internal networks, initialize the database schemas, and start up the services. You can monitor the startup logs to ensure there are no errors:

docker compose logs -f

Initial Configuration and Optimization

Once the containers are running smoothly, open your preferred web browser and navigate to http://:8080 (e.g., [http://192.168.1.100:8080](http://192.168.1.100:8080)).

1. Account Setup

Upon your first visit, you will be prompted to create the initial administrator account. Enter a secure email address and password. This account will have full access to manage system settings, users, and global parameters.

2. Configuring Spaces

Tandoor introduces the concept of "Spaces." Spaces allow you to isolate different collections of recipes. For a household, you will typically create a single space called "Home Kitchen" and invite family members to join this specific space, enabling collaboration while keeping data synchronized.

3. Importing Your First Recipe

To test the parsing engine, navigate to the "Recipes" tab and click "Import by URL." Paste a link from a popular food blog or cooking website. Tandoor will process the metadata in the background, extracting the ingredient list, step-by-step directions, prep times, and high-resolution imagery within seconds.


Best Practices for Home Maintenance and Backups

Data permanence is the cornerstone of successful self-hosting. Since you are storing curated recipes, customized meal histories, and structured shopping habits, implementing a robust backup workflow is essential.

Automated Backups

Because Tandoor Recipes stores its configuration and transactional data across persistent directories and a database, you must back up both the pg_data directory (or perform a pg_dump) and the tandoor_media directory (which holds your uploaded recipe photos). A simple daily cron job compressing the ~/docker/tandoor-recipes directory and uploading it to an external storage location (like a local NAS or secure cloud storage) ensures absolute data safety.

Updating Tandoor Recipes

The open-source community actively maintains Tandoor, regularly patching security vulnerabilities and releasing new features. To update your containers to the latest version, execute this quick three-step sequence:

docker compose pull
docker compose up -d --remove-orphans

Conclusion

By deploying Tandoor Recipes on your home Docker VPS, you successfully reclaim ownership of your personal data while provisioning a powerful, commercial-grade tool for your kitchen ecosystem. No longer constrained by shifting platform limitations or privacy compromises, your digital cookbook can expand endlessly. This robust setup transforms how you interact with food, streamlining your meal planning and ingredient procurement workflows into an organized, efficient, and locally managed private cloud application.

Build Your Own Self-Hosted Recipe and Meal Planning Application with Tandoor Recipes on a Home Docker VPS | DPTCloud