Mealie is an open-source recipe manager. Paste a recipe URL and it extracts the ingredients and steps (no more scrolling past life stories), then lets you organize recipes, plan meals for the week and turn them into shopping lists. It has a clean, mobile-friendly web interface that works well as a home-screen app.
Why self-host it?
- Your recipe collection stays yours — no ads, no subscription.
- One instance serves your whole household or several family groups.
- It’s light: a small VPS runs it easily alongside other apps.
1. Docker Compose
mkdir -p /srv/mealie && cd /srv/mealie
compose.yaml:
services:
mealie:
image: ghcr.io/mealie-recipes/mealie:latest
restart: unless-stopped
ports:
- "127.0.0.1:9925:9000"
environment:
BASE_URL: https://recipes.example.com
ALLOW_SIGNUP: "false"
TZ: UTC
# Optional SMTP for invitations and password resets:
# SMTP_HOST: smtp.example.com
# SMTP_PORT: "587"
# SMTP_FROM_EMAIL: [email protected]
# SMTP_USER: [email protected]
# SMTP_PASSWORD: ${SMTP_PASSWORD}
volumes:
- ./data:/app/data
deploy:
resources:
limits:
memory: 1000M
docker compose up -d
docker compose logs -f
Mealie uses SQLite by default, which is fine for households. For larger installations, it supports PostgreSQL via DB_ENGINE=postgres and the related POSTGRES_* variables.
2. HTTPS
Point recipes.example.com at the server and proxy it to 127.0.0.1:9925 with Nginx and a Let’s Encrypt certificate — see Nginx reverse proxy for Docker containers.
3. First login and users
Log in with the default administrator credentials from the Mealie documentation, then immediately change the email and password. Next:
- Create a group (shared recipe collection) and households within it if you share with other families.
- Invite users with an invitation link (SMTP configured) or create them in the admin panel.
- Keep sign-ups disabled.
4. Using Mealie
- Import: paste a URL; Mealie reads the page’s recipe structured data. You can also bulk import from other recipe apps.
- Organize: categories, tags and tools; search by ingredient.
- Meal planner: drag recipes onto days; generate random suggestions with rules.
- Shopping lists: add a recipe’s ingredients in one click; items are grouped by food.
- Scaling and units: adjust servings; parse ingredients into amounts and units.
- API: a full REST API and webhooks for automation (e.g. post the day’s meal plan to a chat).
5. Backups and updates
Mealie has built-in backups under Admin → Backups, which you can download or restore. Also back up the data folder off-server:
tar czf /var/backups/mealie-$(date +%F).tar.gz -C /srv/mealie data
Add it to your regular routine — see automated VPS backups.
Update:
cd /srv/mealie
docker compose pull && docker compose up -d
Take a backup first and read the release notes for major versions.
6. Security
- HTTPS only; strong passwords.
- Keep the container port bound to
127.0.0.1. - Consider SSO via OpenID Connect (Mealie supports OIDC) with Authentik if you run several self-hosted apps.
Sizing
Mealie runs well with 1 GB RAM. A small Docker VPS can host it together with other household tools like Vikunja and Passbolt.