Omegion

Recipery: A Self-Hosted Recipe Library Backed by Object Storage

Introduction

I used Mealie for my recipes for a couple of years. It’s a fine app, but every time I moved my stack to a new host, backup and restore turned into a gamble. Mealie keeps recipes in a database plus a separate folder for images, and moving both across at once, without them drifting out of sync, never went as smoothly as it should have. More than once I lost recipes and had to rebuild them from scratch. I’d had enough. I built Recipery , a self-hosted recipe library, and open sourced it from day one.

Object storage instead of a database

The part I kept getting burned by with Mealie was the database. A recipe app’s data isn’t that complex, it’s mostly text and a photo, but a database still needs a proper backup step, a restore step, and both need to survive a version upgrade without breaking. I didn’t want to solve that problem again. Recipery doesn’t have a database at all. Everything, recipes, images, profiles, collections, is written straight to object storage: local disk, S3, or Cloudflare R2. The bucket is the only thing that persists.

That changes what “moving my stack” even means. If a host dies or I want to redeploy somewhere else, the container is disposable. I point a fresh one at the same bucket, and the library is there, because it never lived on that host to begin with. I can also keep as many recipes and photos as I want, S3 doesn’t care, and I’m not managing disk space on a VPS for a stray photo of a lasagna.

Getting recipes in

The other thing I wanted to fix was typing recipes in by hand. Paste a link from a food blog into Recipery, and it scrapes the title, ingredients, steps, and photo straight off the page.

Profiles and collections

Recipery supports multiple profiles, each set to admin or reader access, with an optional password per profile, so a shared library doesn’t mean shared edit rights. Recipes get grouped into collections instead of sitting in one flat list.

Shopping list and discovery

There’s a shopping list that pulls ingredients straight from a recipe, and if two recipes share an ingredient, it merges them into one line instead of listing it twice. Recipery can also search sites like NYT Cooking and BBC Good Food directly, either an open search when you don’t know what to cook, or a “find similar” search that starts from a recipe already in the library.

Conclusion

Recipery is still new, but it already solved the one thing that mattered to me: my recipes live in storage I control now, not in a database I have to babysit across every move. If losing a recipe collection to a bad restore sounds familiar, the code is on GitHub .