2026-07-05 · 4 min read

Self-Hosted Meal Planning with One Docker Container

Most meal planning apps want an account, a subscription, and your data. Here's how to run a complete meal planning setup on your own server — one container, one SQLite file.

TL;DR

Mealforge runs your household's meal planning on your own hardware: one Docker container serving a web app and an MCP endpoint, with everything stored in a single SQLite file you can back up by copying a folder.

If you already run a home server — a NAS, a mini PC, an old laptop under the stairs — meal planning is one of the easiest things to bring home. The data is small, the traffic is tiny, and the payoff is real: your recipes, your week, and your grocery list live on hardware you own instead of in someone’s subscription funnel.

What self-hosting gets you here

Your data is a file. Mealforge stores everything — recipes, meal plans, favorites, grocery lists — in a single SQLite file under ./data/. Backing up your entire meal planning history means copying one folder. Migrating servers means moving it.

No account, no subscription, no sunset. The app can’t raise its price, can’t delete your recipes in a “sunsetting legacy features” email, and can’t require a login to a service that stopped existing. It’s MIT-licensed; the code is yours to keep running forever.

It works on your network, for your household. Everyone in the house hits the same URL, sees the same week, and checks off the same grocery list in the store.

The setup

Two commands:

mkdir mealforge && cd mealforge
curl -O https://raw.githubusercontent.com/loosewiredev/mealforge/main/docker-compose.yml
docker compose up -d

The web app and MCP endpoint come up together on port 8090:

Set APP_URL in the compose file (or a .env next to it) to the address your household actually uses — for example a Tailscale hostname — so links generated by the AI point somewhere reachable.

One honest caveat: no built-in auth

Mealforge is designed for a household on a private network, and it does not ship authentication. That’s a deliberate trade-off — no accounts to manage for a grocery list — but it means you should treat it like any other internal service:

Do not expose port 8090 to the public internet as-is.

Where the AI fits

The self-hosted container is the home for your meal plans — the part that makes them shoppable and cookable. The planning itself happens in whatever AI chat you already use, connected over MCP. That half of the story is its own post: how the model plans your week in conversation and pushes the finished plan into the app.

If you just want to try it: spin up the container, open the web UI, and connect an MCP client. The repo includes a ready-made agent skill that teaches the model the whole workflow.

Learn about Mealforge → ← All articles

More articles

AI Meal Planning Without Another Subscription

Meal planning apps have converged on the same model: a recipe catalog, an account, and $60 a year. There's another way — use the AI you already have and keep the data yourself.

Planning a Week of Meals with AI over MCP

How Mealforge uses the Model Context Protocol to turn a planning conversation — in LibreChat, Claude, or any MCP client — into recipe cards, a cook mode, and a grocery list.