# 🍽️ 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.
Raw data
{
"_id": null,
"home_page": "https://github.com/xyzjonas/chef",
"name": "chef-recipes",
"maintainer": null,
"docs_url": null,
"requires_python": "<4.0,>=3.8",
"maintainer_email": null,
"keywords": "food, recipes, culinary",
"author": "Your Name",
"author_email": "you@example.com",
"download_url": "https://files.pythonhosted.org/packages/74/7e/6d20892e16d719a4626ab869b545d86b992fd7b495faf83988928c2a185f/chef_recipes-2.5.0.tar.gz",
"platform": null,
"description": "# \ud83c\udf7d\ufe0f Chef\n\nA simple, customizable recipe management app.\n\nA simple FastAPI + SQLAlchemy app + VueJS frontend.\nFrontend app is built and bundled together with the python build downloadable from PyPI -> the entire app can be run with a single command.\nIt's also built as a single container and can be easily hosted (with little tweaks) on GCP Cloud Run.\n\n## Installation\n\n```shell\ncurl https://raw.githubusercontent.com/xyzjonas/chef/master/install.sh | bash\n```\n\nor install the package yourself\n\n```shell\npip install chef-recipes\nchef --help\n```\n\n\nor run with docker:\n\n```shell\ndocker run -p 8000:8000 -v ~/.chef:/chef/data scotch3840/chef:latest\n```\n\n\n## Build & Development\n### Migrations\nmigrations are included in the build package, symbolic link to the alembic.ini is in the repository root\n```shell\n# schema changes\nalembic revision --autogenerate -m \"<... message ...>\"\n\n# upgrade the target database - accoring to $DATABASE_URI\nalembic upgrade head\n\n# ...or can be executed from the built script - i.e. without the sources\nchef migrate-db\n```\n### Build\n1. Poetry: build the standalone Python package\n```shell\ncd ./src/js/chef\nnpm run build\ncd -\npoetry build\n```\n```shell\npoetry publish\n```\n2. Build the docker image\n```shell\ndocker build . -t scotch3840/chef\n```\n```shell\ndocker push scotch3840/chef\n```\n\n---------\n\n...or run on GCP using `scotch3840/misc:chef-gcp` image (PostgreSQL):\n> ! second generation execution environment required.\n- `BUCKET`: name of your GCP/CloudStorage bucket.\n- `MNT_DIR`: target where the bucket will be mounted.\n- `IMAGES_FOLDER`: where the app will be looking for and storing uploaded images, has to be somewhere inside your bucket.\n- `DATABASE_URI`: specify your posgres or possibly put an sqlite file in the bucket as well.\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Personal recipe management app.",
"version": "2.5.0",
"project_urls": {
"Homepage": "https://github.com/xyzjonas/chef",
"Repository": "https://github.com/xyzjonas/chef"
},
"split_keywords": [
"food",
" recipes",
" culinary"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "5a54a4add72b1deec7d77699356a9d4e46f5fe8d73d48a843b8d03c6c10f5c35",
"md5": "d44484802fa08a00f39476fe8f5070bd",
"sha256": "4e74a6c2d442aa1708b98b03059926cb019ca1fc2568bbece1b8b237270cbd10"
},
"downloads": -1,
"filename": "chef_recipes-2.5.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "d44484802fa08a00f39476fe8f5070bd",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.8",
"size": 648580,
"upload_time": "2024-12-03T14:56:52",
"upload_time_iso_8601": "2024-12-03T14:56:52.839398Z",
"url": "https://files.pythonhosted.org/packages/5a/54/a4add72b1deec7d77699356a9d4e46f5fe8d73d48a843b8d03c6c10f5c35/chef_recipes-2.5.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "747e6d20892e16d719a4626ab869b545d86b992fd7b495faf83988928c2a185f",
"md5": "10b4dc063ed562f2e22a186371ded313",
"sha256": "d812f143a8345a45c0e009bf26d874040e2382187103ea417687140ba03c1125"
},
"downloads": -1,
"filename": "chef_recipes-2.5.0.tar.gz",
"has_sig": false,
"md5_digest": "10b4dc063ed562f2e22a186371ded313",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.8",
"size": 638182,
"upload_time": "2024-12-03T14:56:55",
"upload_time_iso_8601": "2024-12-03T14:56:55.512885Z",
"url": "https://files.pythonhosted.org/packages/74/7e/6d20892e16d719a4626ab869b545d86b992fd7b495faf83988928c2a185f/chef_recipes-2.5.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-12-03 14:56:55",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "xyzjonas",
"github_project": "chef",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "chef-recipes"
}