Mealie - Probably the best self-hosted recipe manager... In the world.

David Rutland
David Rutland Linux

Self-hosted recipe managers are an essential fact of life in the Linux Impact kitchen. They solve the fundamental problem of keeping all of our recipes organised, in one place, and without the entire family history that comes with online recipes before you even get to the actual ingredients.

I wrote about the problem for another site last year, and to save my poor fingers from excessive strain, I’ve copy pasta’d the crux of the issue below:

We scour the net for recipes, and in the dim and distant past, we bookmarked them for later reference. Often, the page has changed or been deleted by the time we get round to looking at them again. Cooking blogs are abandoned as their owners lose interest, and individual links on active sites become invalid as the site is updated.

Bookmarks don’t work as a long term recipe solution.

It’s far better to print off the page, either on paper or as a PDF and keep it locally. But then, organising and searching for the right recipe becomes a chore.

Self hosting a recipe manager means that you have web facing software on a server, into which you can plug a URL, and the software will fetch the recipe for you, list all the ingredients in the ingredients section, and itemise the method. It will pull the prep time and cooking time, and pull a relevant image and place it at the top of the recipe page.

You can then follow along on your phone in the kitchen, search for and tick off items as you prowl the labyrinthine aisles of your local supermarket, and share the recipe with friends and fellow cooks.

For the last year, Linux Impact has been using Jeppe Zapp’s excellent Nextcloud Cookbook - and it’s been great. Almost perfect, in fact.

Nextcloud cookbook showing multiple recipes

The problem with Nextcloud

I love Nextcloud. It’s the first piece of self-hosted software I installed on my first 2GB Raspberry Pi, and I still use it today for file syncing - although the Pi has been upgraded to the more competent 8GB Raspberry Pi 4b variant.

I could have used an old laptop, a PC or almost any old computing hardware I had lying around and repurposed it as a server. The advantage of using a Pi lies in its small size and its tiny power draw - essential as it’s running 24/7.

If you wanted, you could almost completely de-google simply by using self hosted alternatives available from the Nextcloud App store. It’s honestly amazing. You can install Nextcloud on your server and never have to install another thing ever again.

But although Nextcloud has apps for everything, they are very rarely the best at what they do.

They are the training wheels versions of self-hosted software - all of them are quite adequate to use before you feel comfortable enough to move onto full-fat stand-alone projects.

Eventually, you begin to feel the edges of their limitations and of the limitations of Nextcloud itself. It’s a huge and monolithic piece of software, the design constraints mean that every app which runs on the platform looks more-or-less the same, and although it is not slow, the UI isn’t exactly lighting quick either.

As a self-hoster, you’ll eventually come across other projects which do the same job - but better, or neater or in a more usable way, and over the course of months or years, your dependence on Nextcloud will fade as you spin up yet another subdomain to run new shiny services.

Nextcloud News gives way to FreshRSS.

Nextcloud Photos is superceded by Photoprism.

Nextcloud Music pales before Jellyfin.

The functional yet uninspiring Nextcloud Social is supplanted by a self-contained Pleroma instance.

And now Nextcloud Cookbook is set to be replaced by Mealie. At least in my kitchen it is.

Here’s why.

Mealie moves fast and things break

Mealie is a standalone self-hosted recipe manager developed by a mysterious Alaskan known only as Hay Kot. It’s beautiful, it’s functional, and it’s fast. More importantly it’s appearance isn’t tied to whatever your Nextcloud theme is, so it’s easy to get it looking exactly how you want.

The mealie app showing a bunch of tasty recipes

After following development since it was first announced on Reddit three months ago, I finally got around to installing it on the Pi yesterday morning. The feature I had been waiting for was user authentication - meaning that internet randos couldn’t add or edit recipes to my instance without my permission. It’s my recipe manager - I don’t mind other people using it as a reference, but I don’t want to end up adding six kilos of salt to my hash brownies because someone thought it would be funny. Authentication was added in v0.40 (ten days ago) and I jumped on board at v0.41.

Are you getting a feel for the pace of development here? An alpha announcement in January and a very solid feature packed release in April. That’s pretty damned quick.

Installation was a breeze - adding a few lines to my docker-compose.yml and navigating to port 9925 on the Pi gave me the interface. Setting up a reverse proxy in Apache gave me a web address for a subdomain I happened to have lying around. The entire process took maybe five minutes.

And that’s where i ran into my first issue.

Mealie is set up with one user and default credentials - the idea is that you log in as the default user and then you can change the email and passwords, add other users, etc.

The problem was that the default user hadn’t been created during installation. It was impossible to log in. Bummer.

I created a Github issue explaining the problem and also hopped over to the Mealie Discord server just in case I was doing something stupid or had missed a step.

My GitHub issue was answered with a temporary solution which fixed the problem, and within an hour, the dev had rolled out a new version - v0.41a - in which the issue was fixed.

That is insane.

What’s it actually like?

Supernaturally fast bug-fixes aside, Mealie is a joy to use.

Navigate to port 9925 or the web address if you have a reverse proxy set up, and you’re greeted with all of your recipes displayed on cards. Hover over one to get a top line summary of the dish. Click on it, and it will give you the full thing - ingredients on the left and steps on the right. And it’s fast - far quicker than opening a recipe in Cookbook, which can take up to a whole second and a half!

As with Cookbook, adding recipes is as simple as plugging in a URL, then, provided the page hosting the recipe is compliant with recipe schema, it will import all the steps, ingredients, title, pictures etc.

Mealie isn’t quite as forgiving with recipes in which don’t quite meet the standard, and I’ve had a couple of imports fail - the dev is working on it. Again, consider for a second that Mealie didn’t even exist six months ago. It will get better. Alternatively, you can add recipes manually - entrusting Grannie’s secret fudge formula to Mealie’s MySQL database.

So far, I haven’t had a lot of luck with the categories, but search works well and is quick.

Potentially, one of the best features is a meal planner. With this I can easily select meals for an entire week - or month, or whatever time period I want, and then view them by clicking on ‘Dinner Tonight’ or ‘Dinner this week.’

The mealie meal planner with recipes for five days

Theoretically, for any meal plan created you can view a breakdown of all the ingredients, so you can grab them on your next trip out to Tesco.

Or at least I would be able to if it worked. Which at the time of writing, it doesn’t - at least not for me. Selecting and adding the recipes works, but currently, they don’t save, meaning that I can’t actually view them later.

I am supremely confident that this will be fixed in the near future.

Other great features include the ability to import recipes from Nextcloud Cookbook and Chowdown. You can tweak the colour scheme however you want and adjust the number of recipes per page using a simple slider.

There are so many features, options and tweaks that I’m not going to list them here. Some of them work as intended. Some don’t yet.

Right now your recipes are visible to the entire world although unsurprisingly, the option to set them to completely private is ‘on the roadmap.’ There’s also an idea to automagically pull in nutrition information for meals which is due to appear pretty soon.

Mealie is fantastic on Raspberry Pi

A delicious meal served on a cast iron skillet

Mealie is smooth and polished and beautiful - with development progressing at breakneck speed. As it stands, Nextcloud Cookbook is still functionally better - it has automatically generated cooking clocks which are nice, and everything works as advertised.

But I’m migrating my Cookbook recipes to Mealie now, and new recipes are created in Mealie rather than in Cookbook. It’s not yet feature complete, and as I keep stressing, not everything works - yet.

But It’s very usable even in its current state, and is getting better every day.

How to easily and quickly install Mealie 

A raspberry Pi in metallic silver passive cooled cased on a granite kitchen worktop

To get started quickly on your home network, make sure you have Docker and Docker Compose installed, then create a new directory:

mkdir mealie && cd mealie

Use the nano text editor to create a YAML (Yet Another Markup Language) file:

nano docker-compose.yml

Into it, paste the following

version: '3.5'
services:
  mealie:
    container_name: mealie
    image: hkotel/mealie:latest
    restart: always
    ports:
      - 9925:80
    environment:
      DB_TYPE: sqlite
      TOKEN_TIME: 999999
      TZ: Europe/London
    volumes:
      - ./mealie/data/:/app/data

 Save and exit nano with Ctrl + O then Ctrl + X.

And bring up Docker Compose in detached mode with:

docker-compose up -d

Docker Compose will pull images and set up containers, when you're return to the command line, check their health with:

docker-compose ps

Now open a browser and navigate to your-pi-local-ip-address:9925

The default credentials should be:

Username: changeme@example.com

Password: MyPassword

Log in and change them, then get started creating recipes!

Tandoor: Another contender

Mealie isn’t the only alternative to cookbook. One which I haven’t yet tried on my own server, but which looks very promising is Tandoor Recipes.

Tandoor has been around for a lot longer than Mealie and has many more features - including the ability to import from both Nextcloud cookbook and Mealie; generate shopping lists; and recipe scaling, which is fabulous - tell it how many people you’re cooking for and it will adjust the quantities for you.

I haven’t installed it but I’ve had a quick go on the demo server, and I’m impressed. Image and page loading was a bit slow, but without actually spinning up an instance myself, I can say whether that’s down the the app or down to the hosting.

If you feel the need for something a little more stable than Mealie in its current state, and with more features than Cookbook, then Tandoor Recipes might be just what you’re looking for.

Tandoor recipes on a black background