mirror of
https://github.com/hay-kot/mealie.git
synced 2025-08-22 14:33:33 -07:00
v0.1.0 documentation
This commit is contained in:
parent
92a6df278d
commit
1684753b89
7 changed files with 88 additions and 99 deletions
|
@ -7,10 +7,12 @@
|
||||||
- Fixed Images saved with no way to delete when add recipe via URL fails - Closes Issue #43
|
- Fixed Images saved with no way to delete when add recipe via URL fails - Closes Issue #43
|
||||||
|
|
||||||
### Features
|
### Features
|
||||||
- Additional database! SQlite is now supported! Closes #48
|
- Improved deployment documentation
|
||||||
|
- Additional database! SQlite is now supported! - Closes #48
|
||||||
- All site data is now backed up.
|
- All site data is now backed up.
|
||||||
- Support for Prep Time, Total Time, and Cook Time field - Closes #63
|
- Support for Prep Time, Total Time, and Cook Time field - Closes #63
|
||||||
- New backup import process with support for themes and site settings
|
- New backup import process with support for themes and site settings
|
||||||
|
- **BETA** ARM support! - Closes #69
|
||||||
|
|
||||||
### Code / Developer Improvements
|
### Code / Developer Improvements
|
||||||
- Unified Database Access Layers
|
- Unified Database Access Layers
|
||||||
|
|
|
@ -1,41 +1,46 @@
|
||||||
# Installation
|
# Installation
|
||||||
To deploy docker on your local network it is highly recommended to use docker to deploy the image straight from dockerhub. Using the docker-compose below you should be able to get a stack up and running easily by changing a few default values and deploying. Currently the only supported database is Mongo. Mealie is looking for contributors to support additional databases.
|
To deploy docker on your local network it is highly recommended to use docker to deploy the image straight from dockerhub. Using the docker-compose below you should be able to get a stack up and running easily by changing a few default values and deploying. Currently MongoDB and SQLite are supported. MongoDB support will be dropped in v0.2.0 so it is recommended to go with SQLite for new deployments. Postrgres support is planned for the next release, however for most loads you may find SQLite performant enough.
|
||||||
|
|
||||||
|
|
||||||
[Get Docker](https://docs.docker.com/get-docker/)
|
[Get Docker](https://docs.docker.com/get-docker/)
|
||||||
|
|
||||||
[Mealie Docker Image](https://hub.docker.com/r/hkotel/mealie)
|
[Mealie Docker Image](https://hub.docker.com/r/hkotel/mealie)
|
||||||
|
|
||||||
## Env Variables
|
|
||||||
|
|
||||||
| Variables | default | description |
|
## Quick Start - Docker CLI
|
||||||
| -------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
Deployment with the Docker CLI can be done with `docker run` and specify the database type, in this case `sqlite`, setting the exposed port `9000`, mounting the current directory, and pull the latest image. After the image is up an running you can navigate to http://your.ip.addres:9000 and you'll should see mealie up and running!
|
||||||
| mealie_db_name | mealie | The name of the database to be created in Mongodb |
|
|
||||||
| mealie_port | 9000 | The port exposed by mealie. **do not change this if you're running in docker** If you'd like to use another port, map 9000 to another port of the host. |
|
|
||||||
| db_username | root | The Mongodb username you specified in your mongo container |
|
|
||||||
| db_password | example | The Mongodb password you specified in your mongo container |
|
|
||||||
| db_host | mongo | The host address of MongoDB if you're in docker and using the same network you can use mongo as the host name |
|
|
||||||
| db_port | 27017 | the port to access MongoDB 27017 is the default for mongo |
|
|
||||||
| api_docs | True | Turns on/off access to the API documentation locally. |
|
|
||||||
| TZ | | You should set your time zone accordingly so the date/time features work correctly |
|
|
||||||
|
|
||||||
## Docker CLI
|
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
docker container run \
|
docker run \
|
||||||
-e db_type='sql' \
|
-e db_type='sqlite' \
|
||||||
-p 9000:80 \
|
-p 9000:80 \
|
||||||
-v `pwd`:'/app/data/' \
|
-v `pwd`:'/app/data/' \
|
||||||
hkotel/mealie:dev
|
hkotel/mealie:latest
|
||||||
|
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
```shell
|
## Docker Compose with SQLite
|
||||||
|
Deployment with docker-compose is the recommended method for deployment. The example below will create an instance of mealie available on port `9000` with the data volume mounted from the local directory. To use, create a docker-compose.yml file, paste the contents below and save. In the terminal run `docker-compose up -d` to start the container.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
version: "3.1"
|
||||||
|
services:
|
||||||
|
mealie:
|
||||||
|
container_name: mealie
|
||||||
|
image: hkotel/mealie:latest
|
||||||
|
restart: always
|
||||||
|
ports:
|
||||||
|
- 9000:80
|
||||||
|
environment:
|
||||||
|
db_type: sqlite
|
||||||
|
TZ: America/Anchorage
|
||||||
|
volumes:
|
||||||
|
- ./mealie/data/:/app/data
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
## Docker Compose
|
## Docker Compose with Mongo - DEPRECIATED
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
# docker-compose.yml
|
# docker-compose.yml
|
||||||
|
@ -76,55 +81,21 @@ services:
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## Ansible Tasks Template
|
|
||||||
|
|
||||||
```yaml
|
## Env Variables
|
||||||
- name: ensures Mealie directory dir exists
|
|
||||||
file:
|
|
||||||
path: "{{ docker_dir }}/mealie/"
|
|
||||||
state: directory
|
|
||||||
owner: "{{ main_user}}"
|
|
||||||
group: "{{ main_group }}"
|
|
||||||
|
|
||||||
- name: ensures Mealie directory dir exists
|
| Variables | default | description |
|
||||||
file:
|
| -------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||||
path: "{{ docker_dir }}/mealie/"
|
| db_type | sqlite | The database type to be used. Current Options 'sqlite' and 'mongo' |
|
||||||
state: directory
|
| mealie_db_name | mealie | The name of the database to be created in Mongodb |
|
||||||
owner: "{{ main_user}}"
|
| mealie_port | 9000 | The port exposed by mealie. **do not change this if you're running in docker** If you'd like to use another port, map 9000 to another port of the host. |
|
||||||
group: "{{ main_group }}"
|
| db_username | root | The Mongodb username you specified in your mongo container |
|
||||||
|
| db_password | example | The Mongodb password you specified in your mongo container |
|
||||||
|
| db_host | mongo | The host address of MongoDB if you're in docker and using the same network you can use mongo as the host name |
|
||||||
|
| db_port | 27017 | the port to access MongoDB 27017 is the default for mongo |
|
||||||
|
| api_docs | True | Turns on/off access to the API documentation locally. |
|
||||||
|
| TZ | | You should set your time zone accordingly so the date/time features work correctly |
|
||||||
|
|
||||||
- name: Deploy Monogo Database
|
|
||||||
docker_container:
|
|
||||||
name: mealie-mongo
|
|
||||||
image: mongo
|
|
||||||
restart_policy: unless-stopped
|
|
||||||
networks:
|
|
||||||
- name: web
|
|
||||||
env:
|
|
||||||
MONGO_INITDB_ROOT_USERNAME: root
|
|
||||||
MONGO_INITDB_ROOT_PASSWORD: example
|
|
||||||
|
|
||||||
|
|
||||||
- name: deploy Mealie Docker Container
|
|
||||||
docker_container:
|
|
||||||
name: mealie
|
|
||||||
image: hkotel/mealie:latest
|
|
||||||
restart_policy: unless-stopped
|
|
||||||
ports:
|
|
||||||
- 9090:9000
|
|
||||||
networks:
|
|
||||||
- name: web
|
|
||||||
mounts:
|
|
||||||
- type: bind
|
|
||||||
source: "{{ docker_dir }}/mealie"
|
|
||||||
target: /app/data
|
|
||||||
env:
|
|
||||||
db_username: root
|
|
||||||
db_password: example
|
|
||||||
db_host: mealie-mongo
|
|
||||||
db_port: "27017"
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
## Deployed as a Python Application
|
## Deployed as a Python Application
|
||||||
Alternatively, this project is built on Python and Mongodb. If you are dead set on deploying on a linux machine you can run this in an python environment with a dedicated MongoDatabase. Provided that you know thats how you want to host the application, I'll assume you know how to do that. I may or may not get around to writing this guide. I'm open to pull requests if anyone has a good guide on it.
|
Alternatively, this project is built on Python and Mongodb. If you are dead set on deploying on a linux machine you can run this in an python environment with a dedicated MongoDatabase. Provided that you know thats how you want to host the application, I'll assume you know how to do that. I may or may not get around to writing this guide. I'm open to pull requests if anyone has a good guide on it.
|
|
@ -6,7 +6,21 @@ In the Admin page on the in the Migration section you can provide a URL for a re
|
||||||
|
|
||||||
We'd like to support additional migration paths. [See open issues.](https://github.com/hay-kot/mealie/issues)
|
We'd like to support additional migration paths. [See open issues.](https://github.com/hay-kot/mealie/issues)
|
||||||
|
|
||||||
**Currently Proposed Are:**
|
### Nextcloud Recipes
|
||||||
|
Nextcloud recipes can be imported from either a zip file the contains the data stored in Nextcloud. The zip file can be uploaded from the frontend or placed in the data/migrations/Nextcloud directory. See the example folder structure below to ensure your recipes are able to be imported.
|
||||||
|
|
||||||
- NextCloud Recipes
|
```
|
||||||
|
nextcloud_recipes.zip
|
||||||
|
├── recipe_1
|
||||||
|
│ ├── recipe.json
|
||||||
|
│ ├── full.jpg
|
||||||
|
│ └── thumb.jpg
|
||||||
|
├── recipe_2
|
||||||
|
│ ├── recipe.json
|
||||||
|
│ └── full.jpg
|
||||||
|
└── recipe_3
|
||||||
|
└── recipe.json
|
||||||
|
```
|
||||||
|
|
||||||
|
**Currently Proposed Are:**
|
||||||
- Open Eats
|
- Open Eats
|
File diff suppressed because one or more lines are too long
|
@ -1,12 +1,12 @@
|
||||||
# Development Road Map
|
# Development Road Map
|
||||||
|
|
||||||
!!! Current Release
|
!!! Current Release
|
||||||
v0.0.0 ALPHA - This is technically a pre-release, as such there are no release notes and no version. The first version will be version v0.1.0 and will provide a list of release notes with any breaking changes
|
v0.1.0 BETA - This is technically a pre-release, as such take care to backup data and be aware that breaking changes in future releases are a real possibility.
|
||||||
|
|
||||||
|
|
||||||
Feature placement is not set in stone. This is much more of a guideline than anything else.
|
Feature placement is not set in stone. This is much more of a guideline than anything else.
|
||||||
|
|
||||||
## v1.0 Road Map
|
## v x.x.x - No planned target, but eventually...
|
||||||
|
|
||||||
### Frontend
|
### Frontend
|
||||||
- [ ] Login / Logout Navigation
|
- [ ] Login / Logout Navigation
|
||||||
|
@ -14,6 +14,7 @@ Feature placement is not set in stone. This is much more of a guideline than any
|
||||||
* [ ] Logic / Function Calls
|
* [ ] Logic / Function Calls
|
||||||
* [ ] Password Reset
|
* [ ] Password Reset
|
||||||
### Backend
|
### Backend
|
||||||
|
- [ ] Image Minification
|
||||||
- [ ] User Setup
|
- [ ] User Setup
|
||||||
* [ ] Authentication
|
* [ ] Authentication
|
||||||
* [ ] Default Admin/Superuser Account
|
* [ ] Default Admin/Superuser Account
|
||||||
|
@ -21,25 +22,31 @@ Feature placement is not set in stone. This is much more of a guideline than any
|
||||||
* [ ] User Accounts
|
* [ ] User Accounts
|
||||||
* [ ] Edit / Delete
|
* [ ] Edit / Delete
|
||||||
|
|
||||||
## v0.1.0
|
## v0.2.0 - Targets
|
||||||
### Front End
|
|
||||||
|
|
||||||
- [ ] Recipe Editor
|
|
||||||
* [ ] Basic Form Validation
|
|
||||||
- [ ] Recipe Viewer
|
|
||||||
* [ ] Print Page View - Like King Arthur Website
|
|
||||||
* [ ] Total Time Indicator
|
|
||||||
* [ ] Bake Time
|
|
||||||
|
|
||||||
|
|
||||||
|
!!! error "MAJOR BREAKING CHANGE"
|
||||||
|
MongoDB will no longer be supported as of v0.2.0. Review the database migration page for details on migration to SQL (It's very easy)
|
||||||
|
|
||||||
|
## New Features
|
||||||
|
### Frontend
|
||||||
|
- [ ] Advanced search
|
||||||
|
- [ ] Category Filter
|
||||||
|
- [ ] Tag Filter
|
||||||
|
- [x] Fuzzy Search
|
||||||
|
- [ ] Backup card redesign
|
||||||
|
- [ ] Additional Backup / Import Features
|
||||||
|
- [ ] Import Recipes Force/Rebase options
|
||||||
|
- [ ] Upload .zip file
|
||||||
|
- [ ] Improved Color Picker
|
||||||
|
- [ ] Meal Plan redesign
|
||||||
### Backend
|
### Backend
|
||||||
- [ ] Recipe Data
|
- [ ] PostgreSQL Support
|
||||||
* [x] Better Scraper
|
- [ ] Setup SQL Migrations
|
||||||
* [ ] Image Minification
|
|
||||||
* [x] Scraper Data Validation
|
## Breaking Changes
|
||||||
- [ ] Category Management
|
- Internal port 9000 changed to port 80 for better Traefik support
|
||||||
* [ ] Lunch / Dinner / Breakfast <- Meal Generation
|
- MongoDB support dropped
|
||||||
* [ ] Dessert / Side / Appetizer / Bread / Drinks /
|
## Code Chores
|
||||||
- [ ] Backup Options
|
- [ ] Remove MongoDB Interface Code
|
||||||
* [ ] Force Update
|
- [ ] Dockerfile Trim
|
||||||
* [ ] Rebuild
|
|
||||||
|
|
|
@ -52,8 +52,8 @@ else:
|
||||||
|
|
||||||
|
|
||||||
# DATABASE ENV
|
# DATABASE ENV
|
||||||
DATABASE_TYPE = os.getenv("db_type", "sql") # mongo, tinydb
|
DATABASE_TYPE = os.getenv("db_type", "sqlite") # mongo, sqlite
|
||||||
if DATABASE_TYPE == "sql":
|
if DATABASE_TYPE == "sqlite":
|
||||||
USE_SQL = True
|
USE_SQL = True
|
||||||
USE_MONGO = False
|
USE_MONGO = False
|
||||||
SQLITE_FILE = SQLITE_DIR.joinpath("mealie.sqlite")
|
SQLITE_FILE = SQLITE_DIR.joinpath("mealie.sqlite")
|
||||||
|
|
|
@ -4,9 +4,9 @@ import zipfile
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from typing import List
|
from typing import List
|
||||||
|
|
||||||
|
from app_config import BACKUP_DIR, IMG_DIR, TEMP_DIR
|
||||||
from services.recipe_services import Recipe
|
from services.recipe_services import Recipe
|
||||||
from services.settings_services import SiteSettings, SiteTheme
|
from services.settings_services import SiteSettings, SiteTheme
|
||||||
from app_config import BACKUP_DIR, IMG_DIR, TEMP_DIR
|
|
||||||
from utils.logger import logger
|
from utils.logger import logger
|
||||||
|
|
||||||
|
|
||||||
|
@ -73,11 +73,6 @@ class ImportDatabase:
|
||||||
with open(recipe, "r") as f:
|
with open(recipe, "r") as f:
|
||||||
recipe_dict = json.loads(f.read())
|
recipe_dict = json.loads(f.read())
|
||||||
recipe_dict = ImportDatabase._recipe_migration(recipe_dict)
|
recipe_dict = ImportDatabase._recipe_migration(recipe_dict)
|
||||||
|
|
||||||
recipe_obj = Recipe(**recipe_dict)
|
|
||||||
recipe_obj.save_to_db()
|
|
||||||
successful_imports.append(recipe.stem)
|
|
||||||
logger.info(f"Imported: {recipe.stem}")
|
|
||||||
try:
|
try:
|
||||||
recipe_obj = Recipe(**recipe_dict)
|
recipe_obj = Recipe(**recipe_dict)
|
||||||
recipe_obj.save_to_db()
|
recipe_obj.save_to_db()
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue