mirror of
https://github.com/mealie-recipes/mealie.git
synced 2026-06-25 10:20:13 -04:00
Compare commits
5 Commits
l10n_meali
...
mealie-nex
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0840bc4d66 | ||
|
|
977cb83100 | ||
|
|
cef67e23d0 | ||
|
|
dbe84cc91b | ||
|
|
d4c8cdbc1e |
@@ -1,7 +1,7 @@
|
|||||||
###############################################
|
###############################################
|
||||||
# Frontend Build
|
# Frontend Build
|
||||||
###############################################
|
###############################################
|
||||||
FROM node:24@sha256:733e1c06ada118ed9f6133a31aa1290be6929664026fb28821500437c61f2c6f \
|
FROM node:24@sha256:fdddfb3e688158251943d52eba361de991548f6814007acba4917ae6b512d6be \
|
||||||
AS frontend-builder
|
AS frontend-builder
|
||||||
|
|
||||||
WORKDIR /frontend
|
WORKDIR /frontend
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ To deploy mealie on your local network, it is highly recommended to use Docker t
|
|||||||
We've gone through a few versions of Mealie v1 deployment targets. We have settled on a single container deployment, and we've begun publishing the nightly container on github containers. If you're looking to move from the old nightly (split containers _or_ the omni image) to the new nightly, there are a few things you need to do:
|
We've gone through a few versions of Mealie v1 deployment targets. We have settled on a single container deployment, and we've begun publishing the nightly container on github containers. If you're looking to move from the old nightly (split containers _or_ the omni image) to the new nightly, there are a few things you need to do:
|
||||||
|
|
||||||
1. Take a backup just in case!
|
1. Take a backup just in case!
|
||||||
2. Replace the image for the API container with `ghcr.io/mealie-recipes/mealie:v3.19.2`
|
2. Replace the image for the API container with `ghcr.io/mealie-recipes/mealie:v3.20.0`
|
||||||
3. Take the external port from the frontend container and set that as the port mapped to port `9000` on the new container. The frontend is now served on port 9000 from the new container, so it will need to be mapped for you to have access.
|
3. Take the external port from the frontend container and set that as the port mapped to port `9000` on the new container. The frontend is now served on port 9000 from the new container, so it will need to be mapped for you to have access.
|
||||||
4. Restart the container
|
4. Restart the container
|
||||||
|
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ PostgreSQL might be considered if you need to support many concurrent users. In
|
|||||||
```yaml
|
```yaml
|
||||||
services:
|
services:
|
||||||
mealie:
|
mealie:
|
||||||
image: ghcr.io/mealie-recipes/mealie:v3.19.2 # (3)
|
image: ghcr.io/mealie-recipes/mealie:v3.20.0 # (3)
|
||||||
container_name: mealie
|
container_name: mealie
|
||||||
restart: always
|
restart: always
|
||||||
ports:
|
ports:
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ SQLite is a popular, open source, self-contained, zero-configuration database th
|
|||||||
```yaml
|
```yaml
|
||||||
services:
|
services:
|
||||||
mealie:
|
mealie:
|
||||||
image: ghcr.io/mealie-recipes/mealie:v3.19.2 # (3)
|
image: ghcr.io/mealie-recipes/mealie:v3.20.0 # (3)
|
||||||
container_name: mealie
|
container_name: mealie
|
||||||
restart: always
|
restart: always
|
||||||
ports:
|
ports:
|
||||||
|
|||||||
@@ -1144,7 +1144,7 @@
|
|||||||
},
|
},
|
||||||
"data-pages": {
|
"data-pages": {
|
||||||
"foods": {
|
"foods": {
|
||||||
"delete-affects-recipes": "Warnung: Dieses Lebensmittel wird in {count} Rezept(en) verwendet. Beim Löschen verbleibt in den betroffenen Rezept(en) eine leere Zutat.",
|
"delete-affects-recipes": "Warning: this food is used in {count} recipe(s). Deleting it will leave an empty ingredient in the recipe(s).",
|
||||||
"delete-affects-recipes-more": "Zeige alle {count} Rezepte",
|
"delete-affects-recipes-more": "Zeige alle {count} Rezepte",
|
||||||
"merge-dialog-text": "Zusammenführen der ausgewählten Lebensmittel führt diese zusammen in ein einzelnes Lebensmittel. Die Ausgangslebensmittel werden gelöscht und alle Verweise werden auf das zusammengeführte Lebensmittel angepasst.",
|
"merge-dialog-text": "Zusammenführen der ausgewählten Lebensmittel führt diese zusammen in ein einzelnes Lebensmittel. Die Ausgangslebensmittel werden gelöscht und alle Verweise werden auf das zusammengeführte Lebensmittel angepasst.",
|
||||||
"merge-food-example": "{food1} wird zu {food2} zusammengeführt",
|
"merge-food-example": "{food1} wird zu {food2} zusammengeführt",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "mealie",
|
"name": "mealie",
|
||||||
"version": "3.19.2",
|
"version": "3.20.0",
|
||||||
"private": true,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "nuxt dev",
|
"dev": "nuxt dev",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[project]
|
[project]
|
||||||
name = "mealie"
|
name = "mealie"
|
||||||
version = "3.19.2"
|
version = "3.20.0"
|
||||||
description = "A Recipe Manager"
|
description = "A Recipe Manager"
|
||||||
authors = [{ name = "Hayden", email = "hay-kot@pm.me" }]
|
authors = [{ name = "Hayden", email = "hay-kot@pm.me" }]
|
||||||
license = "AGPL-3.0-only"
|
license = "AGPL-3.0-only"
|
||||||
@@ -15,7 +15,7 @@ dependencies = [
|
|||||||
"apprise==1.11.0",
|
"apprise==1.11.0",
|
||||||
"bcrypt==5.0.0",
|
"bcrypt==5.0.0",
|
||||||
"extruct==0.18.0",
|
"extruct==0.18.0",
|
||||||
"fastapi==0.137.2",
|
"fastapi==0.138.0",
|
||||||
"httpx==0.28.1",
|
"httpx==0.28.1",
|
||||||
"lxml==6.1.1",
|
"lxml==6.1.1",
|
||||||
"orjson==3.11.9",
|
"orjson==3.11.9",
|
||||||
@@ -37,7 +37,7 @@ dependencies = [
|
|||||||
"authlib==1.7.2",
|
"authlib==1.7.2",
|
||||||
"html2text==2025.4.15",
|
"html2text==2025.4.15",
|
||||||
"paho-mqtt==1.6.1",
|
"paho-mqtt==1.6.1",
|
||||||
"pydantic-settings==2.14.1",
|
"pydantic-settings==2.14.2",
|
||||||
"pillow-heif==1.4.0",
|
"pillow-heif==1.4.0",
|
||||||
"pyjwt==2.13.0",
|
"pyjwt==2.13.0",
|
||||||
"openai==2.43.0",
|
"openai==2.43.0",
|
||||||
@@ -68,7 +68,7 @@ dev = [
|
|||||||
"mypy==2.1.0",
|
"mypy==2.1.0",
|
||||||
"pre-commit==4.6.0",
|
"pre-commit==4.6.0",
|
||||||
"pylint==4.0.6",
|
"pylint==4.0.6",
|
||||||
"pytest==9.1.0",
|
"pytest==9.1.1",
|
||||||
"pytest-asyncio==1.4.0",
|
"pytest-asyncio==1.4.0",
|
||||||
"rich==15.0.0",
|
"rich==15.0.0",
|
||||||
"ruff==0.15.18",
|
"ruff==0.15.18",
|
||||||
|
|||||||
26
uv.lock
generated
26
uv.lock
generated
@@ -429,7 +429,7 @@ wheels = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "fastapi"
|
name = "fastapi"
|
||||||
version = "0.137.2"
|
version = "0.138.0"
|
||||||
source = { registry = "https://pypi.org/simple" }
|
source = { registry = "https://pypi.org/simple" }
|
||||||
dependencies = [
|
dependencies = [
|
||||||
{ name = "annotated-doc" },
|
{ name = "annotated-doc" },
|
||||||
@@ -438,9 +438,9 @@ dependencies = [
|
|||||||
{ name = "typing-extensions" },
|
{ name = "typing-extensions" },
|
||||||
{ name = "typing-inspection" },
|
{ name = "typing-inspection" },
|
||||||
]
|
]
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/e2/29/cc5819dc24d3daa80cdaa1aec023bf8652a70dd7fd1c96b0b225c99a7690/fastapi-0.137.2.tar.gz", hash = "sha256:b9d893bebc97dcfbdcb1917e88a292d062844ea19445a5fa4f7eb28c4baea9e3", size = 410332, upload-time = "2026-06-18T06:58:24.434Z" }
|
sdist = { url = "https://files.pythonhosted.org/packages/5b/58/ff455d9fe47c60abadb34b9e05a304b1f05f5ab8000ac01565156b6f5e43/fastapi-0.138.0.tar.gz", hash = "sha256:d445a4877636ad191e7053e08c9bf98cb921a6756776848400bb773d1740c061", size = 419240, upload-time = "2026-06-20T01:18:05.259Z" }
|
||||||
wheels = [
|
wheels = [
|
||||||
{ url = "https://files.pythonhosted.org/packages/2f/ed/0c6b644e99fb5697d8bdcd36cdb47c52e77a63fc7a1514b1f03a6ecab955/fastapi-0.137.2-py3-none-any.whl", hash = "sha256:791d36261e916a98b25ac85ee591bc3db159394070f6d3d096d94fb378f60ce2", size = 122252, upload-time = "2026-06-18T06:58:26.074Z" },
|
{ url = "https://files.pythonhosted.org/packages/6c/ff/8496d9847a5fedae775eb49460722d3efaa80487854273e9647ae876218c/fastapi-0.138.0-py3-none-any.whl", hash = "sha256:b6f54fd1bd72c80b0f899f172c61a600f6f7af9b43d4d772a018f35624048cb0", size = 126779, upload-time = "2026-06-20T01:18:03.483Z" },
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -881,7 +881,7 @@ wheels = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "mealie"
|
name = "mealie"
|
||||||
version = "3.19.2"
|
version = "3.20.0"
|
||||||
source = { editable = "." }
|
source = { editable = "." }
|
||||||
dependencies = [
|
dependencies = [
|
||||||
{ name = "aiofiles" },
|
{ name = "aiofiles" },
|
||||||
@@ -965,7 +965,7 @@ requires-dist = [
|
|||||||
{ name = "bcrypt", specifier = "==5.0.0" },
|
{ name = "bcrypt", specifier = "==5.0.0" },
|
||||||
{ name = "beautifulsoup4", specifier = "==4.15.0" },
|
{ name = "beautifulsoup4", specifier = "==4.15.0" },
|
||||||
{ name = "extruct", specifier = "==0.18.0" },
|
{ name = "extruct", specifier = "==0.18.0" },
|
||||||
{ name = "fastapi", specifier = "==0.137.2" },
|
{ name = "fastapi", specifier = "==0.138.0" },
|
||||||
{ name = "html2text", specifier = "==2025.4.15" },
|
{ name = "html2text", specifier = "==2025.4.15" },
|
||||||
{ name = "httpx", specifier = "==0.28.1" },
|
{ name = "httpx", specifier = "==0.28.1" },
|
||||||
{ name = "httpx-curl-cffi", specifier = "==0.1.5" },
|
{ name = "httpx-curl-cffi", specifier = "==0.1.5" },
|
||||||
@@ -982,7 +982,7 @@ requires-dist = [
|
|||||||
{ name = "pint", specifier = "==0.25.3" },
|
{ name = "pint", specifier = "==0.25.3" },
|
||||||
{ name = "psycopg2-binary", marker = "extra == 'pgsql'", specifier = "==2.9.12" },
|
{ name = "psycopg2-binary", marker = "extra == 'pgsql'", specifier = "==2.9.12" },
|
||||||
{ name = "pydantic", specifier = "==2.13.4" },
|
{ name = "pydantic", specifier = "==2.13.4" },
|
||||||
{ name = "pydantic-settings", specifier = "==2.14.1" },
|
{ name = "pydantic-settings", specifier = "==2.14.2" },
|
||||||
{ name = "pyhumps", specifier = "==3.8.0" },
|
{ name = "pyhumps", specifier = "==3.8.0" },
|
||||||
{ name = "pyjwt", specifier = "==2.13.0" },
|
{ name = "pyjwt", specifier = "==2.13.0" },
|
||||||
{ name = "python-dateutil", specifier = "==2.9.0.post0" },
|
{ name = "python-dateutil", specifier = "==2.9.0.post0" },
|
||||||
@@ -1013,7 +1013,7 @@ dev = [
|
|||||||
{ name = "pre-commit", specifier = "==4.6.0" },
|
{ name = "pre-commit", specifier = "==4.6.0" },
|
||||||
{ name = "pydantic-to-typescript2", specifier = "==1.0.6" },
|
{ name = "pydantic-to-typescript2", specifier = "==1.0.6" },
|
||||||
{ name = "pylint", specifier = "==4.0.6" },
|
{ name = "pylint", specifier = "==4.0.6" },
|
||||||
{ name = "pytest", specifier = "==9.1.0" },
|
{ name = "pytest", specifier = "==9.1.1" },
|
||||||
{ name = "pytest-asyncio", specifier = "==1.4.0" },
|
{ name = "pytest-asyncio", specifier = "==1.4.0" },
|
||||||
{ name = "rich", specifier = "==15.0.0" },
|
{ name = "rich", specifier = "==15.0.0" },
|
||||||
{ name = "ruff", specifier = "==0.15.18" },
|
{ name = "ruff", specifier = "==0.15.18" },
|
||||||
@@ -1458,16 +1458,16 @@ wheels = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pydantic-settings"
|
name = "pydantic-settings"
|
||||||
version = "2.14.1"
|
version = "2.14.2"
|
||||||
source = { registry = "https://pypi.org/simple" }
|
source = { registry = "https://pypi.org/simple" }
|
||||||
dependencies = [
|
dependencies = [
|
||||||
{ name = "pydantic" },
|
{ name = "pydantic" },
|
||||||
{ name = "python-dotenv" },
|
{ name = "python-dotenv" },
|
||||||
{ name = "typing-inspection" },
|
{ name = "typing-inspection" },
|
||||||
]
|
]
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/07/60/1d1e59c9c90d54591469ada7d268251f71c24bdb765f1a8a832cee8c6653/pydantic_settings-2.14.1.tar.gz", hash = "sha256:e874d3bec7e787b0c9958277956ed9b4dd5de6a80e162188fdaff7c5e26fd5fa", size = 235551, upload-time = "2026-05-08T13:40:06.542Z" }
|
sdist = { url = "https://files.pythonhosted.org/packages/5c/b5/8f48e906c3e0205276e8bd8cb7512217a87b2685304d64be27cad5b3019f/pydantic_settings-2.14.2.tar.gz", hash = "sha256:c19dd64b19097f1de80184f0cc7b0272a13ae6e170cbf240a3e27e381ed14a5f", size = 237700, upload-time = "2026-06-19T13:44:56.324Z" }
|
||||||
wheels = [
|
wheels = [
|
||||||
{ url = "https://files.pythonhosted.org/packages/ae/8d/f1af3832f5e6eb13ba94ee809e72b8ecb5eef226d27ee0bef7d963d943c7/pydantic_settings-2.14.1-py3-none-any.whl", hash = "sha256:6e3c7edfd8277687cdc598f56e5cff0e9bfff0910a3749deaa8d4401c3a2b9de", size = 60964, upload-time = "2026-05-08T13:40:04.958Z" },
|
{ url = "https://files.pythonhosted.org/packages/77/c1/6e422f34e569cf8e18df68d1939c81c099d2b61e4f7d9621c8a77560799c/pydantic_settings-2.14.2-py3-none-any.whl", hash = "sha256:a20c97b37910b6550d5ea50fbcc2d4187defe58cd57070b73863d069419c9440", size = 61715, upload-time = "2026-06-19T13:44:55.02Z" },
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -1565,7 +1565,7 @@ wheels = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pytest"
|
name = "pytest"
|
||||||
version = "9.1.0"
|
version = "9.1.1"
|
||||||
source = { registry = "https://pypi.org/simple" }
|
source = { registry = "https://pypi.org/simple" }
|
||||||
dependencies = [
|
dependencies = [
|
||||||
{ name = "colorama", marker = "sys_platform == 'win32'" },
|
{ name = "colorama", marker = "sys_platform == 'win32'" },
|
||||||
@@ -1574,9 +1574,9 @@ dependencies = [
|
|||||||
{ name = "pluggy" },
|
{ name = "pluggy" },
|
||||||
{ name = "pygments" },
|
{ name = "pygments" },
|
||||||
]
|
]
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/84/0e/b5858858d74958632c49b72cb25a3976ff9f632397626715be71c89d3971/pytest-9.1.0.tar.gz", hash = "sha256:41dd9148c08072446394cefd3d79701701335a9f4cae69ba92e39f6c7f5c061c", size = 1634181, upload-time = "2026-06-13T18:52:45.983Z" }
|
sdist = { url = "https://files.pythonhosted.org/packages/e4/47/b9efed96c114afcfa3c9d3fe98a76a1d14c74a9e266d397cf6eb64be5e01/pytest-9.1.1.tar.gz", hash = "sha256:1088fbde8f2b49d95a549a195707afa7a76a3ce9bcadc26b6d71f0ffda5fe313", size = 1636369, upload-time = "2026-06-19T10:58:32.857Z" }
|
||||||
wheels = [
|
wheels = [
|
||||||
{ url = "https://files.pythonhosted.org/packages/8b/5a/ba30a81239b909821b3153e303e7def45178bf353da4f72380e6c5e8793b/pytest-9.1.0-py3-none-any.whl", hash = "sha256:8ebb0e7888bdf2bdfc602ec51f8f62d50200af37356c74e503c79a94f5c81f32", size = 386453, upload-time = "2026-06-13T18:52:44.045Z" },
|
{ url = "https://files.pythonhosted.org/packages/24/25/1de2678b631f5a49215c6c96fff41ba892b0a34df68d6d80292b1b48aa7f/pytest-9.1.1-py3-none-any.whl", hash = "sha256:37a86b45efb9a47a61a36449063e8e18d0cab3161329fc099eb21783169c4f0c", size = 386536, upload-time = "2026-06-19T10:58:31.347Z" },
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
|||||||
Reference in New Issue
Block a user