KitchenOwl
Grocery list and recipe manager with a Flask backend and Flutter app.
- Replaces
-
Paid grocery list and recipe services, such as AnyList.
All open-source alternatives to AnyList
- Difficulty
-
Difficulty: Easy
2 services, 1 volume mount, no env values to set, no elevated host access. Heuristic score 1 of 11: easy.
- Stack
Dart (language)
- Deployment
docker_compose
- Requirements
Not stated.
- License
-
AGPL-3.0(OSI-approved open source)Read from github.com/TomBursch/kitchenowl/blob/cac641c/LICENSE
- Business model
-
Unknown
The README at the pinned commit does not state a business model, so it stays unknown.
Source: github.com/TomBursch/kitchenowl/blob/cac641c/README.md, read on .
- Repository
GitHub stats
- Stars
- 3,762
- Forks
- 255
- Open issues and pull requests
- 345
- Last push
- 2026-10-18
- Latest release
- v0.7.10
- Released
- 2026-07-26
From the GitHub API on . These numbers are a snapshot, not live. GitHub detected the license as AGPL-3.0.
Compose file
services:
front:
image: tombursch/kitchenowl-web:latest
restart: unless-stopped
# environment:
# - BACK_URL=back:5000 # Change this if you rename the containers
ports:
- "80:80"
depends_on:
- back
back:
image: tombursch/kitchenowl-backend:latest
restart: unless-stopped
environment:
- JWT_SECRET_KEY=PLEASE_CHANGE_ME
# - KITCHENOWL_MCP_ENABLED=true # Optional: enable MCP endpoint at /mcp
# - FRONT_URL=http://localhost # Optional take a look at https://docs.kitchenowl.org/latest/self-hosting/advanced/ for more info
volumes:
- kitchenowl_data:/data
volumes:
kitchenowl_data:
From the app's own repository: github.com/TomBursch/kitchenowl/blob/cac641c/docker-compose.yml.
Compose file from the app repository.
Install
- Docker with the Compose plugin (github.com/TomBursch/kitchenowl/blob/cac641c/docker-compose.yml)
A host with Docker and the Docker Compose plugin. This entry runs from a compose file.
- Save the compose file as docker-compose.yml (github.com/TomBursch/kitchenowl/blob/cac641c/docker-compose.yml)
Use the compose file shown above.
- Set the values the compose file needs (github.com/TomBursch/kitchenowl/blob/cac641c/docker-compose.yml)
Replace the placeholder values listed under Gotchas.
- Start it (github.com/TomBursch/kitchenowl/blob/cac641c/docker-compose.yml)
docker compose up -d - Open the app (github.com/TomBursch/kitchenowl/blob/cac641c/docker-compose.yml)
Open http://localhost:80. The compose file publishes host port 80 for the front service.
Compose file check: config_ok on 2026-10-22.
Gotchas and maintenance
Gotchas
- Some images use the latest tag or no tag. Images without a pinned version: front: tombursch/kitchenowl-web:latest, back: tombursch/kitchenowl-backend:latest. A later pull can get a different version. (github.com/TomBursch/kitchenowl/blob/cac641c/docker-compose.yml, checked 2026-10-22)
- The compose file has placeholder values. Placeholder values: JWT_SECRET_KEY is "PLEASE_CHANGE_ME" (back). (github.com/TomBursch/kitchenowl/blob/cac641c/docker-compose.yml, checked 2026-10-22)
- The compose file publishes host ports. Host ports: 80 (front). A port without a host address listens on all host network interfaces. (github.com/TomBursch/kitchenowl/blob/cac641c/docker-compose.yml, checked 2026-10-22)
Signals
- Open issues and pull requests: 345
- Last push: 2026-10-18 (3 days before this page was built)
- Latest release: v0.7.10 on 2026-07-26 (87 days before this page was built)