Mealie
| Description / name | Input element |
|---|---|
| Container Registry | |
| Container Configuration Root Path | |
| Timezone | |
| User ID | |
| Group ID | |
| Mealie Host Port | |
| Mealie /config Path |
Self-hosted recipe manager and meal planner on FreeBSD.
Version Tags
| Tag | Description | Best For |
|---|---|---|
latest |
Upstream Binary. Downloads the official release. | Most users. Matches Linux Docker behavior. |
Prerequisites
Before deploying, ensure your host environment is ready. See the Quick Start Guide for host setup instructions.
Deployment
Access the Web UI at: http://localhost:9000
Interactive Configuration
Parameters
Environment Variables
| Variable | Default | Description |
|---|---|---|
BASE_URL |
http://localhost:9000 |
The base URL for the application (e.g. https://mealie.example.com) |
PUID |
1000 |
User ID for the application process |
PGID |
1000 |
Group ID for the application process |
TZ |
UTC |
Timezone for the container |
Volumes
| Path | Description |
|---|---|
/config |
Data directory (database, images) |
Ports
| Port | Protocol | Description |
|---|---|---|
9000 |
TCP | Web UI |
Using PostgreSQL
By default, Mealie uses SQLite. For better performance with multiple users, use PostgreSQL:
services:
mealie:
image: ghcr.io/daemonless/mealie:latest
container_name: mealie
environment:
- BASE_URL=http://localhost:9000
- PUID=1000
- PGID=1000
- TZ=UTC
- DB_ENGINE=postgres
- POSTGRES_USER=mealie
- POSTGRES_PASSWORD=changeme
- POSTGRES_SERVER=localhost
- POSTGRES_PORT=5432
- POSTGRES_DB=mealie
volumes:
- /path/to/containers/mealie:/config
ports:
- "9000:9000"
depends_on:
- postgres
network_mode: host
restart: unless-stopped
postgres:
image: ghcr.io/daemonless/postgres:latest
container_name: mealie-postgres
environment:
- POSTGRES_USER=mealie
- POSTGRES_PASSWORD=changeme
- POSTGRES_DB=mealie
volumes:
- /path/to/containers/mealie-postgres:/config
network_mode: host
restart: unless-stopped
Note: With network_mode: host, use localhost for POSTGRES_SERVER.
Migrating from Linux
SQLite: No issues, just copy your data.
PostgreSQL: You cannot copy the postgres data directory between Linux and FreeBSD due to locale incompatibilities. Use pg_dump/pg_restore instead:
# On Linux
podman exec mealie-postgres pg_dump -U mealie mealie > mealie.sql
# On FreeBSD (start fresh postgres first, then restore)
cat mealie.sql | podman exec -i mealie-postgres psql -U mealie -d mealie
See daemonless/postgres README for details.
Implementation Details
- Architectures: amd64
- User:
bsd(UID/GID set via PUID/PGID). Defaults to1000:1000. - Base: Built on
ghcr.io/daemonless/base(FreeBSD 15.0).
Need help? Join our Discord community.