Meals you’d
like to fork.

The self-hosted meal planner for people who like it hot, saucy, and on the kitchen table. Save recipes, plan your week, and get your Bring! shopping list ready for a good time.

Self-hosted. We’re doing this at your place.
Creamy tomato rigatoni with fresh basil and parmesan on a warm kitchen counter Hot. Saucy. Available tonight.
Dinner with benefits

Creamy tomato rigatoni

25 min · 2 servings
Hot stuff. Zero small talk.Illustrative recipe
Recipes with repeat benefits Book your next dinner date Bring! something to the table

Meal planning.
With benefits.

Recipes. Meal plans. A well-stocked pantry.
Take a look around the real Mealf.

A look inside your kitchen
Real app screenshots
Mealf home screen showing today’s meals, a weekly summary, and recipe import and planning shortcuts.

Your kitchen, at a glance.

See today’s meals, your week, and shortcuts to import a recipe or plan something good.

Enlarge

Original Mealf screens. Demo and household views in English and German. Get to know Mealf

Mealf screenshot

Scroll to explore the full-size screenshot.Open original PNG

Loading screenshot…

Food porn.
Happy endings.

You’ve watched that saucy TikTok six times. Time to stop teasing yourself. Give your AI the recipe text, notes, or transcript; review it, save it, and put something hot on the table.

See inspiration become a recipe
From dirty thoughts to dinner plans.
The spark

We both know why you saved that creamy pasta.

The recipe

Ingredients, servings, and clear steps. We love good direction.

The next step

Review it. Save it. Invite it back tomorrow.

You have the final say before saving.
Stop staring. Slap the peach.

Your server.
Your rules.
Nice rack.

Mealf is self-hosted, so your recipe collection and meal planning have a home on infrastructure you control. No mandatory hosted service. No analytics or tracking.

One Docker container Open source · Apache 2.0
Take Mealf home

Currently a development preview. See what’s ready and what’s still cooking.

Your server.
Your kitchen.

Save this full configuration as compose.yml. Set BASE_URL to your public HTTPS address and start Mealf with Docker Compose.

  • Docker with Compose v2
  • Persistent storage for your recipes
  • Your public HTTPS hostname

The moving :preview tag tracks the latest published preview. pull_policy: always checks for a new image when you run docker compose up -d.

compose.yml · Mealf on port 5152
name: mealf-preview

services:
  mealf:
    image: ghcr.io/cloudcookch/mealf-server:preview
    pull_policy: always
    restart: unless-stopped

    ports:
      - "5152:5152"

    environment:
      DATA_DIR: /data
      BASE_URL: https://mealf.example.com
      TZ: Europe/Zurich
      TRUSTED_PROXY_CIDRS: ""

    command:
      - /bin/sh
      - -c
      - |
        umask 077
        exec python -m uvicorn aircooker.app:create_app \
          --factory --host 0.0.0.0 --port 5152 \
          --workers 1 --no-access-log \
          --forwarded-allow-ips "$${TRUSTED_PROXY_CIDRS}" \
          --timeout-graceful-shutdown 30 --limit-concurrency 64

    healthcheck:
      test:
        - CMD
        - python
        - -c
        - "import urllib.request; urllib.request.urlopen('http://127.0.0.1:5152/api/v1/system/health', timeout=3)"
      interval: 30s
      timeout: 5s
      start_period: 15s
      retries: 3

    volumes:
      - mealf-data:/data

    read_only: true
    tmpfs:
      - /tmp:size=64m,mode=1777
    cap_drop:
      - ALL
    security_opt:
      - no-new-privileges:true
    pids_limit: 100
    mem_limit: 512m
    stop_grace_period: 40s

volumes:
  mealf-data:
Terminal · in your mealf folder
docker compose up -d
docker compose logs --tail=100 mealf

Publish your HTTPS hostname through Cloudflare Tunnel, then open it and use the private setup_token from the logs for first-run setup. Keep the mealf-data volume when updating.

The morning-after
questions.

Before we take this back to your server.

What can I do with Mealf?

Keep your recipes together, plan meals on your calendar, manage pantry items, and prepare shopping lists. Optional Bring! and AI integrations connect the rest of your routine.

How does the AI recipe conversion work?

Configure your own supported AI provider in Mealf. Give it recipe text or notes from the inspiration you found, then review the structured ingredients and steps before saving. Social imports don’t fetch authenticated videos or automatically transcribe them; you can supply text yourself.

Can I use my Bring! shopping list?

Mealf includes an optional Bring! adapter for your shopping list. Configure it on your instance to connect your planning with Bring!. The integration is still in development; check the integration guide for setup and current validation status.

Is this a dating app?

Only if your type is hot pasta. Mealf brings your recipes, calendar, and shopping list together. The chemistry is mostly garlic.

Can Mealf handle a quickie?

Absolutely. The 25-minute pasta kind. Add the recipe to your meal plan and get the ingredients ready in Bring!. You can still go back for seconds.

What’s with the name?

Meal meets MILF. Meals you’d like to fork. The peach isn’t an accident either.

Where do I start?

Use the self-hosting guide for the Docker Compose YAML, Cloudflare Tunnel setup, and your first sign-in. Mealf is a development version with remaining release work.

Stop scrolling.
Start forking.

Get Mealf on GitHub