Self-host Mealie
A self-hosted recipe manager and meal planner with a URL importer that scrapes recipes into clean, ad-free cards. Plan weeks and generate shopping lists.
Key facts
Pick Mealie when a household wants recipes scraped from URLs into clean cards, a weekly meal plan and a shopping list, all behind one login: it is AGPL-licensed, a Python/FastAPI backend with a Vue frontend in a single image, and SQLite in `/app/data` is the documented default for "1-20 Users". PostgreSQL is optional and unlocks fuzzy search. The official compose sets a `1000M` memory limit — Python "can pre-allocate larger amounts of memory than is necessary" — which is what our 1 GB floor tracks. Tandoor is the catalog's alternative if you want PostgreSQL full-text and trigram search as standard and Dropbox/Nextcloud file sync, at the cost of running the database yourself.
What you need
- Any VPS with at least 1024 MB of RAM
- A domain you control — most self-hosted setups need HTTPS in front of them
- Under an hour if you've used Docker before
Paid link — we earn a commission if you shop through it.
Install with Docker Compose
Save this as compose.yml and run docker compose up -d:
# Mealie — the official SQLite compose (docs → Installation → SQLite), pinned to the current release
services:
mealie:
image: ghcr.io/mealie-recipes/mealie:v3.27.0 # upstream pins the release tag; check the badge on the docs page for the newest
container_name: mealie
restart: always
ports:
- "9925:9000"
deploy:
resources:
limits:
memory: 1000M
volumes:
- mealie-data:/app/data/
environment:
ALLOW_SIGNUP: "false"
PUID: 1000
PGID: 1000
TZ: America/Anchorage # your timezone
BASE_URL: https://mealie.yourdomain.com # the URL you will open Mealie on
volumes:
mealie-data:
# docker compose up -d → http://SERVER_IP:9925 — default login changeme@example.com / MyPassword, change it at onceWhat you take on
Mealie's installation checklist is short, and each item on it maps to a real first-week problem: