A lightweight web app for Raspberry Pi 3 to generate, search, and save recipes using FastAPI, Tailwind CSS, SQLite (FTS5), and an LLM API.
- 🎲 Random recipes or 🧺 ingredient-based recipes
- ⚙️ Select effort and 🧾 number of ingredients
- 💾 Save recipes, 🔎 full-text search, 🗑️ delete
- UI: Tailwind CSS, emojis, German language
- LLM integration (OpenAI-compatible, via httpx)
- SQLite with FTS5 for fast search
git clone <repo-url>
cd recipe-app
# Option A: with uv (uses pyproject + uv.lock)
uv sync
. .venv/bin/activate
# Option B: with pip (reads pyproject.toml)
python -m venv .venv
. .venv/bin/activate
pip install .
# Environment config
cp .env.example .env # add your LLM_API_KEYuvicorn app.main:app --host 0.0.0.0 --port 8000docker-compose up --buildor via Makefile:
make docker-upSee systemd-recipe-app.service for autostart on boot.
hostname -IExample output: 192.168.1.42
http://<raspberry-pi-ip>:8000Example: http://192.168.1.42:8000
- Both devices must be on the same Wi‑Fi/network.
- If you have a firewall on your Pi, ensure port 8000 is open.
- If you use Docker Desktop on Mac/Windows, replace
<raspberry-pi-ip>with your host’s IP.
- Precompile Tailwind CSS for Pi (see
app/static/styles.css). - Restrict CORS to the LAN.
- DB backup: copy
recipes.dbregularly.
See .env.example for required variables.
BSD-3-Clause
- Open the app at
http://localhost:8000(or your Pi’s IP). - Enter ingredients comma-separated; leave the field empty for a random recipe.
- Adjust difficulty, ingredient load, and servings, then generate.