mealie
STATUS: BETA/WIP - Requires Python 3.12+ (FreeBSD support emerging).
Self-hosted recipe manager and meal planner.
| Port | 9000 |
| Registry | ghcr.io/daemonless/mealie |
| Tags | :latest |
| Source | github.com/daemonless/mealie |
Requires patched ocijail
This application requires the allow.mlock annotation.
See ocijail patch.
Quick Start
podman run -d --name mealie \
-p 9000:9000 \
-e PUID=1000 -e PGID=1000 \
--annotation 'org.freebsd.jail.allow.sysvipc=true' \
-v /path/to/data:/app/data \
-v /path/to/postgres:/var/db/postgres/data17 \
ghcr.io/daemonless/mealie:latest
Access at: http://localhost:9000
Default login: changeme@example.com / MyPassword
podman-compose
services:
mealie:
image: ghcr.io/daemonless/mealie:latest
container_name: mealie
annotations:
org.freebsd.jail.allow.sysvipc: "true"
environment:
- PUID=1000
- PGID=1000
- TZ=America/New_York
- BASE_URL=https://mealie.example.com
volumes:
- /data/mealie/app:/app/data
- /data/mealie/postgres:/var/db/postgres/data17
ports:
- 9000:9000
restart: unless-stopped
Environment Variables
| Variable | Default | Description |
|---|---|---|
PUID |
1000 | User ID for app |
PGID |
1000 | Group ID for app |
TZ |
UTC | Timezone |
BASE_URL |
- | Public URL |
Volumes
| Path | Description |
|---|---|
/app/data |
Application data |
/var/db/postgres/data17 |
Embedded PostgreSQL data |
Logging
This image uses s6-log for internal log rotation.
- System Logs: Captured from console and stored at /config/logs/daemonless/mealie/.
- Application Logs: Managed by the app and typically found in /config/logs/.
- Podman Logs: Output is mirrored to the console, so podman logs still works.