Metadata-Version: 2.3
Name: chef-recipes
Version: 2.5.4
Summary: Personal recipe management app.
License: MIT
Keywords: food,recipes,culinary
Author: Your Name
Author-email: you@example.com
Requires-Python: >=3.8,<4.0
Classifier: Framework :: FastAPI
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Requires-Dist: alembic (>=1.11.1,<2.0.0)
Requires-Dist: fastapi (==0.*)
Requires-Dist: httpx (>=0.27.0,<0.28.0)
Requires-Dist: loguru (>=0.7.0,<0.8.0)
Requires-Dist: pillow (>=10.2.0,<11.0.0)
Requires-Dist: pillow-avif-plugin (>=1.4.2,<2.0.0)
Requires-Dist: pydantic-settings (>=2.1.0,<3.0.0)
Requires-Dist: python-multipart
Requires-Dist: sentry-sdk[fastapi] (>=2.12.0,<3.0.0)
Requires-Dist: sqlalchemy (>=2.0.16,<3.0.0)
Requires-Dist: typer[all] (>=0.9.0,<0.10.0)
Requires-Dist: uvicorn (>=0.22.0,<0.23.0)
Project-URL: Repository, https://github.com/xyzjonas/chef
Description-Content-Type: text/markdown

# 🍽️ Chef

A simple, customizable recipe management app.

A simple FastAPI + SQLAlchemy app + VueJS frontend.
Frontend app is built and bundled together with the python build downloadable from PyPI -> the entire app can be run with a single command.
It's also built as a single container and can be easily hosted (with little tweaks) on GCP Cloud Run.

## Installation

```shell
curl https://raw.githubusercontent.com/xyzjonas/chef/master/install.sh | bash
```

or install the package yourself

```shell
pip install chef-recipes
chef --help
```


or run with docker:

```shell
docker run -p 8000:8000 -v ~/.chef:/chef/data scotch3840/chef:latest
```


## Build & Development
### Migrations
migrations are included in the build package, symbolic link to the alembic.ini is in the repository root
```shell
# schema changes
alembic revision --autogenerate -m "<... message ...>"

# upgrade the target database - accoring to $DATABASE_URI
alembic upgrade head

# ...or can be executed from the built script - i.e. without the sources
chef migrate-db
```
### Build
1. Poetry: build the standalone Python package
```shell
cd ./src/js/chef
npm run build
cd -
poetry build
```
```shell
poetry publish
```
2. Build the docker image
```shell
docker build . -t scotch3840/chef
```
```shell
docker push scotch3840/chef
```

---------

...or run on GCP using `scotch3840/misc:chef-gcp` image (PostgreSQL):
> ! second generation execution environment required.
- `BUCKET`: name of your GCP/CloudStorage bucket.
- `MNT_DIR`: target where the bucket will be mounted.
- `IMAGES_FOLDER`: where the app will be looking for and storing uploaded images, has to be somewhere inside your bucket.
- `DATABASE_URI`: specify your posgres or possibly put an sqlite file in the bucket as well.

