Tandoor Recipes logo

Tandoor Recipes

Recipe manager for managing recipes, planning meals, and building shopping lists

Alternative to: paprika, mealime, plan to eat


Tandoor Recipes is a self-hosted recipe manager built for people with a growing collection of recipes to organize, share, or cook from. It can import recipes from thousands of websites, plan meals for the week, and automatically generate shopping lists that sync in real time with family members. Additional features include nutritional calculation, cookbook curation, and full-text recipe search.

Tandoor Recipes Docker Compose example

Self-host Tandoor Recipes on your own server, homelab, or VPS starting from this Docker Compose example. It runs Tandoor Recipes in Docker containers using the official postgres:16-alpine, vabene1111/recipes:latest images, with persistent volumes and automatic restarts preconfigured. Review the environment variables and adjust them to your setup, save the file as compose.yml (or docker-compose.yml), and start the stack with docker compose up -d.

services:
  db_recipes:
    image: postgres:16-alpine
    restart: unless-stopped
    volumes:
      - db_data:/var/lib/postgresql/data
    environment:
      POSTGRES_USER: "djangouser"
      # Internal PostgreSQL password (database is only reachable inside the compose network)
      POSTGRES_PASSWORD: "changeme"
      POSTGRES_DB: "djangodb"

  web_recipes:
    image: vabene1111/recipes:latest
    restart: unless-stopped
    depends_on:
      - db_recipes
    environment:
      # Random secret key used by Django for cryptographic signing; use a long random string
      SECRET_KEY: "changeme"
      # Timezone for the application
      TZ: "UTC"
      # Space-separated list of hostnames allowed to serve the app ("*" allows any)
      ALLOWED_HOSTS: "*"
      # Django database backend engine
      DB_ENGINE: "django.db.backends.postgresql"
      # Hostname of the PostgreSQL service
      POSTGRES_HOST: "db_recipes"
      # PostgreSQL port
      POSTGRES_PORT: "5432"
      POSTGRES_USER: "djangouser"
      POSTGRES_PASSWORD: "changeme"
      POSTGRES_DB: "djangodb"
    volumes:
      - static_data:/opt/recipes/staticfiles
      - media_data:/opt/recipes/mediafiles

volumes:
  db_data:
  static_data:
  media_data:

Values set to changeme are required — replace them with your own values before starting Tandoor Recipes.

Prefer a managed setup? WinterFlow installs, configures, and updates Tandoor Recipes for you using this same Docker Compose configuration.