Mealf wiki
Mealf is a self-hosted household meal planner with an installable browser app (PWA).
One backend container serves the PWA at /app/, the administration console at /,
the API and a durable background worker. SQLite and private configuration live in one
persistent /data volume. Cloudflare Tunnel or another HTTPS reverse proxy provides
the public entry point.
This is a development preview. Review the implementation status and the notes for the image or source revision you deploy. A feature documented from source may not yet be included in a published image. Live AI/Bring! compatibility and physical iPhone behaviour have not been established by synthetic or Linux browser tests.
Set up a new installation
- Follow Installation to choose a prebuilt image or build from source.
- Configure Cloudflare Tunnel or an HTTPS reverse proxy.
- Complete First-run setup with your private setup token.
- Install the PWA and create your first recipe and meal.
- Set up backups before relying on stored household data.
You need Docker Engine with Compose v2, persistent local storage and a valid HTTPS hostname. No Mac, App Store account or mandatory AI subscription is required.
Configure optional features
- Configuration: origins, time zones, proxy trust and server settings.
- AI recipe import: cloud OCR/extraction, configurable providers and review.
- Bring! integration: optional shopping-list synchronisation.
- Meal reminders: optional notifications on each browser device.
Operate the installation
- Backup and recovery: exports, sensitive backups and restoration.
- Upgrades and maintenance: updates, retention and rollback.
- Troubleshooting: common problems and safe diagnostic information.
The household uses a shared account with independent device sessions. There are no default credentials or separate administrator roles. Keep the data volume, container logs, tunnel credentials and exports private. Never run two backend instances against the same SQLite volume.
The product was previously called aircooker. Existing package, Compose, API and storage names retain that identifier for compatibility; do not rename volumes during an upgrade. See the branding and compatibility notes.
