# 🍽️ 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": "",
"docs_url": null,
"requires_python": ">=3.8,<4.0",
"maintainer_email": "",
"keywords": "food,recipes,culinary",
"author": "Your Name",
"author_email": "you@example.com",
"download_url": "https://files.pythonhosted.org/packages/04/45/dd585a3bf42407542c8b410f5e0aa497c67c432b15bc3aa0aefcf1a50ab6/chef_recipes-2.1.2.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.1.2",
"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": "74e5a0f42434812cb2a36fd5f9d1bfb3c6efe434a866ea1e1a06bae10b482cda",
"md5": "ff06889a2d5ac1d644433fe04b8f92aa",
"sha256": "0cc179c3511df25ee11e1b43f8d57b83c76694a142057163fc75ff7c24e1b941"
},
"downloads": -1,
"filename": "chef_recipes-2.1.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "ff06889a2d5ac1d644433fe04b8f92aa",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8,<4.0",
"size": 835850,
"upload_time": "2024-02-09T11:41:54",
"upload_time_iso_8601": "2024-02-09T11:41:54.269446Z",
"url": "https://files.pythonhosted.org/packages/74/e5/a0f42434812cb2a36fd5f9d1bfb3c6efe434a866ea1e1a06bae10b482cda/chef_recipes-2.1.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "0445dd585a3bf42407542c8b410f5e0aa497c67c432b15bc3aa0aefcf1a50ab6",
"md5": "49256e4d24e69e042273dc7011d4ca75",
"sha256": "b1bcc8128a4ef720bef5f2fb2567a7bc4cf3e0d90d51c18394c4a1fb5974d5c7"
},
"downloads": -1,
"filename": "chef_recipes-2.1.2.tar.gz",
"has_sig": false,
"md5_digest": "49256e4d24e69e042273dc7011d4ca75",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8,<4.0",
"size": 830033,
"upload_time": "2024-02-09T11:41:56",
"upload_time_iso_8601": "2024-02-09T11:41:56.511383Z",
"url": "https://files.pythonhosted.org/packages/04/45/dd585a3bf42407542c8b410f5e0aa497c67c432b15bc3aa0aefcf1a50ab6/chef_recipes-2.1.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-02-09 11:41:56",
"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"
}