π½οΈ Revolutionize Your Lunch Break with LunchHunt!
Tired of Ctrl+F for food?
Let LunchHunt do the searching β so you can do the eating.

π Check out on GitHub
π What Is LunchHunt?
LunchHunt is a Python-powered food concierge that automatically checks local canteen menus, finds your favorite meals, and sends you Gotify push notifications when they appear.
Now available as:
- π Command-line/Script mode β for traditional Python users
- π Web UI mode β a new, intuitive dashboard built with Plotly Dash
π Documentation
π Full docs available on GitLab Pages
π§ Choose Your Setup
You can now use LunchHunt in two ways:
π Option 1 β Run LunchHunt via Python
1οΈβ£ Clone & Setup
git clone https://github.com/trholy/lunchhunt.git
cd lunchhunt
pip install .
2οΈβ£ Configure Your Cravings
Edit example_2.py and define your favorite foods:
# Example configuration
favorite_foods = ["Eierkuchen", "Milchreis", "HefeklΓΆΓe"]
3οΈβ£ Run a Gotify Server
Use Docker to spin up a local Gotify server for notifications: π Gotify Installation Guide
4οΈβ£ Run LunchHunt
python example_2.py
π¬ Receive instant push notifications with location details!
π Option 2 β Run LunchHunt with Web UI (Recommended)
π§© Docker Compose Deployment
version: '3.8'
services:
lunchhunt:
build: .
container_name: lunchhunt
ports:
- "8050:8050"
environment:
- TZ=Europe/Berlin
- PUID=1000
- PGID=1000
volumes:
- ./settings:/home/lunchhunt/app/settings
restart: unless-stopped
gotify:
image: gotify/server
container_name: gotify
ports:
- 8080:80
environment:
- GOTIFY_DEFAULTUSER_PASS=admin
- GOTIFY_DEFAULTUSER_NAME=admin
- TZ="Europe/Berlin"
volumes:
- "./data:/app/data"
Then run:
docker compose up --build -d
Access the UI at π http://localhost:8050
π§ LunchHunt Web UI Overview
π‘ Purpose
The LunchHuntApp is a web-based configuration interface (built with Plotly Dash) that helps you:
- Configure food preferences & canteens
- Schedule daily notification jobs
- Manage multiple profiles
- Integrate seamlessly with Gotify
- Create & delete cron jobs visually
π‘ Benefits for Busy Devs
β
Save Time β No more Ctrl+F through menus
β Reduce Stress β LunchHunt does the searching
β Boost Productivity β Focus on code, not canteens
π Project Structure
lunchhunt
βββ .dockerignore
βββ .gitignore
βββ .gitlab-ci.yml
βββ Dockerfile
βββ LICENSE
βββ README.md
βββ THIRD_PARTY_LICENSES.txt
βββ assets
β βββ style.css
βββ data
β βββ .gitkeep
βββ docker-compose.yml
βββ docker-entrypoint.sh
βββ documentation
β βββ examples
β β βββ example_1.md
β β βββ example_2.md
β βββ notify
β β βββ notifier.md
β βββ scrap
β β βββ scraper.md
β βββ utils
β β βββ util_functions.md
β βββ web
β βββ webUI.md
βββ example_usage
β βββ example_1.py
β βββ example_2.py
βββ img
β βββ scroll_meme.png
βββ mkdocs.yml
βββ pyproject.toml
βββ run.py
βββ settings
β βββ settings.json
βββ setup.py
βββ src
βββ lunchhunt
βββ __init__.py
βββ notify
β βββ __init__.py
β βββ notifier.py
βββ scrap
β βββ __init__.py
β βββ scraper.py
βββ utils
β βββ __init__.py
β βββ util_functions.py
βββ web
βββ __init__.py
βββ webUI.py
π€ Contribute & Share
π¬ Contributions are welcome! Fork it or share LunchHunt with colleagues who deserve better lunch breaks.
π License
This project is released under the MIT License. You are free to use, modify, and distribute it with proper attribution.