Doris Kitchen
Pangolin-protected household recipe queue, search, taste learning, and weekly meal-planning app for John and Leanne.
Purpose
This app gives the household a better recipe intake flow than KitchenOwl's native importer:
- search the web for recipe ideas in English-first sources
- queue suggestions for approval, rejection, or later review
- learn household taste from those decisions
- manage soft-blacklisted ingredients and avoid terms
- import high-confidence approved recipes into KitchenOwl
- build weekly meal-plan suggestions that try to reuse ingredients and reduce waste
Runtime shape
- Repo source:
home/doris-kitchen - Expected live NOMAD runtime:
/opt/doris-kitchen - Expected public path:
chef.paccoco.combehind Pangolin auth
Do not run production from an agent workspace.
Current model
This first pass uses a JSON-backed state store under /data/state. It keeps:
- the household taste profile
- suggestion queue and decisions
- generated meal plans
KitchenOwl remains the canonical recipe store after approval/import.
Household defaults
The app seeds the profile with soft avoid terms for:
- lamb
- mutton
- offal
- fish
- seafood
- spicy / overly spicy
These are soft blacklists, not hard bans. Search and suggestion scoring pushes them down or hides them by default, but the household can toggle them on and off later.
Features
Suggestion queue
Yes, add to KitchenOwlapproves the recipe, records the preference signal, and imports it when the recipe is not already present.Save for laterkeeps the suggestion in the queue without teaching a dislike.No thanksteaches a household dislike signal from the recipe's ingredients and tags.
Search
Search runs through English-first recipe results, then normalizes recipe payloads into a KitchenOwl-friendly structure before showing them in the queue.
Weekly planning
The planner starts from anchor meal ideas and recent approved recipes, then suggests a week that reuses overlapping ingredients where possible.
Local run
cd /home/fizzlepoof/repos/truenas-stacks/home/doris-kitchen
cp .env.example .env
bin/run-local.sh
Deploy shape
sudo mkdir -p /opt/doris-kitchen/data
sudo rsync -a --delete --exclude '.env' --exclude 'data/' /home/fizzlepoof/repos/truenas-stacks/home/doris-kitchen/ /opt/doris-kitchen/
cd /opt/doris-kitchen
sudo cp .env.nomad.example .env
# edit .env
sudo docker compose --env-file .env config
sudo docker compose --env-file .env up -d --build
Verification
curl -fsS http://127.0.0.1:8092/api/health
curl -fsS http://127.0.0.1:8092/api/dashboard/summary