Estimated reading time: 12 minutes

Are you tired of standing in front of the fridge every day at 5 pm and asking yourself: „What am I cooking today?“ Or are you familiar with the chaos of hundreds of browser tabs, screenshots on your phone and greasy notes in old cookbooks? If you want to finally digitize your kitchen and take back control of your diet, then Mealie the answer.

In this massive guide - and when I say massive, I mean really in detail - I will show you everything about Mealie. We don't just talk about what it is, we dive deep into the installation, the hidden features, the connection to your smart home and the daily workflow. Grab a coffee (or a wooden spoon) and let's get started!

For detailed instructions and explanations of all configuration options, I recommend watching the YouTube video linked below. This video goes into detail about each individual setting, providing you with comprehensive instructions on how to set everything up correctly. Any code from the video can be found in this article, so you can use it directly without having to type it out.

This blog post, including video, is part of a series in which we build and set up our own home server. We start with the basics, such as installing Ubuntu VM with Docker, and then move on to configuring our own domain, security measures, and, above all, lots of cool and useful self-hosted services. Whether it's media servers like Plex or Jellyfin or document management like Paperless-NGX, we'll work together to build the setup you want to see. We'll even tackle topics like single sign-on (SSO) together.

What is Mealie actually?

Mealie is a modern, self-hosted recipe manager and meal planner. But this description hardly does the tool justice. Think of Mealie as your digital „brain“ for the kitchen.

Developed with a front end in Vue.js and a backend in Python (FastAPI), Mealie feels incredibly fast and „snappy“. In contrast to many other open source projects, which are often functional but ugly, Mealie places extreme emphasis on design and User Experience (UX). It looks just as good on your 27-inch monitor as it does on your smartphone in the supermarket.

The core functions at a glance:

  • Recipe import: One click, and the recipe from Chefkoch, Lecker.de or English blogs lands neatly formatted in your database.
  • Weekly planner: Drag & drop planning for breakfast, lunch, dinner and snacks.
  • Shopping list: automatically generated from your plan, sorted by supermarket shelves.
  • Cooking mode: A special screen that prevents your tablet from going out while you're cooking with dough-smeared fingers.

Why self-hosted? Your data belongs to you!

Perhaps you are wondering: „Why should I go to the trouble of running a server when there are apps like Yummly or Chefkoch?“

The answer is simple: Independence and peace of mind.

  1. No advertising: When you open a recipe in Mealie, you see the recipe. No pop-ups, no flashing banners, no 5-page life stories of the food blogger before the list of ingredients. Mealie distills the web for you.
  2. Consistency: How often has it happened to you that a website went offline or a recipe was deleted? In Mealie, the database is yours. The recipe remains there forever, even if the original source disappears.
  3. Privacy: Nobody tracks that you cook pasta with pesto three times a week or how often you cook vegan food. Your nutritional data remains in your local network. And you can also adapt and personalize your recipes.
mealie

The installation: Your way to your own recipe server

Now it's getting technical, but don't worry: we'll take it step by step. Mealie is designed to be Docker container to run. This is the gold standard for modern home server applications.

Requirements

You need a system on which Docker and Docker Compose run. That may be the case:

  • A Raspberry Pi (Model 4 or 5 recommended).
  • A Synology NAS (Models with „Plus“ in the name that support Docker).
  • An old laptop with Ubuntu/Debian.
  • A small home server (NUC, Unraid, Proxmox).

Docker-Compose Guide

Create a file on your server, e.g. /home/user/docker-compose-mealie.yaml. The content:

services:
  mealie:
    image: hkotel/mealie:latest
    container_name: mealie
    restart: unless-stopped
    networks:
      - sascha
    environment:
      TZ: "Europe/Berlin"
      ALLOW_SIGNUP: "false"
      DEFAULT_EMAIL: "[email protected]"
      BASE_URL: "http://192.168.178.79:3003"
      DEFAULT_GROUP: "famfriends"
      API_DOCS: "false"
      SECURITY_MAX_LOGIN_ATTEMPTS: "3"
      SECURITY_USER_LOCKOUT_TIME: "24"
      TOKEN_TIME: "720"
      PUID: "99"
      PGID: "100"
    ports:
      - "3003:9000"
    volumes:
      - /mnt/cache/appdata/wiki/mealie:/app/data:rw

networks:
  sascha:
    external: true

The service (Service)

A single service called mealie is defined. The latest available memory image from Mealie serves as the basis. The container is set to restart automatically after a system restart unless it has been stopped manually.

Network and accessibility

  • Network: The container joins an existing external network called sasha with. This enables communication with other services in this special network.
  • Ports: The application is started via the IP address of the host system on port 3003 while it runs internally in the container on port 9000.

Configuration (environment variables)

The „rules of the game“ for the software are defined here:

  • Security: New registrations are deactivated, the number of login attempts is limited and you have to wait 24 hours if your account is blocked.
  • Identity: A standard e-mail, a basic URL for access and a standard user group are defined.
  • System: The time zone is set to Berlin. In addition, specific user and group IDs (99/100) are assigned so that the write permissions on the server are managed correctly.

Data storage (volumes)

A permanent storage path is defined so that recipes and data are not lost if the container is deleted. A local directory on your server (/mnt/cache/appdata/wiki/mealie) is permanently linked to the data directory within the container, whereby the container has full read and write access.

You can then simply start the services with the following command (the name must of course be adapted):

docker compose -f "docker-compose-mealie.yml" up -d

The first start

Give the container one minute. Then call in the browser http://deine-ip-adresse:3003 on. You will be greeted with a login screen. The standard access data (version V1/V2) are often:

First step: You will be prompted to create your admin user!

Import recipes: The magic of the scraper

This is the feature that will win you over. Mealie uses an extremely powerful „scraper“ (based on hrecipe and schema.org standards).

Imagine finding a great curry recipe on a totally cluttered food blog site.

  1. Copy the URL.
  2. In Mealie, go to „Recipes“ -> „Import“.
  3. Paste the URL and click on „Import“.

What happens in the background?

Mealie analyzes the source code of the website. It searches for structured data. It extracts:

  • The title („Yellow Thai Curry“).
  • The picture (in highest resolution).
  • The ingredients (and try to recognize quantities and units).
  • The preparation steps.
  • The times (preparation, cooking time).
  • The portions.

The result is a clean, consistent recipe in your database. No advertising, no stories about the author's vacation in Thailand - just the recipe.

The manual editor & Markdown

Of course you can also type out grandma's secret recipe book. Mealie offers an editor that Markdown is supported. This means you can highlight ingredients in bold, create lists or even insert links. Especially cool: Mealie tries to parse your ingredients „intelligently“. If you write „500 g flour“, the system recognizes: quantity = 500, unit = g, ingredient = flour. This is essential for the shopping list later on.

Order is half the battle: Categories, tags and books

Once you have 50 or 100 recipes, you need structure. Mealie offers three levels here:

  1. Categories: These are the classic drawers. „Main course“, „dessert“, „breakfast“. A recipe usually belongs in one category.
  2. Tags (keywords): This is where it gets flexible. A recipe can have the tags „Vegan“, „Quick“, „Thermomix“, „Indian“ and „Spicy“ at the same time.
  3. Cookbooks: An often overlooked feature. You can create virtual cookbooks. Why not create a „Christmas menu 2026“ book and collect starters, main courses and desserts in it? You can also create one for Asian cuisine or one just for meat lovers.

The search in Mealie is lightning fast. You can search for „Chicken“ and then filter by „Asian“ tag and „Main course“ category.

The meal planner: no more „What are we eating today?“

The Meal Planner is the centerpiece of everyday family life.

The view: You see a calendar week (or month). There are slots for each day: Breakfast, lunch, dinner and (new in newer versions) snacks/desserts.

The workflow: On Sunday, you sit down (perhaps with your tablet on the couch). On the right, open the sidebar with your recipes.

  • „Monday must be quick“ -> filter by day „Quick“ -> drag & drop „Pasta with tomato sauce“ to Monday evening.
  • „Tuesday is Taco-Tuesday“ -> Drag „Tacos“ to Tuesday.
  • „There are still plenty of vegetables on Wednesday“ -> Drag „Vegetable pan“ to Wednesday.

There is even a Random function. You can tell Mealie: „Plan me dinner for a week, but only vegetarian recipes.“ Mealie rolls the dice for you - perfect against decision fatigue.

The intelligent shopping list

Now comes the step that will really save you time. You've created your plan for the week. Now what?

Click on the button „Add to shopping list“. Mealie asks you: „For what period?“. You choose „Next week“.

Consolidation (the killer feature): Assumed:

  • Recipe A (Monday) requires 1 onion.
  • Recipe B (Wednesday) requires 2 onions.
  • Recipe C (Friday) requires 300 g onions.

Mealie is smart enough (most of the time) to add this up or at least group it under the „onions“ entry.

Supermarket sorting: Nothing is more annoying than running back and forth between the vegetable section and the refrigerated section in the supermarket. Mealie allows you to assign ingredients to categories (e.g. „Fruit & vegetables“, „Fridge“, „Canned food“). Your list is then sorted in exactly the same way in the app (or on the mobile website). You walk through the store once, check everything off and you're done.

Tip: You can also add „non-food“ items manually. „Washing-up liquid“ or „bin liners“ simply end up on the list.

Mealie for the whole family: users & groups (Households)

In version 1, Mealie was more for individual users. With the more recent updates (v1.0 and v2.0), the concept of the Households introduced.

This is great for shared flats or families.

  • You create a „Müller family“ household.
  • Each family member has their own user login.
  • See all the same Recipes and same Weekly schedule.
  • If your partner goes shopping on the way home and checks off an item on the list, you will see this immediately at home (live sync).

You can even manage permissions. Perhaps the children are allowed to suggest recipes, but not delete the weekly plan (although Mealie relies on trust rather than strict Enterprise rights here).

For professionals: API, webhooks & home assistant

This is where the nerd's heart beats faster. Mealie is „API First“. This means that almost everything you can click on in the browser can also be controlled by code.

The Home Assistant integration: This is the most common use case. There is an official integration or community add-ons.

What's the point?

  • You can display the following on your Home Assistant dashboard (e.g. on a tablet on the wall in the kitchen): „Today we're having lasagne“.
  • You can build buttons: If you press „Coffee“, coffee is added to the Mealie shopping list.
  • Automation: If the meal plan for today says „pizza“, Home Assistant could automatically preheat the oven (if you have a smart oven).

Webhooks:

You can configure Mealie so that it sends a message when something changes.

  • Example: Every morning at 08:00, Mealie sends a message to the family group via Telegram or Discord: „The meal plan for today: pancakes!“

Mealie in comparison: Why not Grocy or Tandoor?

There are other big players in the open source sector. Why Mealie?

  • Mealie vs. Grocy:
    • Grocy is an „ERP for your home“. It tracks inventory, expiration dates, barcodes, chores, batteries... It's extremely powerful, but also extremely complex („overkill“ for many). You have to book stock to cook.
    • Mealie is more relaxed. It's about recipes and planning. It doesn't force you to inventory every package of pasta. If you want to cook without studying storage beforehand, use Mealie.
  • Mealie vs. Tandoor Recipes:
    • Tandoor (based on Django) is very similar to Mealie and a strong competitor.
    • Mealie often scores with a slightly more modern, more fluid UI (Vue.js Single Page Application) and a very aggressive development speed. Mealie's import scraper is often considered the most reliable.

YouTube video implementation

Conclusion

Mealie is more than just a collection of recipes. It's a tool that gets rid of mental baggage. The constant „What are we cooking?“ and the chaos of notes when shopping disappear.

The combination of ingenious import scraper, beautiful user interface and Smart home connection makes it currently the best solution for anyone who wants to host their data themselves. Installation via Docker is completed in an afternoon, but the benefits last for years.

If you enjoy cooking, like technology and want to be independent of large cloud providers: Install Mealie. Today. You'll wonder how you ever managed without it.

The product display was implemented using the affiliate-toolkit WordPress plugin.

0 Comments

Leave a Reply

Avatar placeholder

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.