Compare commits

...

2111 Commits

Author SHA1 Message Date
Michael Genson
e4f38685b3 fix(deps): Bump various frontend deps (#6774) 2025-12-23 17:12:52 -06:00
Michael Genson
d02023e12c fix: Only fetch recipes with a household id (#6773) 2025-12-23 16:48:27 -06:00
Michael Genson
64d8786d8f fix: Improve recipe bulk deletion (#6772) 2025-12-23 12:31:53 -06:00
Michael Genson
0971d59fa6 fix: Can't remove organizer (#6771) 2025-12-23 11:32:14 -06:00
Hayden
9b799ca441 chore(l10n): New Crowdin updates (#6768) 2025-12-22 23:36:50 -06:00
Michael Genson
193b823688 feat: Replace number inputs with new v-number-input compontent (#6767) 2025-12-22 18:45:52 -06:00
Michael Genson
c64c2d25e7 fix: Add resiliency to LDAP admin filter (#6766) 2025-12-22 15:37:15 -06:00
onemustpersist
8b4111d68f fix: Imported API keys not working on a new server #6477 (#6496)
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
Co-authored-by: Michael Genson <genson.michael@gmail.com>
2025-12-22 12:08:44 -06:00
miah
9d601ea4b5 feat: Animate shopping list and increase touch target (#6569)
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2025-12-22 11:55:25 -06:00
gitolicious
95e1bbce2b feat: persist selected dates in meal planner (#6512)
Co-authored-by: Michael Genson <genson.michael@gmail.com>
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2025-12-22 11:10:23 -06:00
Aurelien
7b32508201 fix: the add_pagination_to_query now always returns the correct count (#6505)
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2025-12-22 10:39:35 -06:00
Hayden
6ed85d72d7 chore(l10n): New Crowdin updates (#6765) 2025-12-22 15:59:19 +00:00
github-actions[bot]
cd2a522f25 chore(auto): Update pre-commit hooks (#6760)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
2025-12-22 15:48:53 +00:00
Arsène Reymond
6bd6400aba fix: add loader for create backup button (#6763) 2025-12-22 09:38:44 -06:00
Michael Genson
8b92d6ee04 fix: Backup selection doesn't work sometimes (#6759) 2025-12-21 20:56:51 -06:00
Michael Genson
7cc2ed75e5 fix: Consistant Shopping List Recipe State (#6758) 2025-12-21 20:27:00 -06:00
renovate[bot]
cb7f46c0ad fix(deps): update dependency fastapi to v0.127.0 (#6756)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-21 13:52:34 -06:00
renovate[bot]
cb12aedf72 fix(deps): update dependency openai to v2.14.0 (#6745) 2025-12-21 12:48:06 -06:00
renovate[bot]
8c35a26ab0 chore(deps): update dependency mkdocs-material to v9.7.1 (#6741)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-21 18:05:50 +00:00
github-actions[bot]
b2d0f46dd2 chore(l10n): Crowdin locale sync (#6754)
Co-authored-by: GitHub Action <action@github.com>
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2025-12-21 11:53:25 -06:00
Hayden
2c4b7bf611 chore(l10n): New Crowdin updates (#6748)
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2025-12-21 11:52:47 -06:00
renovate[bot]
38e542bcd3 fix(deps): update dependency python-multipart to v0.0.21 (#6737)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-21 11:52:15 -06:00
renovate[bot]
e53452c19c fix(deps): update dependency uvicorn to v0.40.0 (#6757)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-21 11:35:48 -06:00
Hayden
13213476d8 docs: add --no-project flags to skip mealie installation (#6755) 2025-12-20 21:23:11 -06:00
Hayden
9925450173 docs: isolate docs dependencies to avoid python-ldap build (#6753) 2025-12-20 20:45:59 -06:00
Hayden
efb9dae681 docs: add GitHub Actions workflow for docs deployment (#6752) 2025-12-20 20:26:14 -06:00
renovate[bot]
cee93d2a87 fix(deps): update dependency fastapi to v0.126.0 (#6750)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-20 16:06:03 -06:00
Arsène Reymond
0d4a8654c1 fix: PWA maskable android icons & enctype shared_target (#6731)
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2025-12-19 05:06:27 +00:00
Hayden
95b1be07bb chore(l10n): New Crowdin updates (#6744)
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2025-12-19 04:53:09 +00:00
mealie-commit-bot[bot]
a6fc98fc82 chore: bump version to v3.8.0 2025-12-19 01:37:16 +00:00
Michael Genson
6f03010f6c fix: Security Patches (#6743) 2025-12-18 22:54:16 +00:00
renovate[bot]
69397c91b8 fix(deps): update dependency openai to v2.13.0 (#6726)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-18 21:45:42 +00:00
Hayden
798792dcdc chore(l10n): New Crowdin updates (#6736)
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2025-12-18 15:32:22 -06:00
renovate[bot]
cc32dd9fa6 chore(deps): update dependency ruff to v0.14.10 (#6742)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-18 15:32:00 -06:00
renovate[bot]
0c64eb29f9 fix(deps): update dependency fastapi to v0.125.0 (#6740)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-17 17:37:43 -06:00
renovate[bot]
8baa5cc315 chore(deps): update dependency pre-commit to v4.5.1 (#6734)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-17 00:07:49 +00:00
Hayden
6f3a5c6c8f chore(l10n): New Crowdin updates (#6733) 2025-12-16 17:42:13 +00:00
Hayden
778078590b chore(l10n): New Crowdin updates (#6729) 2025-12-15 22:54:37 -06:00
github-actions[bot]
53c82e5491 chore(auto): Update pre-commit hooks (#6724) 2025-12-15 18:16:59 +00:00
Hayden
fef114d97f chore(l10n): New Crowdin updates (#6725) 2025-12-15 08:55:48 -06:00
Hayden
e80cbfad7f chore(l10n): New Crowdin updates (#6722)
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2025-12-14 23:31:48 -06:00
renovate[bot]
99527ce738 chore(deps): update dependency mypy to v1.19.1 (#6723)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-14 23:31:34 -06:00
Arsène Reymond
08ccced734 fix: localize text validators message (#6719) 2025-12-14 09:56:11 -06:00
github-actions[bot]
43c2c9552b chore(l10n): Crowdin locale sync (#6716)
Co-authored-by: GitHub Action <action@github.com>
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2025-12-13 22:10:43 -06:00
Hayden
db5741c7ee chore(l10n): New Crowdin updates (#6710) 2025-12-13 22:10:23 -06:00
renovate[bot]
a1e394cf36 fix(deps): update dependency tzdata to v2025.3 (#6713) 2025-12-13 15:21:42 -06:00
Michael Genson
bdbef1ab9e fix: More lenient postgres override parsing (#6712) 2025-12-13 14:21:54 -06:00
Michael Genson
e5276f6c20 fix: Put tooltips behind app bar (#6711) 2025-12-13 10:56:18 -06:00
Michael Genson
20a6e71b31 feat: Optionally include URL when importing via HTML/JSON (#6709) 2025-12-12 23:20:26 -06:00
Michael Genson
24c111af7b chore: Miscellaneous cleanup (#6708) 2025-12-12 22:48:49 -06:00
davidschinkel
ab4559319e fix: Improved bulk deletion by reducing refreshs (#6634)
Co-authored-by: David Schinkel <david@zollsoft.de>
Co-authored-by: Hayden <64056131+hay-kot@users.noreply.github.com>
2025-12-13 04:08:04 +00:00
Michael Genson
2f8625ac44 fix: Disable submit on enter when editing timeline events (#6707) 2025-12-12 21:56:36 -06:00
Hayden
dd146afa57 chore(l10n): New Crowdin updates (#6706) 2025-12-12 21:20:34 -06:00
renovate[bot]
91d15f671e fix(deps): update dependency authlib to v1.6.6 (#6700)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-13 01:54:41 +00:00
renovate[bot]
7008b13246 fix(deps): update dependency fastapi to v0.124.4 (#6702)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-12 19:43:35 -06:00
mealie-commit-bot[bot]
1a1798cd88 chore: bump version to v3.7.0 2025-12-13 01:21:07 +00:00
Michael Genson
64f47c1589 fix: Reprocess script UUID handling for postgres (#6705) 2025-12-12 19:18:52 -06:00
Michael Genson
326bb1eb8e feat: Reprocess image user script (#6704) 2025-12-12 18:30:49 -06:00
Hayden
80dc2ecfb7 chore(l10n): New Crowdin updates (#6701) 2025-12-12 13:53:06 +00:00
renovate[bot]
b72082663f chore(deps): update node.js to 20988bc (#6698) 2025-12-12 05:24:05 +00:00
renovate[bot]
f46ae423d3 chore(deps): update dependency ruff to v0.14.9 (#6699) 2025-12-11 23:13:36 -06:00
Hayden
05cdff8ae7 chore(l10n): New Crowdin updates (#6697) 2025-12-12 03:57:19 +01:00
Hayden
0facdf73be chore(l10n): New Crowdin updates (#6694) 2025-12-11 21:38:11 +00:00
renovate[bot]
cbad569134 fix(deps): update dependency openai to v2.11.0 (#6696)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-11 15:27:38 -06:00
Hayden
1063433aa9 chore(l10n): New Crowdin updates (#6693) 2025-12-10 19:47:30 -06:00
renovate[bot]
0ba22c81e7 fix(deps): update dependency fastapi to v0.124.2 (#6688) 2025-12-10 18:59:49 +00:00
renovate[bot]
0667177a2e fix(deps): update dependency recipe-scrapers to v15.11.0 (#6691) 2025-12-10 18:48:05 +00:00
Hayden
6fcf22869b chore(l10n): New Crowdin updates (#6689) 2025-12-10 12:37:02 -06:00
renovate[bot]
20b45e57e0 fix(deps): update dependency sqlalchemy to v2.0.45 (#6687)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-09 20:53:09 -06:00
Hayden
7a38a52158 chore(l10n): New Crowdin updates (#6686) 2025-12-09 19:45:24 -06:00
renovate[bot]
e27eca5571 chore(deps): update node.js to 9a2ed90 (#6684)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2025-12-09 12:53:03 -06:00
renovate[bot]
a90b2ccafd chore(deps): update dependency coverage to v7.13.0 (#6683)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-09 12:52:45 -06:00
Michael Genson
e0d8104643 feat: Suggest HTML importer on URL importer failure (#6685) 2025-12-09 11:05:34 -06:00
Hayden
53ee64828b chore(l10n): New Crowdin updates (#6678)
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2025-12-09 10:27:21 -06:00
Arsène Reymond
6f7fba5ac1 feat: Add user QueryFilter and improve UI on mobile (#6235)
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
Co-authored-by: Michael Genson <genson.michael@gmail.com>
2025-12-09 09:49:12 -06:00
github-actions[bot]
89aed15905 chore(auto): Update pre-commit hooks (#6680)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
2025-12-08 14:55:38 +00:00
renovate[bot]
aac48287a4 fix(deps): update dependency apprise to v1.9.6 (#6677)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-08 08:45:21 -06:00
Hayden
34daaa0476 chore(l10n): New Crowdin updates (#6675) 2025-12-07 09:43:47 -06:00
Henri Cook
af56a3e69d fix: improve password manager autofill compatibility on login page (#6662)
Co-authored-by: Henri Cook <henri.cook@linklaters.com>
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2025-12-06 23:35:16 -06:00
github-actions[bot]
0908812b47 chore(l10n): Crowdin locale sync (#6672)
Co-authored-by: GitHub Action <action@github.com>
2025-12-06 22:58:22 -06:00
renovate[bot]
d910fbafe8 chore(deps): update dependency pytest to v9.0.2 (#6670) 2025-12-07 00:15:15 +00:00
renovate[bot]
c7692426d5 fix(deps): update dependency orjson to v3.11.5 (#6667) 2025-12-07 00:04:01 +00:00
renovate[bot]
b7a615add9 fix(deps): update dependency fastapi to v0.124.0 (#6664) 2025-12-06 17:52:57 -06:00
Hayden
3167e23b6b chore(l10n): New Crowdin updates (#6671) 2025-12-06 17:21:05 -06:00
Hayden
8b582f8682 feat: autofill default credentials on first login (#6666) 2025-12-06 17:47:33 +00:00
Hayden
05f648d7fb fix: clear cached store data on logout to prevent user data leakage (#6665) 2025-12-06 11:36:39 -06:00
Nathan Winspear
1f19133870 docs: add theming examples to backend configuration guide (#6443)
Co-authored-by: Michael Genson <genson.michael@gmail.com>
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2025-12-05 19:35:33 -06:00
Hayden
98273da16e chore(l10n): New Crowdin updates (#6661)
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2025-12-05 16:29:47 -06:00
miah
f857ca18da feat: Improve startup workflow UI (#6342)
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2025-12-05 22:18:32 +00:00
renovate[bot]
22a0e6d608 fix(deps): update dependency fastapi to v0.123.10 (#6660)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-05 15:58:01 -06:00
Tempest
ed806b9fec feat: Improve Image Minification Logic and Efficiency (#5883)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
Co-authored-by: Michael Genson <genson.michael@gmail.com>
2025-12-05 15:45:53 -06:00
Michael Genson
ae8b489f97 dev: Add copilot-instructions.md (#6659) 2025-12-05 13:00:45 -06:00
Noneangel
71732d4766 feat: frontend autocomplete is diacritics/ligatures insensitive (#6169)
Co-authored-by: Pierre <pierre@debian.zabi.ovh>
Co-authored-by: Michael Genson <genson.michael@gmail.com>
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2025-12-05 12:44:37 -06:00
Cash Prokop-Weaver
6695314588 feat: Add snack, drink, and dessert (#6149)
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
Co-authored-by: Michael Genson <genson.michael@gmail.com>
2025-12-05 11:54:00 -06:00
Nico Hirsch
c115e6d83f feat: Put calendar directly in the date picker dialogs (#6110)
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
Co-authored-by: Michael Genson <genson.michael@gmail.com>
2025-12-05 10:05:47 -06:00
renovate[bot]
e3e970213c fix(deps): update dependency fastapi to v0.123.9 (#6657)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-04 23:29:52 -06:00
Hayden
7fe358e5e7 chore(l10n): New Crowdin updates (#6653) 2025-12-04 21:54:37 +00:00
renovate[bot]
c7f3334479 fix(deps): update dependency openai to v2.9.0 (#6656)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-04 15:43:47 -06:00
renovate[bot]
d4467f65fb fix(deps): update dependency fastapi to v0.123.8 (#6640)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-04 21:23:23 +00:00
renovate[bot]
27e61ec6b1 chore(deps): update dependency ruff to v0.14.8 (#6655)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-04 15:12:20 -06:00
Hayden
6c6dc8103d chore(l10n): New Crowdin updates (#6649) 2025-12-03 10:25:28 +01:00
Hayden
35963dad2e fix: change log rotation size from 10kb to 10mb (#6648) 2025-12-02 19:06:51 -06:00
mealie-commit-bot[bot]
acd0c2cb3e chore: bump version to v3.6.1 2025-12-02 23:08:41 +00:00
Michael Genson
28d00f7dd5 fix: Bump version before building release (#6647) 2025-12-02 16:51:46 -06:00
Michael Genson
fdd3d4b37a fix: Remove Auth Refresh (#6646) 2025-12-02 15:55:01 -06:00
Hayden
b09a85dfab chore(l10n): New Crowdin updates (#6643) 2025-12-02 10:39:36 -06:00
github-actions[bot]
b6ceece901 docs(auto): Update image tag, for release v3.6.0 (#6639) 2025-12-01 23:35:45 -06:00
renovate[bot]
54b8760d15 fix(deps): update dependency fastapi to v0.123.1 (#6638)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-02 05:00:40 +00:00
davidschinkel
187e0300a0 fix: Enabled newlines in timeline comment (#5905) (#6620)
Co-authored-by: David Schinkel <david@zollsoft.de>
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2025-12-01 22:48:24 -06:00
github-actions[bot]
c398316b55 chore(auto): Update pre-commit hooks (#6632)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
2025-12-02 04:46:26 +00:00
Hayden
eb093a755b chore(l10n): New Crowdin updates (#6637) 2025-12-02 04:35:15 +00:00
Hayden
2e982fad82 chore(l10n): New Crowdin updates (#6631) 2025-11-30 20:54:05 -06:00
renovate[bot]
f5570bf9b2 fix(deps): update dependency beautifulsoup4 to v4.14.3 (#6629)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-30 10:46:27 -06:00
renovate[bot]
ddd7ee0696 fix(deps): update dependency fastapi to v0.123.0 (#6627)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-30 16:06:01 +00:00
Hayden
f1b5b999b9 chore(l10n): New Crowdin updates (#6628) 2025-11-30 15:55:01 +00:00
renovate[bot]
47892f84be chore(deps): update dependency pylint to v4.0.4 (#6626)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-30 09:44:26 -06:00
github-actions[bot]
18002351b6 chore(l10n): Crowdin locale sync (#6625)
Co-authored-by: GitHub Action <action@github.com>
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2025-11-30 03:13:02 +00:00
Hayden
9605c448e7 chore(l10n): New Crowdin updates (#6624) 2025-11-30 02:46:27 +00:00
renovate[bot]
9499c2942c fix(deps): update dependency pydantic-settings to v2.12.0 (#6617)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-29 23:40:05 +00:00
renovate[bot]
f04bd7b777 fix(deps): update dependency openai to v2.8.1 (#6616)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-29 23:26:16 +00:00
renovate[bot]
710708ea68 fix(deps): update dependency fastapi to v0.122.0 (#6615)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-29 23:14:55 +00:00
Michael Genson
bb196da83b fix: Bump Pydantic to v2.12.5 (#6622) 2025-11-29 17:04:13 -06:00
renovate[bot]
d500fbf0b4 chore(deps): update dependency pre-commit to v4.5.0 (#6614)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-29 16:47:05 -06:00
renovate[bot]
ca94ca973c chore(deps): update dependency mypy to v1.19.0 (#6613) 2025-11-29 22:23:35 +00:00
renovate[bot]
454d1eff1c chore(deps): update dependency mkdocs-material to v9.7.0 (#6612) 2025-11-29 16:11:58 -06:00
renovate[bot]
280be88fc5 chore(deps): update dependency coverage to v7.12.0 (#6611) 2025-11-29 15:27:39 -06:00
renovate[bot]
e24c37957b fix(deps): update dependency rapidfuzz to v3.14.3 (#6610)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-29 20:59:37 +00:00
renovate[bot]
46b069ba71 fix(deps): update dependency alembic to v1.17.2 (#6608)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-29 14:48:10 -06:00
renovate[bot]
2caed5e192 chore(deps): update dependency pylint to v4.0.3 (#6605) 2025-11-29 13:16:27 -06:00
renovate[bot]
406f44e6a7 chore(deps): update dependency types-python-dateutil to v2.9.0.20251115 (#6607)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-29 18:07:56 +00:00
renovate[bot]
f6787f18ba chore(deps): update dependency ruff to v0.14.7 (#6606)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-29 17:56:01 +00:00
Michael Genson
1d64f428db chore: Fail frontend lint if there are warnings (#6619) 2025-11-29 11:33:17 -06:00
renovate[bot]
77906da9f1 fix(deps): update dependency recipe-scrapers to v15.10.0 (#6618)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-29 17:32:40 +00:00
renovate[bot]
35d470f5ea fix(deps): pin dependencies (#6604)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-29 17:04:14 +00:00
Hayden
d7cdcfa734 chore(l10n): New Crowdin updates (#6594) 2025-11-29 16:53:03 +00:00
Michael Genson
bfbdf76c2d chore: Update Renovate config to pin versions in pyproject.toml (#6603) 2025-11-29 10:42:01 -06:00
github-actions[bot]
7cc0fafbaa chore(auto): Update pre-commit hooks (#6558)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
2025-11-29 16:23:16 +00:00
Simon Lam
5b65ceda93 fix: Asset type selector dropdown #6413; asset entry layout; asset download content disposition (#6595)
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2025-11-29 10:13:26 -06:00
Michael Genson
07ecd88685 feat: Remove backend cookie and use frontend for auth (#6601) 2025-11-28 19:29:16 -06:00
gpotter@gmail.com
8f1ce1a1c3 fix: recipe recursion false positive (#6591)
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
Co-authored-by: Michael Genson <genson.michael@gmail.com>
2025-11-28 11:28:18 -06:00
cordlord
3146e99b03 fix: PWA follows OS screen rotation/lock settings (#6573) 2025-11-25 21:42:38 +00:00
Simon Lam
fe53cc28ba fix: Tool management bug #6447 - correct mismatch between event fired vs event handler (#6590)
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2025-11-23 17:14:59 -06:00
github-actions[bot]
d85635997b chore(l10n): Crowdin locale sync (#6589)
Co-authored-by: GitHub Action <action@github.com>
2025-11-23 23:13:26 +00:00
Hayden
1ca29df52e chore(l10n): New Crowdin updates (#6565)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2025-11-23 02:59:59 +00:00
renovate[bot]
ee5de10ffb chore(deps): update node.js to aa648b3 (#6568)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-22 12:41:51 -06:00
Michael Genson
201ab4b8ac chore: lint (#6582) 2025-11-21 23:37:59 -06:00
miah
45af609161 dev: Allow dev server to be accessed on local network (#6581)
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2025-11-21 23:19:37 -06:00
Michael Genson
c4a3068492 fix: Set maxAge on frontend auth cookie (#6576) 2025-11-20 15:18:27 -06:00
ithabi
6d4f573526 fix: Favorites page fails to load when sorted by random (#6517)
Co-authored-by: “a24ithay” <“abilan.ithayakumar@imt-atlantique.net”>
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2025-11-20 15:04:49 +00:00
ithabi
3c14df453e fix : Can't edit extra long category name depending on resolution (#6536)
Co-authored-by: “a24ithay” <“abilan.ithayakumar@imt-atlantique.net”>
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2025-11-20 14:54:23 +00:00
Hayden
9826f3483e chore(l10n): New Crowdin updates (#6563) 2025-11-18 09:30:53 +01:00
Hayden
caf0f5f441 chore(l10n): New Crowdin updates (#6561) 2025-11-17 14:36:42 -06:00
github-actions[bot]
b599de9c22 chore(l10n): Crowdin locale sync (#6553)
Co-authored-by: GitHub Action <action@github.com>
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2025-11-17 12:15:00 +00:00
Hayden
fd7aa44c13 chore(l10n): New Crowdin updates (#6559) 2025-11-17 12:20:54 +01:00
Hayden
82b7bacdb7 chore(l10n): New Crowdin updates (#6557) 2025-11-16 20:32:32 +01:00
Hayden
84f86c2682 chore(l10n): New Crowdin updates (#6554) 2025-11-16 09:39:17 +01:00
Hayden
527edb1a92 chore(l10n): New Crowdin updates (#6552) 2025-11-15 19:22:47 +00:00
Hayden
6e11b92e74 chore(l10n): New Crowdin updates (#6548) 2025-11-15 10:12:28 +01:00
Hayden
3f5b25a30e chore(l10n): New Crowdin updates (#6547) 2025-11-14 18:41:48 +00:00
github-actions[bot]
662d06b5a8 docs(auto): Update image tag, for release v3.5.0 (#6542) 2025-11-14 18:22:32 +00:00
Hayden
9003d0f1d1 chore(l10n): New Crowdin updates (#6513)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2025-11-14 12:12:35 -06:00
Lory
1cf7e37ada fix: prevent URL encoding in postgres placeholder display (#6438) 2025-11-14 16:17:17 +00:00
Arsène Reymond
930c92365d fix: Improve recipe ingredient selection (#6518)
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2025-11-14 10:05:54 -06:00
Aurelien
6f1fee5511 fix: Make Ingredients and Instructions independently scrollable in cook mode (#6358)
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2025-11-14 09:45:36 -06:00
renovate[bot]
f5de126d86 chore(deps): update node.js to 42ce5b9 (#6539)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-13 05:15:20 +00:00
renovate[bot]
725dae41b1 chore(deps): update dependency pytest to v9 (#6525)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-12 23:04:56 -06:00
github-actions[bot]
39e919526a chore(auto): Update pre-commit hooks (#6528)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2025-11-12 17:19:19 +00:00
renovate[bot]
1978ad2c96 chore(deps): update node.js to e5bbac0 (#6507)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-12 11:04:49 -06:00
github-actions[bot]
23e8dc1941 chore(l10n): Crowdin locale sync (#6524) 2025-11-08 22:15:51 -06:00
Hayden
96b408a661 chore(l10n): New Crowdin updates (#6508) 2025-11-05 09:39:12 +01:00
Hayden
20a9a94770 chore(l10n): New Crowdin updates (#6506) 2025-11-04 21:30:09 +01:00
renovate[bot]
b280e2d1a0 chore(deps): update node.js to 55b6bbe (#6503)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-04 11:09:32 -06:00
Hayden
735162d042 chore(l10n): New Crowdin updates (#6502) 2025-11-04 09:03:03 -06:00
gpotter@gmail.com
60d9294861 feat: Add recipe as ingredient (#4800)
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2025-11-03 23:57:57 -06:00
Michael Genson
ff42964537 fix: Brute parser fails if unit or food is empty (#6500) 2025-11-03 23:44:13 -06:00
Christian Hollinger
bb67d993a0 feat: Add DELETE /{slug}/image (#6259)
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2025-11-03 19:41:54 -06:00
Michael Genson
7bb0f0801a fix: Stabilize shopping list queuing (#6498) 2025-11-03 18:38:33 -06:00
Hayden
3a4875a54f chore(l10n): New Crowdin updates (#6495) 2025-11-03 20:53:45 +00:00
Michael Genson
0371874670 fix: Refactor Recipe Zip File Flow (#6170) 2025-11-03 14:43:22 -06:00
Tom Strange
3d177566ed fix: Include contents of purpose field when parsing ingredients (#6494) 2025-11-03 18:09:00 +00:00
github-actions[bot]
14e87918fb chore(auto): Update pre-commit hooks (#6493)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
2025-11-03 16:15:38 +00:00
Hayden
ac75b0254d chore(l10n): New Crowdin updates (#6492) 2025-11-03 09:12:57 +01:00
Michael Genson
7f2927600b chore: Update some frontend deps (#6490) 2025-11-02 22:42:19 -06:00
aliyyanWijaya
5e8c4a6cee fix: Update the random button flow (#6248)
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2025-11-03 02:52:17 +00:00
Arsène Reymond
a460c32674 fix: Locale dates format (#6211)
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2025-11-02 20:39:33 -06:00
Hayden
973cd5ab02 chore(l10n): New Crowdin updates (#6487) 2025-11-02 20:08:02 +01:00
Hayden
ac355c1071 chore(l10n): New Crowdin updates (#6486) 2025-11-02 01:07:56 -05:00
github-actions[bot]
3a617cd3c3 chore(l10n): Crowdin locale sync (#6485)
Co-authored-by: GitHub Action <action@github.com>
2025-11-01 23:05:26 -05:00
Hayden
3c874c2f85 chore(l10n): New Crowdin updates (#6478) 2025-11-01 20:11:17 +00:00
renovate[bot]
fb3be73163 chore(deps): update dependency types-python-slugify to v8 (#6480)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-01 20:00:36 +00:00
renovate[bot]
14b783852e fix(deps): update dependency tzdata to v2025 (#6481)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-01 19:49:51 +00:00
Michael Genson
75616d66b8 dev: Migrate to uv (#6470) 2025-11-01 14:36:40 -05:00
github-actions[bot]
01713b0416 docs(auto): Update image tag, for release v3.4.0 (#6471)
Co-authored-by: michael-genson <71845777+michael-genson@users.noreply.github.com>
2025-10-31 19:29:05 +00:00
Hayden
123a8b99f8 chore(l10n): New Crowdin updates (#6469) 2025-10-31 19:15:33 +00:00
renovate[bot]
6732fcd696 chore(deps): update dependency fastapi to v0.120.3 (#6465)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-31 11:08:41 -05:00
Hayden
5fcbfbf361 chore(l10n): New Crowdin updates (#6464) 2025-10-31 01:06:46 +05:45
Hayden
1318998bc9 chore(l10n): New Crowdin updates (#6462) 2025-10-30 12:59:57 +05:45
renovate[bot]
0947212271 chore(deps): update dependency fastapi to v0.120.2 (#6457) 2025-10-29 14:39:33 +00:00
renovate[bot]
92ac5c6253 chore(deps): update node.js to v24 (#6451) 2025-10-29 09:27:00 -05:00
renovate[bot]
5f96f4b47f chore(deps): update dependency fastapi to v0.120.1 (#6450)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-29 08:49:32 -05:00
renovate[bot]
dbcd430425 chore(deps): update dependency alembic to v1.17.1 (#6456)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-29 04:52:13 +00:00
renovate[bot]
4c9164594b chore(deps): update dependency python-dotenv to v1.2.1 (#6442)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-28 23:39:37 -05:00
renovate[bot]
e5a13f8b43 chore(deps): update dependency ingredient-parser-nlp to v2.4.0 (#6448)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-29 01:34:43 +00:00
github-actions[bot]
726ad10c7e chore(auto): Update pre-commit hooks (#6445)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
2025-10-29 01:22:51 +00:00
Hayden
df53310f2e chore(l10n): New Crowdin updates (#6455) 2025-10-28 22:12:48 +05:45
Hayden
82bf5c1bae chore(l10n): New Crowdin updates (#6446) 2025-10-28 10:32:51 +05:45
Hayden
c70a63f0ff chore(l10n): New Crowdin updates (#6444) 2025-10-27 12:16:52 +05:45
Hayden
14bfa6bcae chore(l10n): New Crowdin updates (#6441) 2025-10-26 09:52:59 -05:00
github-actions[bot]
adbafef157 chore(l10n): Crowdin locale sync (#6440)
Co-authored-by: GitHub Action <action@github.com>
2025-10-26 04:06:16 +00:00
Hayden
62d52f53e4 chore(l10n): New Crowdin updates (#6439) 2025-10-25 22:55:47 -05:00
Florian Fischer
4370319fec fix: Food seed only works for American English (#6204) (#6436)
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2025-10-25 12:40:02 -05:00
Hayden
15908d190d chore(l10n): New Crowdin updates (#6435) 2025-10-25 10:07:21 -05:00
Hayden
fcb909e072 chore(l10n): New Crowdin updates (#6434) 2025-10-25 01:50:15 +00:00
Aurelien
8e532af4d9 fix: Heart and Ranking Stars overlap each other (#6359)
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2025-10-24 17:35:07 -05:00
Richard vL
831cb6dd17 fix: Changed sorting icons (#6354)
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2025-10-24 21:51:11 +00:00
Michael Genson
089bb24c0f fix: Make docs:gen consistent regardless of timestamp (again) (#6432) 2025-10-24 16:34:44 -05:00
Fernando Muñoz Paredes
107dfc34de fix: dash slug names (#5709)
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2025-10-24 16:01:55 -05:00
renovate[bot]
144d4caea6 chore(deps): update dependency orjson to v3.11.4 (#6431)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-24 14:02:45 -05:00
renovate[bot]
b3db81b9a4 chore(deps): update dependency openai to v2.6.1 (#6429)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-24 18:29:53 +00:00
renovate[bot]
dc2bbdc494 fix(deps): update dependency fastapi to ^0.120.0 (#6426)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-24 13:17:47 -05:00
Hayden
8f17a08923 chore(l10n): New Crowdin updates (#6396) 2025-10-24 15:44:12 +00:00
renovate[bot]
f6209bff54 chore(deps): update node.js to 23c24e8 (#6424)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-24 15:31:16 +00:00
Michael Genson
33865285d1 fix: Use crossorigin: "use-credentials" with PWA manifest (#6430) 2025-10-24 10:20:04 -05:00
renovate[bot]
e226b9b1d5 fix(deps): update dependency vite to v7 [security] (#6412)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-24 14:55:04 +00:00
miah
201c63d1e4 feat: Improve shopping list label sections (#6345)
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2025-10-24 09:43:55 -05:00
renovate[bot]
a242f567ad chore(deps): update dependency ruff to v0.14.2 (#6425)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-23 23:08:29 -05:00
renovate[bot]
67ead2e8a1 chore(deps): update node.js to a2a7dcc (#6422)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-22 13:54:33 +00:00
renovate[bot]
7b273b77e2 chore(deps): update node.js to 58644f2 (#6418)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-22 08:42:55 -05:00
renovate[bot]
b4cd095360 chore(deps): update dependency pylint to v4.0.2 (#6409)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-21 18:22:02 +00:00
renovate[bot]
a9bb27c782 chore(deps): update dependency fastapi to v0.119.1 (#6408)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-21 13:08:10 -05:00
renovate[bot]
9df1523911 fix(deps): update dependency uvicorn to ^0.38.0 (#6400)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-21 12:47:15 -05:00
renovate[bot]
0c8a1ae608 chore(deps): update dependency openai to v2.6.0 (#6398)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-21 17:26:57 +00:00
renovate[bot]
7d54404bf0 chore(deps): update dependency ruff to v0.14.1 (#6397)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-21 12:04:13 -05:00
github-actions[bot]
8bbe70d245 chore(auto): Update pre-commit hooks (#6407)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
2025-10-21 16:16:07 +00:00
renovate[bot]
6c87f7fe33 chore(deps): update dependency pydantic to v2.12.3 (#6377)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-21 11:04:10 -05:00
miah
7e168eb75b feat: Support User-Level Default Activities (#5125) 2025-10-15 21:30:08 -05:00
Hayden
64d481b4fc chore(l10n): New Crowdin updates (#6395) 2025-10-15 21:08:22 +00:00
renovate[bot]
a9926557bc fix(deps): update dependency pillow to v12 (#6394)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-15 15:55:25 -05:00
renovate[bot]
2a908c0dd2 chore(deps): update dependency coverage to v7.11.0 (#6392) 2025-10-15 14:50:55 -05:00
renovate[bot]
c64a0dc769 chore(deps): update dependency mkdocs-material to v9.6.22 (#6391) 2025-10-15 10:46:58 -05:00
renovate[bot]
7ce9c35ef5 chore(deps): update dependency pylint to v4.0.1 (#6389) 2025-10-15 13:17:11 +00:00
Hayden
0acca2021d chore(l10n): New Crowdin updates (#6388) 2025-10-15 08:05:19 -05:00
Michael Genson
5de0b48aa9 fix: Upgrade Pydantic and remove manual Postgres URL parsing (#6385) 2025-10-14 15:52:50 -05:00
Hayden
ffe199c083 chore(l10n): New Crowdin updates (#6384) 2025-10-14 20:25:34 +00:00
Michael Genson
215a18be42 fix: Check x-forwarded-proto header when determining auth cookie samesite attribute (#6383) 2025-10-14 12:38:03 -05:00
github-actions[bot]
a1b065e5d1 chore(auto): Update pre-commit hooks (#6370)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
2025-10-14 16:22:22 +00:00
Hayden
d660d89a1b chore(l10n): New Crowdin updates (#6381) 2025-10-14 10:22:03 -05:00
Hayden
ade1f797a9 chore(l10n): New Crowdin updates (#6376) 2025-10-13 19:45:53 +00:00
Ritoban Dutta
192872b9ec fix: Change 'Units' to 'Unit' in shopping list item editor (#6372) 2025-10-13 17:41:29 +00:00
renovate[bot]
25ebcb1a05 chore(deps): update dependency pylint to v4 (#6366)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-13 15:21:26 +00:00
Hayden
89d95ca5e1 chore(l10n): New Crowdin updates (#6371) 2025-10-13 10:09:53 -05:00
Hayden
b705652af3 chore(l10n): New Crowdin updates (#6367) 2025-10-12 14:28:54 -05:00
github-actions[bot]
b0c78de2da chore(l10n): Crowdin locale sync (#6364)
Co-authored-by: GitHub Action <action@github.com>
2025-10-12 04:15:09 +00:00
renovate[bot]
c4b1f9fd01 fix(deps): update dependency fastapi to ^0.119.0 (#6362)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-11 23:01:45 -05:00
renovate[bot]
2b0d8227f4 chore(deps): update dependency alembic to v1.17.0 (#6361)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-11 19:14:31 +00:00
Hayden
42517e9f8a chore(l10n): New Crowdin updates (#6357) 2025-10-11 14:01:21 -05:00
renovate[bot]
37c97c8aba chore(deps): update dependency python-ldap to v3.4.5 [security] (#6356)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-10 22:52:36 -05:00
Hayden
64d36a2608 chore(l10n): New Crowdin updates (#6353) 2025-10-10 12:49:24 -05:00
renovate[bot]
563defe074 chore(deps): update dependency sqlalchemy to v2.0.44 (#6352)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-10 12:14:59 -05:00
renovate[bot]
f5ffb760d3 chore(deps): update dependency psycopg2-binary to v2.9.11 (#6351)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-10 16:34:05 +00:00
renovate[bot]
3118a0c0cf fix(deps): update dependency aiofiles to v25 (#6344)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-10 11:19:52 -05:00
renovate[bot]
444beb68f9 chore(deps): update dependency rich to v14.2.0 (#6341)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-10 16:03:34 +00:00
renovate[bot]
49a97ebc0e chore(deps): update dependency fastapi to v0.118.3 (#6336)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-10 10:46:29 -05:00
renovate[bot]
6f682b742e chore(deps): update dependency pydantic to v2.12.0 (#6310)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-10 10:24:12 -05:00
Hayden
32d4d22bb8 chore(l10n): New Crowdin updates (#6347)
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2025-10-10 05:33:04 +00:00
Dallin Miner
71d86489f4 feat: Add new migration for DVO Cook'n (#5085)
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2025-10-10 00:22:51 -05:00
github-actions[bot]
a95eaf3d2e docs(auto): Update image tag, for release v3.3.2 (#6346)
Co-authored-by: michael-genson <71845777+michael-genson@users.noreply.github.com>
2025-10-10 04:14:06 +00:00
renovate[bot]
414af989e7 chore(deps): update dependency openai to v2.3.0 (#6330)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-09 23:02:07 -05:00
Michael Genson
b7b191a5ee fix: Truncate Long Passwords (>72 bytes) (#6335) 2025-10-09 23:46:06 +00:00
Hayden
5620370ade chore(l10n): New Crowdin updates (#6320) 2025-10-09 16:30:31 +00:00
renovate[bot]
d333d47e34 chore(deps): update dependency ruff to ^0.14.0 (#6334)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-07 18:49:52 +00:00
Brian Choromanski
b34b1c9be3 feat: Added url to current version release (#6308) 2025-10-07 09:31:55 +00:00
Michael Genson
8c5010148d fix: Translate log-out string (#6332) 2025-10-06 17:14:51 -05:00
Michael Genson
a17b0e329e fix: No Redirect On Valid Token (#6327) 2025-10-06 13:02:25 -05:00
Arsène Reymond
8ab69a7d7a fix: Remove unused next-auth dependency (#6328) 2025-10-06 12:43:13 -05:00
github-actions[bot]
f4ecf74b91 chore(auto): Update pre-commit hooks (#6324)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
2025-10-06 15:09:13 +00:00
renovate[bot]
ba9d816f64 chore(deps): update dependency pylint to v3.3.9 (#6321)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-06 09:57:17 -05:00
Michael Genson
6895b49543 fix: Re-write Nuxt auth backend and get rid of sidebase auth (#6322) 2025-10-05 20:43:38 -05:00
github-actions[bot]
fffe7b05e0 chore(l10n): Crowdin locale sync (#6318)
Co-authored-by: GitHub Action <action@github.com>
2025-10-05 02:56:21 +00:00
Hayden
1271e0e49b chore(l10n): New Crowdin updates (#6317) 2025-10-04 21:45:57 -05:00
Hayden
478054b724 chore(l10n): New Crowdin updates (#6313) 2025-10-04 11:30:21 -05:00
Hayden
57d259a7a3 chore(l10n): New Crowdin updates (#6309) 2025-10-04 21:34:09 +10:00
Hayden
a4a6d4dfb1 chore(l10n): New Crowdin updates (#6273) 2025-10-03 17:24:33 +00:00
github-actions[bot]
f7b4f79312 chore(l10n): Crowdin locale sync (#6268)
Co-authored-by: GitHub Action <action@github.com>
2025-10-03 17:03:14 +00:00
renovate[bot]
434d312f7c chore(deps): update dependency openai to v2.1.0 (#6302)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-03 11:50:06 -05:00
renovate[bot]
bda460b49e chore(deps): update dependency ruff to v0.13.3 (#6301)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-03 16:17:53 +00:00
renovate[bot]
d3e1c48655 chore(deps): update dependency authlib to v1.6.5 (#6299)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-03 11:05:13 -05:00
github-actions[bot]
b2a3430f2c docs(auto): Update image tag, for release v3.3.1 (#6300)
Co-authored-by: michael-genson <71845777+michael-genson@users.noreply.github.com>
2025-10-02 18:26:51 +00:00
renovate[bot]
3d792d9333 chore(deps): update dependency openai to v2.0.1 (#6296)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-02 17:22:38 +00:00
renovate[bot]
2e028d7e12 chore(deps): update node.js to 2bb201f (#6295)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-02 12:11:00 -05:00
Brian Choromanski
c63932e8b3 fix: Updated pwa orientation to any (#6298) 2025-10-01 20:51:15 -05:00
renovate[bot]
3ba2227bc7 chore(deps): update dependency mkdocs-material to v9.6.21 (#6293)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-01 04:45:41 +00:00
renovate[bot]
67af391c6b chore(deps): update dependency pillow-heif to v1.1.1 (#6291)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-30 23:33:14 -05:00
renovate[bot]
70ae0dac25 chore(deps): update node.js to d367fd3 (#6292)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-01 03:19:44 +00:00
renovate[bot]
e15a9c3c9f chore(deps): update dependency apprise to v1.9.5 (#6290)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-30 22:07:31 -05:00
renovate[bot]
9d40d60b3b fix(deps): update dependency openai to v2 (#6294)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-30 21:40:14 -05:00
renovate[bot]
e2760f7247 chore(deps): update dependency tzdata to v2025 (#6287) 2025-09-29 17:18:19 -05:00
Michael Genson
83bf21b947 fix: Restore recipe meta for non-logged-in users (#6286) 2025-09-29 10:33:18 -05:00
Michael Genson
d1824affff fix: Default to "0" qty when creating ingredients everywhere (#6285) 2025-09-29 10:19:37 -05:00
renovate[bot]
4827e1092f chore(deps): update dependency beautifulsoup4 to v4.14.2 (#6283)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-29 09:49:54 -05:00
github-actions[bot]
7db767b075 chore(auto): Update pre-commit hooks (#6282)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
2025-09-29 14:36:01 +00:00
renovate[bot]
afdd0b15dc fix(deps): update dependency fastapi to ^0.118.0 (#6281)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-29 09:24:37 -05:00
Michael Genson
37c9166a77 docs: Update TOKEN_TIME docs to include max (#6279) 2025-09-28 22:05:15 -05:00
github-actions[bot]
ba0b9d4cd9 docs(auto): Update image tag, for release v3.3.0 (#6267)
Co-authored-by: michael-genson <71845777+michael-genson@users.noreply.github.com>
2025-09-28 01:13:15 +00:00
renovate[bot]
9fd99a86b8 chore(deps): update dependency beautifulsoup4 to v4.14.0 (#6260)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-27 20:02:31 -05:00
Michael Genson
824603a578 fix: Stores Not Populating Sometimes (#6266) 2025-09-27 19:17:08 -05:00
Hayden
e3f120c680 chore(l10n): New Crowdin updates (#6264) 2025-09-27 16:23:01 -05:00
Michael Genson
d16a10440d chore: Add Stricter Frontend Formatting (#6262) 2025-09-27 13:57:53 -05:00
Michael Genson
ecdf7de386 chore: Upgrade Node and Nuxt (#6240) 2025-09-27 12:26:02 -05:00
Hayden
0e10ed8461 chore(l10n): New Crowdin updates (#6257) 2025-09-27 15:50:58 +02:00
Michael Genson
1684169e7b fix: Check for non-hid properties when injetcing SPA meta (#6256) 2025-09-26 16:07:13 -05:00
Hayden
3d9f2bef82 chore(l10n): New Crowdin updates (#6254) 2025-09-26 17:21:43 +00:00
Michael Genson
a722b05fb5 fix: Make Ingredient Parser Dialog Use Full Space (#6253) 2025-09-26 11:45:41 -05:00
Michael Genson
187e83eeb5 fix: Misc Issues with Ingredient Parser (#6250) 2025-09-26 11:25:15 -05:00
renovate[bot]
f3cc51190c fix(deps): update dependency bcrypt to v5 (#6246)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-26 15:05:42 +00:00
renovate[bot]
33aedd6904 chore(deps): update dependency pyyaml to v6.0.3 (#6245)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-26 09:52:20 -05:00
renovate[bot]
ea9a25a891 chore(deps): update dependency pydantic-settings to v2.11.0 (#6233)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-26 09:30:37 -05:00
Hayden
3a237258a1 chore(l10n): New Crowdin updates (#6241) 2025-09-26 06:00:25 +00:00
Michael Genson
d29de8e679 feat: Simplify Default Layout Logic and Add Household.name To Cookbooks API (#6243) 2025-09-25 18:01:10 -05:00
Michael Genson
79367872ac fix: Remove Double Cookie Refresh (#6242) 2025-09-25 14:55:07 -05:00
renovate[bot]
f058dec27b chore(deps): update dependency lxml to v6.0.2 (#6219)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-25 16:14:49 +00:00
renovate[bot]
c87acf54db chore(deps): update dependency coverage to v7.10.7 (#6216)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-25 16:02:08 +00:00
renovate[bot]
84c144e40f fix(deps): update dependency fastapi to ^0.117.0 (#6205)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-25 15:49:22 +00:00
renovate[bot]
474cf299cd fix(deps): update dependency uvicorn to ^0.37.0 (#6200)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-25 15:32:35 +00:00
renovate[bot]
1cababc5a5 chore(deps): update dependency ruff to v0.13.2 (#6239)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-25 15:14:28 +00:00
renovate[bot]
8705bcf195 chore(deps): update dependency openai to v1.109.1 (#6196)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-25 14:59:21 +00:00
Hayden
bdb511c1c8 chore(l10n): New Crowdin updates (#6237) 2025-09-25 09:44:03 -05:00
Carter
c9f3f65f36 fix: Remove constraint on unhashed password being 'LDAP' (#6236) 2025-09-24 23:32:28 -05:00
Hayden
3ec55f0e48 chore(l10n): New Crowdin updates (#6234) 2025-09-24 16:33:34 +00:00
Patrick Lehner (he/him)
7d43c7c7a2 docs: Improve formatting in 'Automating Backups with n8n' community guide (#6221)
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2025-09-24 15:16:56 +00:00
Michael Genson
c710e9d3f5 fix: Enabled Using Mealie In iframe If Served Over HTTPS (#6128) 2025-09-24 09:58:17 -05:00
Hayden
0313e6b3b8 chore(l10n): New Crowdin updates (#6231) 2025-09-24 08:38:03 +02:00
Michael Genson
24b890136d fix: Workflow Issues with Deleting Ingredient In Parser (#6230) 2025-09-23 17:36:49 -05:00
Patrick Lehner (he/him)
4b67554b36 docs: Update navigation instructions for (admin) settings pages (#6220) 2025-09-23 22:14:19 +00:00
Michael Genson
679a42a7cc feat: Ingredient Parser Enhancements (#6228) 2025-09-23 17:03:35 -05:00
Hayden
4dfc32a314 chore(l10n): New Crowdin updates (#6225) 2025-09-23 21:06:34 +00:00
Michael Genson
96acc6fc4b fix: Remove explicit timeout from OpenAI image API Call (#6227) 2025-09-23 12:39:23 -05:00
Hayden
249c9e8f23 chore(l10n): New Crowdin updates (#6224) 2025-09-23 03:18:17 +00:00
Hayden
7413185300 chore(l10n): New Crowdin updates (#6218) 2025-09-22 15:35:33 +00:00
github-actions[bot]
6168ea0150 chore(auto): Update pre-commit hooks (#6222)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
2025-09-22 15:21:36 +00:00
Patrick Lehner (he/him)
f7ba7862d4 docs: Fix formatting in some community guides (#6223) 2025-09-22 10:11:15 -05:00
Michael Genson
cec6d2c5ec fix: Actually Fix Token Time (#6215) 2025-09-21 19:51:19 -05:00
renovate[bot]
b27977fbdf chore(deps): update dependency mypy to v1.18.2 (#6193)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-21 16:14:29 +00:00
github-actions[bot]
2a60b330ac chore(l10n): Crowdin locale sync (#6206)
Co-authored-by: GitHub Action <action@github.com>
2025-09-21 16:03:16 +00:00
Hayden
72ec5bd13e chore(l10n): New Crowdin updates (#6213) 2025-09-21 10:53:10 -05:00
Hayden
bb45cbb0a2 chore(l10n): New Crowdin updates (#6176) 2025-09-21 05:12:32 +00:00
Michael Genson
c929a03b57 feat: Upgraded Ingredient Parsing Workflow (#6151) 2025-09-21 04:37:14 +00:00
Michael Genson
9e5a54477f docs: Add Info Regarding Theme Settings Config (#6198) 2025-09-20 12:58:59 -05:00
Arsène Reymond
078b4563b3 fix: multiple RecipeRating backend calls (#6194)
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2025-09-20 15:27:17 +00:00
Michael Genson
a9090bc2bd feat: Manually calculate OpenAI Parsing Confidence (#6141) 2025-09-19 23:09:34 -05:00
renovate[bot]
cb8c1423c5 chore(deps): update dependency ruff to v0.13.1 (#6191)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-19 16:35:33 -05:00
Arsène Reymond
f6a1b5f4eb fix: ingredient linker and instructions titles (#6146)
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2025-09-19 17:38:29 +00:00
Michael Genson
7623b72c4c fix: Print Button Does Nothing (#6178) 2025-09-18 12:48:36 -05:00
renovate[bot]
17d40e34df fix(deps): update dependency openai to v1.108.0 (#6185)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-17 22:14:45 -05:00
renovate[bot]
bade6968a3 fix(deps): update dependency authlib to v1.6.4 (#6182)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-17 14:50:42 -05:00
renovate[bot]
92a142125f fix(deps): update dependency fastapi to v0.116.2 (#6181)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-17 00:19:17 +00:00
renovate[bot]
d39c2a2874 chore(deps): update dependency mkdocs-material to v9.6.20 (#6179)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-17 00:07:10 +00:00
renovate[bot]
324de7fb10 chore(deps): update dependency pytest-asyncio to v1.2.0 (#6162)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-16 23:55:05 +00:00
renovate[bot]
c4544ea042 chore(deps): update dependency mypy to v1.18.1 (#6161)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-16 18:41:31 -05:00
renovate[bot]
a5dda74812 fix(deps): update dependency pydantic to v2.11.9 (#6159)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-16 23:15:24 +00:00
renovate[bot]
fd7e58e40c fix(deps): update dependency openai to v1.107.3 (#6147)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-16 23:01:40 +00:00
renovate[bot]
5e42841a7d chore(deps): update node.js to abcf9c9 (#6138)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-16 22:45:31 +00:00
github-actions[bot]
ae9306b8c2 chore(auto): Update pre-commit hooks (#6174)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
2025-09-16 22:34:13 +00:00
renovate[bot]
7f0c5cbcc4 chore(deps): update dependency ruff to ^0.13.0 (#6148)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-16 17:23:32 -05:00
github-actions[bot]
a7d8bcc6ba docs(auto): Update image tag, for release v3.2.1 (#6172)
Co-authored-by: michael-genson <71845777+michael-genson@users.noreply.github.com>
2025-09-15 19:45:07 +00:00
Hayden
b94ef78a12 chore(l10n): New Crowdin updates (#6145) 2025-09-15 04:19:55 +00:00
Michael Genson
db2c14093d fix: Explorer Page State Not Working On Hitting Back (#6171) 2025-09-14 22:28:17 -05:00
github-actions[bot]
9a0525c3a0 docs(auto): Update image tag, for release v3.2.0 (#6164)
Co-authored-by: michael-genson <71845777+michael-genson@users.noreply.github.com>
2025-09-13 22:05:25 +00:00
renovate[bot]
a2e5826da0 fix(deps): update dependency ingredient-parser-nlp to v2.3.0 (#6163)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-13 16:54:11 -05:00
Michael Genson
d4f4ba0c8d fix: Ingredient Parser Drops Units Sometimes (#6150) 2025-09-13 15:49:08 -05:00
Michael Genson
8cd5835dd8 fix: Can't Edit Timeline Events (#6160) 2025-09-13 15:36:18 -05:00
renovate[bot]
7aa131b326 fix(deps): update dependency axios to v1.12.0 [security] (#6158)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-13 15:02:46 -05:00
Sören
af264bd288 fix: add breaks option to markdown rendering, to get old linebreak behaviour (#6156) 2025-09-13 17:29:23 +00:00
Hayden
72388e8bcf chore(l10n): New Crowdin updates (#6143) 2025-09-10 10:28:17 +02:00
Helge
c0afef46d6 docs: fix typo starting-dev-server.md (#6142) 2025-09-09 18:43:48 +00:00
Arsène Reymond
f90665cce9 feat: Improve first time setup ux (#6106) 2025-09-09 12:21:58 -05:00
renovate[bot]
942ac741cd fix(deps): update dependency next-auth to ~4.24.0 [security] (#6133)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-09 14:43:48 +00:00
Hayden
1d3a7e8d62 chore(l10n): New Crowdin updates (#6139) 2025-09-09 12:43:16 +00:00
renovate[bot]
5e85fc409e fix(deps): update dependency openai to v1.107.0 (#6129)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-09 08:35:08 +00:00
Michael Genson
2c20e96ede fix: Refactor and Optimize Explore Page Search (#6070)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2025-09-09 08:16:37 +00:00
renovate[bot]
608fc39747 chore(deps): update node.js to f3e50c7 (#6136)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-09 07:51:17 +00:00
renovate[bot]
ed2f40cd6a fix(deps): update dependency vite to v6.2.7 [security] (#6132)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2025-09-09 07:37:46 +00:00
Michael Genson
a080cdb432 chore: Update GitHub Configs (#6135) 2025-09-09 07:21:06 +00:00
renovate[bot]
83101e3ed5 fix(deps): update dependency rapidfuzz to v3.14.1 (#6137)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-09 03:31:57 +00:00
renovate[bot]
5d90997ace chore(config): migrate renovate config (#6134)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-08 20:56:09 -05:00
Kuchenpirat
c78c6cf926 dev: list availlable frontend updates on renovate dependency dashboard (#6130) 2025-09-08 21:19:24 +00:00
Michael Genson
e26191d116 fix: Upgrade Vuetify, fix Dev Dependencies, and fix Migration Tree View (#6127) 2025-09-08 22:49:28 +02:00
Xavier L.
3774f68393 feat: Add option to switch sqlite to WAL (#6050)
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2025-09-08 11:23:37 -05:00
Nico Hirsch
c46c412bf5 fix: Don't open the sidebar drawer by default on medium screens (#6107) 2025-09-08 14:58:39 +00:00
github-actions[bot]
aa9e61a16f chore(auto): Update pre-commit hooks (#6125)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
2025-09-08 10:24:15 +00:00
Michael Genson
b2f8d63f33 fix: Missing Locale Dates (#6116) 2025-09-08 09:47:37 +00:00
Hayden
72b47a1103 chore(l10n): New Crowdin updates (#6123) 2025-09-08 02:50:03 +00:00
renovate[bot]
29e150d547 chore(deps): update dependency mkdocs-material to v9.6.19 (#6121)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-07 21:39:06 -05:00
Zach Wolf
e9ae6d86a4 docs: link to GitHub Release Notes (#6122)
Co-authored-by: TheMerinoWolf <zwolf@zwolf-mbp-16-m4.localdomain>
2025-09-08 02:08:43 +00:00
Hayden
f799938373 chore(l10n): New Crowdin updates (#6113) 2025-09-07 19:02:20 +00:00
github-actions[bot]
e5fff4ec5c chore: automatic locale sync (#6117)
Co-authored-by: GitHub Action <action@github.com>
2025-09-07 18:51:21 +00:00
Carl
192e531c1f Docs: Fix install grammar (#6118)
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2025-09-07 18:31:32 +00:00
Michael Genson
45e710ee72 fix: Context Menu Dialogs Not Working (#6108) 2025-09-05 17:41:43 +02:00
Hayden
be579ed664 chore(l10n): New Crowdin updates (#6105) 2025-09-04 22:37:57 -05:00
renovate[bot]
fe953896f8 fix(deps): update dependency openai to v1.106.1 (#6103)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-04 22:27:09 +00:00
renovate[bot]
decf7cb307 chore(deps): update dependency ruff to v0.12.12 (#6102)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-04 17:15:17 -05:00
Arsène Reymond
d396a8fdc2 fix: Cookboks page padding (#6097) 2025-09-04 19:59:54 +00:00
renovate[bot]
a3ef49f559 chore(deps): update dependency pytest to v8.4.2 (#6101)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-04 21:48:31 +02:00
Michael Genson
41e8458389 fix: Optimize Recipe Context Menu (#6071) 2025-09-04 16:19:47 +00:00
Hayden
18dc2fc6a8 chore(l10n): New Crowdin updates (#6100) 2025-09-04 18:08:58 +02:00
renovate[bot]
6355b3c8db fix(deps): update dependency openai to v1.106.0 (#6099)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-04 17:17:40 +02:00
renovate[bot]
3ac8af138f fix(deps): update dependency openai to v1.105.0 (#6094)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-04 13:35:58 +02:00
renovate[bot]
2b3803fb2e chore(deps): update node.js to d22c0ce (#6096)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-04 08:17:06 +02:00
renovate[bot]
6a80e70486 chore(deps): update node.js to bfee10f (#6095)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-03 22:09:22 +00:00
Hayden
f1dc854770 chore(l10n): New Crowdin updates (#6093) 2025-09-03 15:18:24 +00:00
Kuchenpirat
581aa929bd feat: consolidate settings gui (#6043)
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2025-09-03 15:07:06 +00:00
Michael Genson
461e51bd22 fix: Optimize Recipe Favorites/Ratings (#6075) 2025-09-03 16:56:38 +02:00
Patrick Lehner (he/him)
1cdf43c599 fix: Shopping list top buttons layout (margin and row wrapping) (#6091) 2025-09-03 09:26:25 +00:00
Arsène Reymond
6bfbc7ca0a fix: set touchless on AppSidebar (#6092) 2025-09-03 09:11:36 +00:00
Michael Genson
608dbaa4c1 fix: Incorrect Usage of $vuetify.display (#6066) 2025-09-03 08:36:42 +00:00
renovate[bot]
89c1e007cb fix(deps): update dependency openai to v1.104.2 (#6086)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-03 08:27:44 +02:00
Hayden
fb5db583d2 chore(l10n): New Crowdin updates (#6088) 2025-09-03 06:09:31 +00:00
Michael Genson
bef3045e65 fix: Make Frontend Respect TOKEN_TIME (#6089) 2025-09-03 05:56:54 +00:00
Michael Genson
ff958a5015 fix: Fix PWA (#6090) 2025-09-03 07:44:52 +02:00
Hayden
37789c342e chore(l10n): New Crowdin updates (#6080)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2025-09-02 16:46:31 +00:00
renovate[bot]
b6b8bea925 fix(deps): update dependency openai to v1.103.0 (#6083)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-02 18:33:01 +02:00
Patrick Lehner (he/him)
60834178ba docs: Fix list formatting on 'Features' docs page (#6082) 2025-09-02 10:16:36 -05:00
github-actions[bot]
0375a0bd5a chore(auto): Update pre-commit hooks (#6077)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2025-09-01 15:54:52 +00:00
Patrick Lehner (he/him)
3361f9a7c3 fix: Fix RecipeLastMade dialog date picker being off by a day (#6079) 2025-09-01 10:44:30 -05:00
Hayden
0883ef05ab chore(l10n): New Crowdin updates (#6076) 2025-08-31 22:13:27 -05:00
Hayden
c4eb020a66 chore(l10n): New Crowdin updates (#6073) 2025-08-31 11:25:57 -05:00
github-actions[bot]
600f407b4f chore: automatic locale sync (#6069)
Co-authored-by: GitHub Action <action@github.com>
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2025-08-31 02:51:20 +00:00
Hayden
6f92a829d6 chore(l10n): New Crowdin updates (#6067) 2025-08-30 21:41:32 -05:00
Hayden
6b11ff5128 chore(l10n): New Crowdin updates (#6063) 2025-08-30 15:48:37 +00:00
renovate[bot]
29fdad1574 chore(deps): update dependency coverage to v7.10.6 (#6062)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-29 23:52:17 -05:00
Hayden
54b3df105c chore(l10n): New Crowdin updates (#6058) 2025-08-29 22:00:47 +00:00
Richard vL
9a3303b06c fix: re-ordering of cookbooks (#5975)
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2025-08-29 21:50:09 +00:00
Andrew Brock
c17accd82b fix: import from Paprika not importing some images (#5911)
Co-authored-by: brokeh <git@brocky.net>
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2025-08-29 21:39:37 +00:00
Felix Schneider
18f7e8d935 feat: group recipe ingredients by section titles (#5864)
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2025-08-29 21:25:25 +00:00
Xavier L.
6d2936cab6 fix: Handle missing OIDC groups claim (#6054) 2025-08-29 21:07:00 +00:00
renovate[bot]
cc2e33a254 chore(deps): update dependency ruff to v0.12.11 (#6056)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-28 17:03:16 +00:00
renovate[bot]
eee6f8113c fix(deps): update dependency alembic to v1.16.5 (#6048)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-28 09:42:40 +02:00
Hayden
bd10cb8cd8 chore(l10n): New Crowdin updates (#6049) 2025-08-28 07:24:34 +02:00
renovate[bot]
d03081c4e6 fix(deps): update dependency authlib to v1.6.3 (#6018)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-27 17:56:03 +00:00
renovate[bot]
64d865bf7e chore(deps): update dependency coverage to v7.10.5 (#6021)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-27 17:44:26 +00:00
renovate[bot]
27efda2772 fix(deps): update dependency rapidfuzz to v3.14.0 (#6044)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-27 19:33:05 +02:00
renovate[bot]
81986e63b8 fix(deps): update dependency beautifulsoup4 to v4.13.5 (#6026)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-27 17:46:07 +02:00
Michael Genson
42eef17cfb fix: Make String Cleaner More Robust (#6032) 2025-08-27 14:19:43 +00:00
renovate[bot]
1f724856b1 fix(deps): update dependency typing-extensions to v4.15.0 (#6035)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-27 16:06:53 +02:00
renovate[bot]
618ea06b7a fix(deps): update dependency orjson to v3.11.3 (#6041)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-27 14:52:29 +02:00
Hayden
ca2039ae35 chore(l10n): New Crowdin updates (#6034)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2025-08-27 10:47:56 +00:00
renovate[bot]
15ecab86d1 fix(deps): update dependency openai to v1.102.0 (#6042)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-27 12:36:20 +02:00
github-actions[bot]
aa164424d3 docs(auto): Update image tag, for release v3.1.2 (#6037)
Co-authored-by: michael-genson <71845777+michael-genson@users.noreply.github.com>
2025-08-25 18:25:01 +00:00
renovate[bot]
99acb349bd fix(deps): update dependency lxml to v6.0.1 (#6011)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-25 13:14:05 -05:00
Michael Genson
894162a669 fix: Remove Frontend Timeout (#6033) 2025-08-25 12:28:43 -05:00
Michael Genson
347af7d417 fix: Can't add first shopping list item to shopping list (#6013) 2025-08-25 11:53:36 -05:00
Michael Genson
cac1699aeb fix: Light Mode Using Dark Mode Background Color (#6014) 2025-08-25 13:34:00 +00:00
Hayden
d577966bfb chore(l10n): New Crowdin updates (#6017)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2025-08-25 11:21:11 +00:00
github-actions[bot]
c663efde09 chore(auto): Update pre-commit hooks (#6029)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2025-08-25 07:31:11 +00:00
Michael Genson
9e568a1182 fix: Simplify AutoForm and fix select (#6022)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2025-08-25 07:19:46 +00:00
github-actions[bot]
fc38ef2ba9 chore: automatic locale sync (#6024) 2025-08-25 06:46:24 +00:00
Michael Genson
323a8100db fix: Remove Temperature from OpenAI Integration (#6023) 2025-08-25 08:36:15 +02:00
DrDonoso
01d3d5d325 fix: theme dark/light are swapped (#6001)
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2025-08-22 18:27:57 +00:00
renovate[bot]
3f52c66f02 chore(deps): update dependency mkdocs-material to v9.6.18 (#6008)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-22 19:20:09 +02:00
Hayden
566f744220 chore(l10n): New Crowdin updates (#6009) 2025-08-22 17:33:12 +02:00
renovate[bot]
561b50ba45 chore(deps): update dependency ruff to v0.12.10 (#6004)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-22 11:21:46 +02:00
renovate[bot]
4228c9e753 fix(deps): update dependency openai to v1.101.0 (#6005)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-22 08:59:19 +02:00
Hayden
2a5c3f6457 chore(l10n): New Crowdin updates (#6006) 2025-08-22 08:30:41 +02:00
Hayden
389f8b4279 chore(l10n): New Crowdin updates (#5999) 2025-08-21 17:42:31 +02:00
Hayden
f2b71e981e chore(l10n): New Crowdin updates (#5995) 2025-08-20 08:05:17 +00:00
github-actions[bot]
ec7e3a5103 docs(auto): Update image tag, for release v3.1.1 (#5994)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2025-08-20 05:57:49 +00:00
eMerzh
6f0183cc4b feat: Allow env_nested config with __ (#5616) 2025-08-19 21:00:53 +00:00
renovate[bot]
12d38c89ea fix(deps): update dependency requests to v2.32.5 (#5987)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2025-08-19 12:38:30 -05:00
renovate[bot]
492c9a948d fix(deps): update dependency openai to v1.100.2 (#5993)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-19 19:23:24 +02:00
github-actions[bot]
a808c8a18b docs(auto): Update image tag, for release 3.1.0 (#5992)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2025-08-19 18:49:54 +02:00
Hayden
0c6483aefa chore(l10n): New Crowdin updates (#5991) 2025-08-19 18:21:45 +02:00
renovate[bot]
1568c33c37 fix(deps): update dependency openai to v1.100.1 (#5986)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-19 14:07:56 +02:00
Hayden
5d0cf8422b chore(l10n): New Crowdin updates (#5989) 2025-08-19 13:27:24 +02:00
tauhammerhead
d322abc1b4 fix: Update variable name in RecipeCard.vue to enable household ratings to appear on recipes (#5985)
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2025-08-18 19:55:48 +02:00
Michael Genson
c34180632b fix: Missing Items On Admin Pages (#5984) 2025-08-18 19:21:29 +02:00
Hayden
c74f016f66 chore(l10n): New Crowdin updates (#5982) 2025-08-18 13:07:38 +00:00
Felix Schneider
e11ee47109 feat: save default recipe ordering in local storage (#5826)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2025-08-18 12:35:12 +00:00
github-actions[bot]
a044ca2779 chore(auto): Update pre-commit hooks (#5981)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2025-08-18 11:35:41 +00:00
Hayden
f584fa33f4 chore(l10n): New Crowdin updates (#5979) 2025-08-18 13:25:23 +02:00
Hayden
4f33c3a44f chore(l10n): New Crowdin updates (#5965) 2025-08-17 07:52:13 +00:00
github-actions[bot]
394c271294 chore: automatic locale sync (#5969)
Co-authored-by: GitHub Action <action@github.com>
2025-08-17 07:13:48 +00:00
renovate[bot]
cb3eb59501 chore(deps): update dependency coverage to v7.10.4 (#5967)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-17 09:02:55 +02:00
Mario Džoić
c41a4a52ed fix: error when trying to change recipe image (#5771)
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2025-08-16 08:41:46 +00:00
Michael Genson
6cbc308d83 fix: Add Recipe From Another Household To Shopping List (#5892) 2025-08-16 08:05:50 +00:00
Hayden
db765b0693 chore(l10n): New Crowdin updates (#5964) 2025-08-16 09:55:13 +02:00
renovate[bot]
184262df17 chore(deps): update dependency mkdocs-material to v9.6.17 (#5962)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-15 19:10:34 +00:00
renovate[bot]
df10cf8211 fix(deps): update dependency ingredient-parser-nlp to v2.2.0 (#5963)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-15 18:58:47 +00:00
Hristo Kapanakov
c91d216fe9 feat: Allow using OIDC auth cache instead of session (#5746)
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2025-08-15 09:43:29 +00:00
Michael Genson
1c23d855ae fix: Remove Recipes From Cookbook API (#5899) 2025-08-15 08:44:45 +00:00
Hayden
fd966e5843 chore(l10n): New Crowdin updates (#5958) 2025-08-15 00:01:31 +00:00
renovate[bot]
f9f1285cb3 chore(deps): update dependency ruff to v0.12.9 (#5956)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-14 12:39:52 -05:00
renovate[bot]
dbf1202f69 chore(deps): update node.js to 572a90d (#5955)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-14 12:21:14 -05:00
renovate[bot]
b3f12ee7ac fix(deps): update dependency orjson to v3.11.2 (#5941)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-14 15:39:50 +00:00
renovate[bot]
556dc699c7 chore(deps): update node.js to 08535d6 (#5952)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-14 10:27:47 -05:00
Michael Genson
481ce92d84 fix: CONTAINS ALL doesn't contain all (#5900) 2025-08-14 12:21:40 +00:00
Michael Genson
1df26aeb99 fix: Add Hint Text To Apprise URL (#5895) 2025-08-14 12:10:44 +00:00
Hayden
5c4694c3d8 chore(l10n): New Crowdin updates (#5953) 2025-08-14 11:50:10 +00:00
Michael Genson
9b2b8091ac fix: Auto Form Select (#5919)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2025-08-14 11:24:21 +00:00
Michael Genson
ad60b4445b fix: User Registration Form Validation and Other Setup Wizard Things (#5920) 2025-08-14 07:26:24 +00:00
Hayden
040fb48807 chore(l10n): New Crowdin updates (#5943)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2025-08-14 05:44:38 +00:00
Michael Genson
f8ce5b3afb feat: Pin Docker Digest And Add to Renovate (#5949) 2025-08-14 05:33:46 +00:00
Michael Genson
31530a68e1 feat: Remove Not-Sort-By-Label and Refactor Shopping List Page (#5866)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2025-08-14 07:23:11 +02:00
Denis Danilov
51ca65e3c3 fix: change libldap-2.5 to libldap2 in docker (#5946) 2025-08-13 21:57:28 +00:00
renovate[bot]
19eae21b00 fix(deps): update dependency openai to v1.99.9 (#5939)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-13 16:20:42 +02:00
renovate[bot]
34e4480f08 fix(deps): update dependency tzdata to v2025 (#5942)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-12 18:11:02 +00:00
Hayden
ad875c8fd5 chore(l10n): New Crowdin updates (#5938) 2025-08-12 11:44:55 +02:00
renovate[bot]
6ec7baa2f1 fix(deps): update dependency openai to v1.99.8 (#5935)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-11 19:24:08 -05:00
Hayden
f39929a905 chore(l10n): New Crowdin updates (#5936) 2025-08-11 21:39:08 +00:00
Ross
4b69e5b33a feat: Button to select recipe cover image when creating recipe from multiple images (#5647)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
Co-authored-by: Kuchenpirat <jojow@gmx.net>
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2025-08-11 21:17:28 +00:00
renovate[bot]
4c2b559e73 chore(deps): update dependency coverage to v7.10.3 (#5932)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-11 19:19:24 +00:00
renovate[bot]
178e038c79 fix(deps): update dependency sqlalchemy to v2.0.43 (#5934)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-11 19:07:20 +00:00
Skye Samuels
0b3fe2c8da fix: add confidence calculation for BruteForceParser (#5903)
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2025-08-11 18:56:35 +00:00
renovate[bot]
d4e62c5ab6 fix(deps): update dependency openai to v1.99.7 (#5924)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-11 18:40:48 +00:00
Hayden
0f591fd273 chore(l10n): New Crowdin updates (#5926) 2025-08-11 18:30:08 +00:00
renovate[bot]
d271252ecc fix(deps): update dependency recipe-scrapers to v15.9.0 (#5925) 2025-08-11 13:18:48 -05:00
github-actions[bot]
4d211e236d chore: automatic locale sync (#5929) 2025-08-11 17:36:43 +00:00
github-actions[bot]
7926812136 chore(auto): Update pre-commit hooks (#5933)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
2025-08-11 16:39:36 +00:00
Richard vL
f37d8e488f fix: Added copy icons to first-login message (#5716)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2025-08-11 16:27:10 +00:00
renovate[bot]
56df696546 chore(deps): update dependency pre-commit to v4.3.0 (#5928) 2025-08-10 01:54:37 +00:00
Craig Matear
d3436a5ca8 feat: Add label notifier (#5879)
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2025-08-10 01:43:23 +00:00
renovate[bot]
9e46c57e78 chore(deps): update dependency pylint to v3.3.8 (#5923)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-09 16:17:43 +00:00
renovate[bot]
79b6be8550 chore(deps): update dependency freezegun to v1.5.5 (#5922)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-09 11:01:23 -05:00
Hayden
bd9e654de7 chore(l10n): New Crowdin updates (#5918)
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2025-08-08 17:50:48 +00:00
renovate[bot]
f149bcc98f fix(deps): update dependency openai to v1.99.5 (#5917) 2025-08-08 17:15:06 +00:00
Hayden
0095cc7153 chore(l10n): New Crowdin updates (#5915) 2025-08-08 08:28:00 +02:00
renovate[bot]
f276ecd96e fix(deps): update dependency openai to v1.99.3 (#5914)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-07 21:58:57 +00:00
renovate[bot]
87bfdb633b chore(deps): update dependency ruff to v0.12.8 (#5913)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-07 16:47:05 -05:00
Hayden
e47f386643 chore(l10n): New Crowdin updates (#5912) 2025-08-07 21:30:31 +00:00
renovate[bot]
5c9fd22f11 chore(deps): update dependency coverage to v7.10.2 (#5887)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-07 17:18:44 +00:00
renovate[bot]
30ee276e52 fix(deps): update dependency pillow-heif to v1.1.0 (#5870)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-07 12:07:04 -05:00
Patrick Lehner (he/him)
50c8e9be79 feat: Move create-item button in shopping list to the top (#5687)
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2025-08-07 15:47:21 +00:00
Hayden
c4fdcec85f chore(l10n): New Crowdin updates (#5908) 2025-08-07 08:49:42 +02:00
renovate[bot]
f7b32debbb fix(deps): update dependency openai to v1.99.1 (#5901)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-06 15:02:11 +00:00
Hayden
1f1cc10f21 chore(l10n): New Crowdin updates (#5904) 2025-08-06 16:50:43 +02:00
Will Ratner
2ae3427a59 fix: correct JPEG media type in get_image_url to prevent API errors (#5897)
Co-authored-by: Will Ratner <will@ratner.tech>
2025-08-05 16:12:42 +00:00
Hayden
357f843df5 chore(l10n): New Crowdin updates (#5896) 2025-08-05 09:04:54 +02:00
lucasfijen
3973fe99a1 docs: Fix broken postgres docker-compose example (#5894) 2025-08-04 14:21:42 -05:00
github-actions[bot]
8d51c14d24 chore(auto): Update pre-commit hooks (#5889)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2025-08-04 11:09:10 +00:00
Hayden
f2af8a0bc1 chore(l10n): New Crowdin updates (#5890) 2025-08-04 12:58:44 +02:00
Hayden
c130e8e92d chore(l10n): New Crowdin updates (#5884) 2025-08-03 22:50:17 +02:00
github-actions[bot]
ea099a743b chore: automatic locale sync (#5881)
Co-authored-by: GitHub Action <action@github.com>
2025-08-03 11:02:19 +00:00
Hayden
d21e685219 chore(l10n): New Crowdin updates (#5882) 2025-08-03 12:27:59 +02:00
renovate[bot]
04d0144369 fix(deps): update dependency apprise to v1.9.4 (#5878)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-02 20:02:48 +00:00
Hayden
8a8580e83c chore(l10n): New Crowdin updates (#5877) 2025-08-02 19:51:01 +00:00
Hayden
6b6c167153 chore(l10n): New Crowdin updates (#5869) 2025-08-02 07:37:58 +00:00
Hayden
e1c4a703a2 chore(l10n): New Crowdin updates (#5867) 2025-08-01 19:35:27 +00:00
Felix Schneider
591c96e52b chore: update references to GitHub repository (#5861) 2025-08-01 08:43:57 +00:00
Hayden
b157c7034f chore(l10n): New Crowdin updates (#5862) 2025-08-01 10:32:26 +02:00
Michael Genson
245ca5fe3b feat: Remove "Is Food" and "Disable Amounts" Flags (#5684)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2025-07-31 17:36:24 +02:00
Kuchenpirat
efc0d31724 fix: tags & tools edit confirm (#5860)
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2025-07-31 15:06:59 +00:00
renovate[bot]
4b7f7b4b8a chore(deps): update dependency freezegun to v1.5.4 (#5853)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-31 16:07:14 +02:00
renovate[bot]
7aee575352 chore(deps): update dependency mypy to v1.17.1 (#5856)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-31 15:00:16 +02:00
Hayden
2ef5b0d389 chore(l10n): New Crowdin updates (#5855) 2025-07-31 08:55:26 +02:00
Hayden
387a12cf1a chore(l10n): New Crowdin updates (#5854) 2025-07-30 14:11:38 -05:00
Kuchenpirat
f26e74f0f2 chore: script setup #3 - recipe components (#5849) 2025-07-30 18:37:02 +00:00
renovate[bot]
f2b6512eb1 fix(deps): update dependency openai to v1.98.0 (#5852)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-30 19:29:44 +02:00
Hayden
93f3762016 chore(l10n): New Crowdin updates (#5847) 2025-07-30 09:41:00 +02:00
Kuchenpirat
620465f14c fix: script setup #2 and some fixes (#5845) 2025-07-30 00:05:26 +00:00
renovate[bot]
a132b83f1b chore(deps): update dependency ruff to v0.12.7 (#5843)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-29 22:58:02 +00:00
Mario Džoić
5f522b5324 fix: allow admin users to delete other household recipes (#5767)
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2025-07-30 00:46:23 +02:00
renovate[bot]
bd0aed06ce chore(deps): update dependency ruff to v0.12.6 (#5840)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-30 00:12:47 +02:00
Michael Genson
f9f88fb8a4 fix: Nuxt 3 Ingredient Parsing Issues and Tooltip Positions (#5829)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2025-07-29 21:53:33 +00:00
Kuchenpirat
eefe613aaf fix: QueryFilter Hydration & script setup (#5839) 2025-07-29 21:43:13 +00:00
Michael Genson
d6d247f1f8 fix: Missing Yield Text (#5827) 2025-07-29 20:33:44 +00:00
Michael Genson
3b74ddd9ad fix: Delete Group From Admin Page (#5837) 2025-07-29 18:53:52 +00:00
Hayden
eec4eeb76a chore(l10n): New Crowdin updates (#5838) 2025-07-29 20:42:51 +02:00
renovate[bot]
73a9e470c3 fix(deps): update dependency sqlalchemy to v2.0.42 (#5836)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-29 12:53:53 -05:00
Sebastian Frysztak
b578d8d4f7 fix: remove v-lazy from RecipeCard (#5835) 2025-07-29 11:28:03 -05:00
Michael Genson
7a43546eeb fix: Data Management Headers (#5830) 2025-07-29 09:05:46 +00:00
Hayden
e7c310934d chore(l10n): New Crowdin updates (#5831) 2025-07-29 10:55:03 +02:00
Hayden
07d5928f18 chore(l10n): New Crowdin updates (#5828) 2025-07-28 20:17:45 +02:00
Michael Genson
fa5bc17ed8 fix: Manual Serving Edits (#5813) 2025-07-28 17:54:59 +02:00
Mario Džoić
f8cb80ed7f fix: make only checkbox reactive (#5739)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2025-07-28 13:09:00 +00:00
Felix Schneider
066cd13e13 fix: Reduce margin in RecipePageInstructions (#5783)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2025-07-28 12:44:09 +00:00
Michael Genson
a087760d53 fix: Optimize Recipe Timeline Requests (#5811) 2025-07-28 11:25:49 +00:00
Michael Genson
675ac9c32b fix: Make Sure Test Webhook Always Fires (#5816)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2025-07-28 08:12:30 +00:00
Michael Genson
d7191983bd fix: JSON Editor Breaks On Invalid JSON (#5814)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2025-07-28 07:50:50 +00:00
renovate[bot]
14b3fd524f chore(deps): update dependency coverage to v7.10.1 (#5821)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-28 09:39:32 +02:00
github-actions[bot]
38ed0d0532 chore: automatic locale sync (#5815)
Co-authored-by: GitHub Action <action@github.com>
2025-07-28 07:28:24 +00:00
github-actions[bot]
3b48f73b91 chore(auto): Update pre-commit hooks (#5825)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2025-07-28 07:17:03 +00:00
Hayden
ae7e7942e3 chore(l10n): New Crowdin updates (#5817) 2025-07-28 09:07:03 +02:00
Felix Schneider
ec1eddc06d fix: add confirm button to bulk delete of tags (#5785)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2025-07-27 03:04:41 +02:00
Hayden
2781771f6b chore(l10n): New Crowdin updates (#5809) 2025-07-26 17:22:36 +00:00
renovate[bot]
9b35a2f904 chore(deps): update dependency mkdocs-material to v9.6.16 (#5808)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-26 17:11:02 +00:00
renovate[bot]
a323350915 fix(deps): update dependency orjson to v3.11.1 (#5802)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-26 16:59:04 +00:00
renovate[bot]
9b94cfdd24 chore(deps): update dependency rich to v14.1.0 (#5800)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-26 11:46:15 -05:00
Hayden
2818ff56ee chore(l10n): New Crowdin updates (#5805) 2025-07-26 16:31:54 +00:00
renovate[bot]
d728df7d40 chore(deps): update dependency coverage to v7.10.0 (#5796)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-26 11:21:06 -05:00
Hayden
a531eb649e chore(l10n): New Crowdin updates (#5804) 2025-07-25 18:46:56 +02:00
Michael Genson
fb4aa2b713 fix: Better UX and Error Handling For Adding Timeline Events (#5798) 2025-07-25 12:18:10 +00:00
renovate[bot]
0df9d4b958 chore(deps): update dependency ruff to v0.12.5 (#5795)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-25 14:03:10 +02:00
Felix Schneider
99523c70ed fix: send the correct value for recipe scale and ensure the body is sent correctly (#5737) 2025-07-25 11:42:17 +00:00
Hayden
5c7a4fb861 chore(l10n): New Crowdin updates (#5794) 2025-07-25 12:22:29 +02:00
Hayden
436a24f8b2 chore(l10n): New Crowdin updates (#5792) 2025-07-24 09:34:34 +02:00
Hayden
93534de638 chore(l10n): New Crowdin updates (#5787) 2025-07-22 22:52:21 -05:00
renovate[bot]
f29a11d20e fix(deps): update dependency openai to v1.97.1 (#5781)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-22 14:47:52 +00:00
Hayden
880bd91f4a chore(l10n): New Crowdin updates (#5780) 2025-07-22 16:36:05 +02:00
Hayden
8e68782ff6 chore(l10n): New Crowdin updates (#5775) 2025-07-21 22:46:59 -05:00
Mario Džoić
c1e5937ff3 fix: cookbook random recipe selector (#5768) 2025-07-21 15:02:36 +00:00
Hayden
6d1e39f871 chore(l10n): New Crowdin updates (#5770) 2025-07-21 14:12:38 +00:00
github-actions[bot]
5b92e969dc docs(auto): Update image tag, for release v3.0.2 (#5769)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2025-07-21 14:02:45 +00:00
github-actions[bot]
992a74499d chore(auto): Update pre-commit hooks (#5765)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2025-07-21 15:52:31 +02:00
github-actions[bot]
4744e6371a chore: automatic locale sync (#5766)
Co-authored-by: GitHub Action <action@github.com>
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2025-07-21 08:44:33 +00:00
Michael Genson
00a03559ff fix: RTL Settings Ignored (#5762) 2025-07-21 07:51:28 +00:00
Hayden
a1a45078fb chore(l10n): New Crowdin updates (#5764) 2025-07-21 09:39:25 +02:00
Felix Schneider
88d0b466ce fix: style of recipe actions to be compliant with design schema (#5736) 2025-07-20 18:05:56 +02:00
Kuchenpirat
e638df37d1 fix: multiple regressions on data management page (#5758) 2025-07-20 15:06:39 +00:00
renovate[bot]
44b180f5c0 fix(deps): update dependency authlib to v1.6.1 (#5757)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-20 09:49:20 -05:00
Hayden
3feb11d138 chore(l10n): New Crowdin updates (#5759) 2025-07-20 14:03:15 +00:00
github-actions[bot]
41633be864 chore: automatic locale sync (#5756)
Co-authored-by: GitHub Action <action@github.com>
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2025-07-20 09:45:39 +00:00
Hayden
ce8fa2194b chore(l10n): New Crowdin updates (#5755) 2025-07-20 09:35:33 +00:00
Michael Genson
7d1c5ad14b fix: Patch XSS Vulnerability (#5754) 2025-07-19 20:45:33 -05:00
renovate[bot]
6274a3dd39 fix(deps): update dependency orjson to v3.11.0 (#5727)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-19 15:04:20 -05:00
renovate[bot]
a1e8e1aa20 chore(deps): update dependency pytest-asyncio to v1.1.0 (#5730)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-19 12:34:22 -05:00
renovate[bot]
b4aff0d8e9 fix(deps): update dependency openai to v1.97.0 (#5726)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-19 17:17:48 +00:00
renovate[bot]
e07df8fc43 chore(deps): update dependency mypy to v1.17.0 (#5718)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-19 17:05:44 +00:00
renovate[bot]
9413e403b4 fix(deps): update dependency alembic to v1.16.4 (#5661)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-19 16:54:04 +00:00
renovate[bot]
6eab88d44c fix(deps): update dependency fastapi to ^0.116.0 (#5654)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-19 16:42:18 +00:00
renovate[bot]
754878eb63 chore(deps): update dependency coverage to v7.9.2 (#5622)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-19 11:26:37 -05:00
Hayden
c65456c646 chore(l10n): New Crowdin updates (#5750) 2025-07-19 15:58:43 +02:00
Hayden
dd55d23a37 chore(l10n): New Crowdin updates (#5749) 2025-07-19 09:04:57 +02:00
Michael Genson
aafed68964 fix: Mealplan Regressions (#5748) 2025-07-18 22:24:59 +00:00
Jason Frank
108ac40b22 fix: Update admin_backups.py to handle API backup file uploads correctly. (#5715)
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2025-07-18 22:14:33 +00:00
renovate[bot]
d2e9c04af1 chore(deps): update dependency ruff to v0.12.4 (#5743)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-18 16:58:10 -05:00
Mario Džoić
3a1f58037d fix: meal planner date range is correctly set (#5725)
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2025-07-18 14:40:35 -05:00
Hayden
2731fb4a01 chore(l10n): New Crowdin updates (#5744) 2025-07-18 13:21:23 +00:00
Hayden
769db7202d chore(l10n): New Crowdin updates (#5728) 2025-07-18 11:06:11 +02:00
Hayden
644e871ec1 chore(l10n): New Crowdin updates (#5722) 2025-07-15 12:43:15 +02:00
Hayden
8987faa4f6 chore(l10n): New Crowdin updates (#5717) 2025-07-15 06:21:46 +02:00
Hayden
c237b33126 chore(l10n): New Crowdin updates (#5714) 2025-07-14 14:34:56 +02:00
github-actions[bot]
7098b67784 chore(auto): Update pre-commit hooks (#5713)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
2025-07-14 09:10:51 +00:00
renovate[bot]
2d21d00651 fix(deps): update dependency openai to v1.95.1 (#5683)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-14 11:00:06 +02:00
Hayden
198d5e4e06 chore(l10n): New Crowdin updates (#5710) 2025-07-13 21:39:56 +00:00
github-actions[bot]
98fc333df3 docs(auto): Update image tag, for release v3.0.1 (#5708)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2025-07-13 15:04:56 +00:00
renovate[bot]
c0fb27f979 chore(deps): update dependency freezegun to v1.5.3 (#5702)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-13 16:54:11 +02:00
github-actions[bot]
9ec1599427 chore: automatic locale sync (#5705)
Co-authored-by: GitHub Action <action@github.com>
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2025-07-13 14:36:47 +00:00
Kuchenpirat
9cfc54b1f5 fix: user & household creation (#5699) 2025-07-13 13:57:28 +00:00
Hayden
40d2ac9a6b chore(l10n): New Crowdin updates (#5706) 2025-07-13 12:05:51 +02:00
Hayden
44db525049 chore(l10n): New Crowdin updates (#5701) 2025-07-12 21:41:46 +00:00
Kuchenpirat
d737cb3e14 fix: set correct github tag in init py (#5693) 2025-07-12 08:54:14 -05:00
Hayden
1034d87a99 chore(l10n): New Crowdin updates (#5691) 2025-07-12 12:30:57 +02:00
Kuchenpirat
1243e6804c fix: crud table bulk actions (#5686) 2025-07-12 00:47:54 +00:00
Hayden
8b9e80358b chore(l10n): New Crowdin updates (#5682) 2025-07-11 21:18:48 +00:00
github-actions[bot]
2bae6e9d02 docs(auto): Update image tag, for release v3.0.0 (#5675)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2025-07-11 22:38:46 +02:00
renovate[bot]
6b98a7cd74 fix(deps): update dependency openai to v1.95.0 (#5671)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-11 19:22:03 +02:00
github-actions[bot]
e0238eb3a2 chore: automatic locale sync (#5674)
Co-authored-by: GitHub Action <action@github.com>
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2025-07-11 18:04:36 +02:00
renovate[bot]
5adb7662c4 chore(deps): update dependency ruff to v0.12.3 (#5673)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-11 17:26:37 +02:00
Hayden
4e6a7a09ff chore(l10n): New Crowdin updates (#5672) 2025-07-11 11:28:35 +02:00
renovate[bot]
719c7c9f6b fix(deps): update dependency openai to v1.94.0 (#5667)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-10 23:46:09 +02:00
Michael Genson
7331007f30 fix: Restore Servings To Print View (#5669) 2025-07-10 17:30:33 +00:00
Michael Genson
ea329a6b71 fix: Remove Padding On Print (#5668)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2025-07-10 17:12:41 +00:00
Michael Genson
e1a04ba673 fix: Recipe Timeline Not Filtering (#5666) 2025-07-10 16:57:20 +00:00
Michael Genson
63a4d4c801 fix: Preserve "Completed On" Date In Checked Shopping List Items (#5665) 2025-07-10 16:41:34 +00:00
Hayden
5cf3e2565a chore(l10n): New Crowdin updates (#5664) 2025-07-10 08:39:53 +00:00
renovate[bot]
9e1fe618ba fix(deps): update dependency openai to v1.93.3 (#5663)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-10 10:15:17 +02:00
renovate[bot]
691300e481 fix(deps): update dependency openai to v1.93.2 (#5660)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-09 12:55:56 +02:00
Michael Genson
939588f54c chore: Fix Dockerfile "AS" Case (#5662)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2025-07-08 22:31:06 +00:00
Arsène Reymond
2d8f491666 feat: Replace google-fonts module with nuxt/fonts (#5618)
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2025-07-08 22:07:18 +00:00
Joey
50754ad012 fix: Remove redundant get_one call in patch_one method (#5619) 2025-07-08 21:56:59 +00:00
Kuchenpirat
04eca1b992 fix: nutrition info visuals (#5659) 2025-07-08 17:23:41 +00:00
Michael Genson
aad7dc1abd fix: Refactor Stores and Fix Missing Public Cookbooks (#5611)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2025-07-08 13:32:18 +00:00
renovate[bot]
2f19d31d1b fix(deps): update dependency openai to v1.93.1 (#5655)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-08 12:44:42 +02:00
Michael Genson
095b92c29a chore: Upgrade Pillow HEIF (#5657) 2025-07-08 12:08:04 +02:00
Hayden
49c704a4b1 chore(l10n): New Crowdin updates (#5656) 2025-07-07 22:50:44 +02:00
renovate[bot]
c15a4f786b fix(deps): update dependency typing-extensions to v4.14.1 (#5629)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-07 17:56:10 +02:00
Hayden
6e33878e4f chore(l10n): New Crowdin updates (#5653) 2025-07-07 16:26:42 +02:00
github-actions[bot]
5ca004802d chore(auto): Update pre-commit hooks (#5652)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2025-07-07 07:58:08 +00:00
Arsène Reymond
68115cbf2f fix: AppButtonCopy errors in tooltip & console (#5612)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2025-07-07 09:32:34 +02:00
github-actions[bot]
2b4bc8a662 chore: automatic locale sync (#5642)
Co-authored-by: GitHub Action <action@github.com>
2025-07-06 22:08:03 +00:00
Hayden
fc801c9da4 chore(l10n): New Crowdin updates (#5643)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2025-07-06 21:57:36 +00:00
Kuchenpirat
f99b305dc3 fix: lint error from locale sync (#5644) 2025-07-06 16:20:43 -05:00
renovate[bot]
b0b3d7e5e5 fix(deps): update dependency tzdata to v2025 (#5624)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-06 00:51:49 +00:00
github-actions[bot]
eedd2204a6 chore: automatic locale sync (#5639)
Co-authored-by: GitHub Action <action@github.com>
2025-07-05 21:47:51 +00:00
Hayden
1ccc67774a chore(l10n): New Crowdin updates (#5641) 2025-07-05 16:35:15 -05:00
Hayden
6d98041ec8 chore(l10n): New Crowdin updates (#5640) 2025-07-05 09:12:51 +02:00
Hayden
c24cfb8096 chore(l10n): New Crowdin updates (#5632) 2025-07-05 01:59:52 +00:00
Kuchenpirat
ca41bc8d5c fix: 500 error on recipe share link (#5627) 2025-07-05 01:37:42 +00:00
Hayden
da3271f33f chore: remove unused jinja export option (#5631) 2025-07-05 00:45:56 +00:00
Hayden
50a986f331 fix: workflow branch target/base (#5637) 2025-07-04 19:34:44 -05:00
Hayden
f72ebed0dc fix: workflow permissions (#5636) 2025-07-04 19:19:25 -05:00
Hayden
0c534ad9d4 fix: load from env if available vs file (#5635) 2025-07-04 19:08:50 -05:00
Hayden
9cce0f65aa chore: automatic crowdin sync via gh actions (#5630) 2025-07-04 19:00:23 -05:00
Hayden
c9e22892a6 fix: truncate slugs when too long (#5633) 2025-07-04 15:43:53 -05:00
Cameronwyatt
e794c6b525 feat: Update food seeding logic to use new format, now with removed CrowdIn limits? (#5514)
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
Co-authored-by: Hayden <64056131+hay-kot@users.noreply.github.com>
2025-07-04 12:50:13 -05:00
renovate[bot]
abc37f258d chore(deps): update dependency ruff to v0.12.2 (#5625)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-03 20:15:26 +00:00
renovate[bot]
c2fda0d85a fix(deps): update dependency uvicorn to ^0.35.0 (#5598)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-02 12:53:22 -05:00
renovate[bot]
437a6ae526 fix(deps): update dependency tzdata to v2025 (#5534)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-02 04:41:17 +00:00
renovate[bot]
9f5de0bd5d fix(deps): update dependency lxml to v6 (#5585)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-01 22:17:52 -05:00
renovate[bot]
4bf963b14c fix(deps): update dependency fastapi to v0.115.14 (#5581)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-01 22:27:58 +00:00
renovate[bot]
7092d85a53 chore(deps): update dependency mkdocs-material to v9.6.15 (#5613)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-01 17:15:53 -05:00
renovate[bot]
83fd320920 fix(deps): update dependency pillow to v11.3.0 [security] (#5615)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-01 16:52:54 -05:00
Kuchenpirat
28e2666c17 fix: remove unused deps (#5610) 2025-06-30 16:19:45 +00:00
Kuchenpirat
62c7e2d2fb fix: recipe timeline visuals (nuxt 3) (#5608) 2025-06-30 15:25:32 +00:00
Kuchenpirat
6540bfacfe fix: recipe page warnings (#5609) 2025-06-30 15:10:39 +00:00
Michael Genson
47eb1ebbb1 feat: Consolidate Admin User APIs (#5050)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2025-06-30 10:13:42 +00:00
github-actions[bot]
31f90c79c0 chore(auto): Update pre-commit hooks (#5605)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
2025-06-30 07:19:52 +00:00
renovate[bot]
3b1edf67fc fix(deps): update dependency openai to v1.93.0 (#5591)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-30 09:09:35 +02:00
Joey
781bbecc7b fix: check for OPENAI_MODEL in OPENAI_FEATURE (#5603) 2025-06-29 15:38:34 -05:00
Kuchenpirat
15f06b5378 feat: new create from image visuals (#5595) 2025-06-29 13:17:49 -05:00
Ross
95fa0af28a feat: create recipe from multiple images (#5590)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
Co-authored-by: Kuchenpirat <jojow@gmx.net>
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2025-06-28 20:11:12 +00:00
Arsène Reymond
084f99b0de fix: Nuxt3 upgrades UI fixes & improvements (#5589) 2025-06-28 15:59:58 +02:00
Joey
2fb5dac966 fix: typo in app_settings_constructor docstring (#5592)
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2025-06-28 01:49:07 +00:00
renovate[bot]
51ec02bdb2 fix(deps): update dependency pydantic-settings to v2.10.1 (#5559) 2025-06-27 09:00:21 -05:00
Kuchenpirat
1a1fe0a442 fix: get recipe image by url (#5588) 2025-06-27 08:39:47 -05:00
renovate[bot]
b0b88d361f fix(deps): update dependency openai to v1.92.2 (#5584)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-27 09:07:58 +02:00
renovate[bot]
b4a9c472e5 chore(deps): update dependency ruff to v0.12.1 (#5587) 2025-06-26 23:26:30 -05:00
Kuchenpirat
bcc038091a docs: remove duplicate headline (#5558) 2025-06-26 20:21:59 +00:00
Kuchenpirat
9e0db03f8c fix: recipe image creation (#5579)
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2025-06-26 20:12:27 +00:00
Kuchenpirat
af274bf476 fix: markdown list padding and replace nuxtjs/mdc (#5577) 2025-06-26 14:58:31 -05:00
github-actions[bot]
ca9d5677b8 chore(auto): Update pre-commit hooks (#5564)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2025-06-24 12:30:47 +00:00
renovate[bot]
07483a13ff fix(deps): update dependency python-dotenv to v1.1.1 (#5571)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-24 14:20:17 +02:00
renovate[bot]
d412271b0b fix(deps): update dependency openai to v1.91.0 (#5567)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-24 07:58:42 +00:00
Michael Genson
cea3ddc883 chore(deps): update dependency ruff to ^0.12.0 (#5568)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2025-06-24 09:46:49 +02:00
Michael Genson
c965d12bf1 fix: Cookbooks not rendering on sidebar (#5570) 2025-06-24 09:36:40 +02:00
Kuchenpirat
181aebf424 fix: register create group flow (#5565) 2025-06-23 09:20:50 -05:00
Kuchenpirat
b77ff9c341 fix: mealplanner day title card height & alignment (#5561) 2025-06-22 20:44:13 +00:00
Kuchenpirat
93cec24f26 fix: delete recipe instructions after nuxt 3 upgrade (#5560) 2025-06-22 15:34:25 -05:00
Kuchenpirat
a2a0ad1af0 fix: pwa share target (#5557) 2025-06-21 10:17:48 -05:00
renovate[bot]
969a3c9005 chore(deps): update dependency pytest to v8.4.1 (#5542)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-21 07:35:14 +00:00
renovate[bot]
a09601f051 fix(deps): update dependency openai to v1.90.0 (#5555)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-21 09:23:40 +02:00
Kuchenpirat
d6110f1a94 fix: passwort strength indicator (#5553) 2025-06-20 16:39:08 +00:00
Michael Genson
1562437b98 fix: Remove "Ingredients" From OpenAI Prompt For Instructions (#5546) 2025-06-20 16:28:46 +00:00
Kuchenpirat
e2eb754cf2 fix: pwa not being installable after nuxt 3 upgrade (#5552) 2025-06-20 11:04:45 -05:00
Kuchenpirat
3a4222c6c1 fix: shopping list button in one row (#5547) 2025-06-20 09:59:13 +00:00
Michael Genson
2673834a9f fix: Various Nuxt Upgrade Issues (#5545) 2025-06-20 19:42:12 +10:00
Hoa (Kyle) Trinh
c24d532608 feat: Migrate to Nuxt 3 framework (#5184)
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2025-06-19 17:09:12 +00:00
renovate[bot]
89ab7fac25 fix(deps): update dependency alembic to v1.16.2 (#5535)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-18 20:09:25 +00:00
Felix Schneider
78b55c0b98 feat: add the selected recipe servings and yields in the content of the recipe post action (#5340)
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2025-06-18 14:57:51 -05:00
Craig Matear
ac984a2d04 fix: #5511, list item state doesn't change when offline (#5512)
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2025-06-17 18:41:35 +00:00
renovate[bot]
079cfe7fe0 fix(deps): update dependency openai to v1.88.0 (#5536)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-17 13:29:19 -05:00
renovate[bot]
4a9095fcbb chore(deps): update dependency coverage to v7.9.1 (#5523)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-17 13:11:55 -05:00
renovate[bot]
384bb7480f fix(deps): update dependency fastapi to v0.115.13 (#5538) 2025-06-17 10:46:27 -05:00
Sravan Kumar
69488bd6df fix: Fixing the OpenAPI Spec and the Call to delete a shared recipe. (#5537) 2025-06-17 14:05:17 +00:00
renovate[bot]
038fbd38ef fix(deps): update dependency pydantic to v2.11.7 (#5527)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-16 17:08:11 +00:00
renovate[bot]
1697d6299e chore(deps): update dependency mypy to v1.16.1 (#5533)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-16 11:57:07 -05:00
Ceri Loosley
b87edc823a fix: handle recipe-scraper returning a int causing clean_time to return None (#5522) 2025-06-12 17:34:24 +00:00
renovate[bot]
cacb197aa8 fix(deps): update dependency requests to v2.32.4 [security] (#5519)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-11 12:24:06 +00:00
renovate[bot]
5d58c93331 fix(deps): update dependency openai to v1.86.0 (#5520)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-11 14:12:29 +02:00
renovate[bot]
104c9b36a5 fix(deps): update dependency openai to v1.85.0 (#5518)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-09 20:02:48 +00:00
github-actions[bot]
b68c96c348 chore(auto): Update pre-commit hooks (#5515)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
2025-06-09 08:07:44 +00:00
renovate[bot]
b577cf5520 chore(deps): update dependency ruff to v0.11.13 (#5510)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-09 09:56:53 +02:00
Hayden
431638c1ed chore(l10n): New Crowdin updates (#5507) 2025-06-04 14:55:36 +02:00
renovate[bot]
a4871b65eb fix(deps): update dependency recipe-scrapers to v15.8.0 (#5506)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-03 20:48:20 -05:00
renovate[bot]
582974b265 fix(deps): update dependency openai to v1.84.0 (#5505) 2025-06-03 16:05:25 -05:00
renovate[bot]
22fdb32f61 fix(deps): update dependency openai to v1.83.0 (#5503)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-02 16:33:22 -05:00
renovate[bot]
649013a028 chore(deps): update dependency pytest to v8.4.0 (#5502)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-02 13:57:21 -05:00
Hayden
14de1410ae chore(l10n): New Crowdin updates (#5501) 2025-06-02 18:45:07 +00:00
Hayden
03bc87d3a8 chore(l10n): New Crowdin updates (#5500) 2025-06-02 17:39:42 +00:00
renovate[bot]
bb7885543e fix(deps): update dependency typing-extensions to v4.14.0 (#5499)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-02 15:12:55 +00:00
renovate[bot]
404a4cfa9d fix(deps): update dependency uvicorn to v0.34.3 (#5495)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-02 15:01:42 +00:00
github-actions[bot]
63a5c0076a chore(auto): Update pre-commit hooks (#5497)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
2025-06-02 14:51:07 +00:00
Michael Genson
a4ea5ba10d chore: Relax Stalebot (#5498) 2025-06-02 09:41:06 -05:00
Hayden
fc6b239343 chore(l10n): New Crowdin updates (#5491) 2025-05-31 14:48:53 +02:00
renovate[bot]
9185cd8df1 fix(deps): update dependency openai to v1.82.1 (#5488)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-29 21:51:05 +00:00
renovate[bot]
f0a9d5333d chore(deps): update dependency mypy to v1.16.0 (#5487)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2025-05-29 16:39:38 -05:00
Hayden
7bb84d504a chore(l10n): New Crowdin updates (#5485) 2025-05-29 20:14:27 +00:00
renovate[bot]
dad2712fe9 chore(deps): update dependency ruff to v0.11.12 (#5486)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-29 20:03:13 +00:00
SurfBurger
8e7e3e21ed feat: remove unnecessary UI components if allowPasswordLogin is true (#5484) 2025-05-29 14:52:44 -05:00
Chris Danis
af3057951d feat: setting to hide password login (#4943)
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2025-05-27 19:49:06 +00:00
github-actions[bot]
2f3ef738c4 chore(auto): Update pre-commit hooks (#5474)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
2025-05-26 15:54:21 +00:00
renovate[bot]
44ee1440e2 chore(deps): update dependency pytest-asyncio to v1 (#5473)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-26 10:44:02 -05:00
Hayden
c4aaf1a8c3 chore(l10n): New Crowdin updates (#5471) 2025-05-24 16:42:12 +00:00
renovate[bot]
e093a93189 chore(deps): update dependency freezegun to v1.5.2 (#5472)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-24 11:31:46 -05:00
renovate[bot]
51c92a1e35 chore(deps): update dependency coverage to v7.8.2 (#5470)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-23 14:48:52 -05:00
renovate[bot]
84629c540e fix(deps): update dependency authlib to v1.6.0 (#5469)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-23 14:15:39 -05:00
renovate[bot]
28b3ba6506 fix(deps): update dependency pydantic to v2.11.5 (#5468)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-23 14:00:52 -05:00
renovate[bot]
a6ce140e60 fix(deps): update dependency openai to v1.82.0 (#5467) 2025-05-23 11:49:08 -05:00
renovate[bot]
4784672113 chore(deps): update dependency ruff to v0.11.11 (#5466)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-23 09:04:22 -05:00
renovate[bot]
9db31ca125 fix(deps): update dependency alembic to v1.16.1 (#5464)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-22 16:11:12 +00:00
renovate[bot]
972b588250 chore(deps): update dependency coverage to v7.8.1 (#5462)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-22 10:59:41 -05:00
Hayden
57ae31d231 chore(l10n): New Crowdin updates (#5458) 2025-05-22 09:57:33 +00:00
renovate[bot]
7398b2784a fix(deps): update dependency openai to v1.81.0 (#5463)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-22 11:47:19 +02:00
oddlama
c13c0868ae docs: document necessity of forwarded-allow-ips with OIDC behind reverse-proxy https (#5461) 2025-05-21 19:15:14 +00:00
renovate[bot]
a652830a26 fix(deps): update dependency ingredient-parser-nlp to v2.1.1 (#5455)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-19 16:56:03 +00:00
github-actions[bot]
1f34571820 chore(auto): Update pre-commit hooks (#5457)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
2025-05-19 16:45:48 +00:00
renovate[bot]
4e16273f00 fix(deps): update dependency sqlalchemy to v2.0.41 (#5445)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-19 11:35:07 -05:00
renovate[bot]
d110f21d37 chore(deps): update dependency ruff to v0.11.10 (#5447)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-18 16:39:01 +00:00
renovate[bot]
6caa74254f fix(deps): update dependency openai to v1.79.0 (#5450)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-18 18:27:45 +02:00
Hayden
66bc4c25ec chore(l10n): New Crowdin updates (#5446) 2025-05-17 14:51:11 -05:00
github-actions[bot]
89bed4d675 chore(auto): Update pre-commit hooks (#5438)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
2025-05-14 15:17:15 +00:00
renovate[bot]
25fbdd6523 fix(deps): update dependency openai to v1.78.1 (#5441)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-14 17:06:55 +02:00
renovate[bot]
7e64ce2767 chore(deps): update dependency mkdocs-material to v9.6.14 (#5442)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-13 16:26:42 -05:00
renovate[bot]
62dabe2c18 chore(deps): update dependency mkdocs-material to v9.6.13 (#5435)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-11 04:52:17 +00:00
renovate[bot]
3742c4e86c chore(deps): update dependency ruff to v0.11.9 (#5434)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-10 23:40:55 -05:00
Hayden
98da2cadc6 chore(l10n): New Crowdin updates (#5428) 2025-05-11 04:09:08 +00:00
renovate[bot]
8360829f61 fix(deps): update dependency openai to v1.78.0 (#5429)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-10 22:57:38 -05:00
renovate[bot]
aec38e367b chore(deps): update dependency pylint to v3.3.7 (#5416)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-10 16:57:12 -05:00
renovate[bot]
6ad7009509 fix(deps): update dependency pydantic to v2.11.4 (#5405)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-10 19:36:45 +00:00
renovate[bot]
46505ba8a5 fix(deps): update dependency orjson to v3.10.18 (#5403)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-10 14:21:05 -05:00
renovate[bot]
4011d6e29b fix(deps): update dependency ingredient-parser-nlp to v2.1.0 (#5373)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-09 21:43:59 +00:00
renovate[bot]
7ee7b753d6 fix(deps): update dependency tzdata to v2025 (#5365)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-09 16:29:46 -05:00
Hayden
c77f41d08e chore(l10n): New Crowdin updates (#5424) 2025-05-06 21:24:31 +02:00
renovate[bot]
ab7fa150fe chore(deps): update dependency ruff to v0.11.8 (#5410)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-06 09:16:52 +02:00
renovate[bot]
22fa5d27e3 fix(deps): update dependency openai to v1.77.0 (#5404)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-05 19:15:58 +02:00
github-actions[bot]
5f05002c20 chore(auto): Update pre-commit hooks (#5418)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
2025-05-05 15:38:43 +00:00
Hayden
0cd33de2f6 chore(l10n): New Crowdin updates (#5407)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2025-05-05 17:29:07 +02:00
renovate[bot]
e46d19edfe fix(deps): update dependency recipe-scrapers to v15.7.1 (#5412)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-02 14:17:53 -05:00
github-actions[bot]
18ff3c3c48 chore(auto): Update pre-commit hooks (#5398)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
2025-04-28 07:51:15 +00:00
Hayden
da1c9a448e chore(l10n): New Crowdin updates (#5396) 2025-04-28 09:40:19 +02:00
Hayden
58e1f71711 chore(l10n): New Crowdin updates (#5394) 2025-04-27 16:42:30 +00:00
Hayden
918899d346 chore(l10n): New Crowdin updates (#5390) 2025-04-27 13:10:22 +02:00
renovate[bot]
7f57e1d9a2 chore(deps): update dependency ruff to v0.11.7 (#5388)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-25 08:52:35 +02:00
renovate[bot]
df6dc6c8ac fix(deps): update dependency lxml to v5.4.0 (#5378)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-25 08:40:30 +02:00
renovate[bot]
840bd32ee3 fix(deps): update dependency pydantic-settings to v2.9.1 (#5366)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-24 19:31:45 +02:00
robertdanahome
da3d056d81 fix: Add missing group_id to RecipeTag and TagBase schemas (#5342)
Co-authored-by: Robert Dana <bob@yall.org>
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2025-04-24 16:09:37 +00:00
renovate[bot]
b3ea48333c fix(deps): update dependency uvicorn to v0.34.2 (#5343)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-24 17:58:54 +02:00
renovate[bot]
f37b39aad2 fix(deps): update dependency openai to v1.76.0 (#5381)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-24 15:37:22 +00:00
Hayden
d4c987e48a chore(l10n): New Crowdin updates (#5379) 2025-04-24 17:23:26 +02:00
Hayden
955e38ea0b chore(l10n): New Crowdin updates (#5374) 2025-04-21 21:07:23 +02:00
github-actions[bot]
7d87182b1a chore(auto): Update pre-commit hooks (#5372)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2025-04-21 07:26:22 +00:00
Hayden
5e80002297 chore(l10n): New Crowdin updates (#5370) 2025-04-21 09:16:51 +02:00
renovate[bot]
1364cd0d6b fix(deps): update dependency html2text to v2025 (#5347)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-19 21:16:29 +02:00
renovate[bot]
5d21af0e02 fix(deps): update dependency aniso8601 to v10.0.1 (#5368)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-19 20:12:04 +02:00
renovate[bot]
64afccb36c fix(deps): update dependency beautifulsoup4 to v4.13.4 (#5352)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-17 21:20:45 +00:00
renovate[bot]
5b0497e14e chore(deps): update dependency ruff to v0.11.6 (#5361)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-17 23:09:34 +02:00
renovate[bot]
5010bb5665 chore(deps): update dependency mkdocs-material to v9.6.12 (#5359)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-17 17:09:57 +00:00
Hayden
c7789da1ad chore(l10n): New Crowdin updates (#5360) 2025-04-17 18:59:26 +02:00
renovate[bot]
b853ce221d fix(deps): update dependency openai to v1.75.0 (#5357)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-16 22:13:41 +02:00
renovate[bot]
3522f81025 fix(deps): update dependency openai to v1.74.0 (#5346)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-14 20:15:28 -05:00
ant385525
a22c0c4787 docs: Add community docs for an iOS shortcut (attempt 2) (#5345) 2025-04-14 16:01:57 +00:00
renovate[bot]
4dfc5ead54 fix(deps): update dependency pillow to v11.2.1 (#5337)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-14 10:12:17 -05:00
github-actions[bot]
c667bda427 chore(auto): Update pre-commit hooks (#5344)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2025-04-14 08:52:50 +00:00
renovate[bot]
188b129da4 fix(deps): update dependency typing-extensions to v4.13.2 (#5313)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-14 10:42:32 +02:00
renovate[bot]
6845b51def chore(deps): update dependency ruff to v0.11.5 (#5333)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-12 21:00:07 +02:00
renovate[bot]
c8ec19e371 fix(deps): update dependency openai to v1.73.0 (#5335)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-12 19:39:20 +02:00
renovate[bot]
c9002d2391 fix(deps): update dependency pydantic to v2.11.3 (#5325)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-10 16:47:31 +02:00
Hayden
0ba4cc4d4c chore(l10n): New Crowdin updates (#5310)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2025-04-10 13:40:47 +00:00
renovate[bot]
5baade58fb fix(deps): update dependency openai to v1.72.0 (#5328)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-10 15:30:36 +02:00
Kuchenpirat
e667fe8a5e fix: build pull request image only in mealie repo (#5327) 2025-04-09 07:58:49 +02:00
renovate[bot]
dc1ec4e69a fix(deps): update dependency openai to v1.71.0 (#5322)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-07 18:24:14 -05:00
github-actions[bot]
55af4082e7 chore(auto): Update pre-commit hooks (#5320)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2025-04-07 15:14:50 +00:00
renovate[bot]
8b059121d1 fix(deps): update dependency lxml to v5.3.2 (#5318)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-07 10:04:04 -05:00
renovate[bot]
5bf3ba0cc2 chore(deps): update dependency ruff to v0.11.4 (#5317)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-04 18:44:17 +00:00
renovate[bot]
d4a1c7f756 fix(deps): update dependency rapidfuzz to v3.13.0 (#5314)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-03 22:49:36 -05:00
renovate[bot]
a06046cf5d fix(deps): update dependency authlib to v1.5.2 (#5308)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-03 13:50:49 -05:00
renovate[bot]
f8c4112c39 fix(deps): update dependency openai to v1.70.0 (#5300)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-03 13:36:25 -05:00
renovate[bot]
e118d24261 fix(deps): update dependency pydantic to v2.11.2 (#5312)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-03 18:17:28 +00:00
renovate[bot]
8f3772ed01 chore(deps): update dependency ruff to v0.11.3 (#5311)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-03 13:04:00 -05:00
Hayden
007d249c20 chore(l10n): New Crowdin updates (#5301) 2025-04-01 13:46:57 +00:00
renovate[bot]
24be42ee88 chore(deps): update dependency mkdocs-material to v9.6.11 (#5304)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-01 08:35:20 -05:00
Hayden
0d605e20fc chore(l10n): New Crowdin updates (#5281) 2025-03-31 18:36:46 +00:00
renovate[bot]
cbfb649d96 chore(deps): update dependency coverage to v7.8.0 (#5297)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-31 01:21:49 +00:00
renovate[bot]
b1341b9102 fix(deps): update dependency apprise to v1.9.3 (#5295)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-31 01:10:46 +00:00
renovate[bot]
6be67a1a98 chore(deps): update dependency rich to v14 (#5294)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-31 00:59:29 +00:00
renovate[bot]
62d2dd1c0d chore(deps): update dependency mkdocs-material to v9.6.10 (#5293)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-30 19:46:11 -05:00
renovate[bot]
5c890f3d0e fix(deps): update dependency alembic to v1.15.2 (#5289)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-30 22:00:49 +00:00
renovate[bot]
d071215f06 fix(deps): update dependency pydantic to v2.11.1 (#5285)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-30 16:49:16 -05:00
renovate[bot]
e5b2ef49b2 fix(deps): update dependency openai to v1.69.0 (#5284)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-30 16:31:47 -05:00
renovate[bot]
766968b97d fix(deps): update dependency sqlalchemy to v2.0.40 (#5283)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-30 20:45:01 +00:00
renovate[bot]
ec0e31f8ec fix(deps): update dependency typing-extensions to v4.13.0 (#5278)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-30 20:30:10 +00:00
renovate[bot]
c911a3190e fix(deps): update dependency python-dotenv to v1.1.0 (#5275)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-30 20:12:34 +00:00
renovate[bot]
c4baf50ae3 chore(deps): update dependency pytest-asyncio to ^0.26.0 (#5274)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-30 19:56:14 +00:00
renovate[bot]
30382b36cb fix(deps): update dependency orjson to v3.10.16 (#5270)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-30 19:35:10 +00:00
renovate[bot]
6b181c122f chore(deps): update dependency coverage to v7.7.1 (#5260)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-30 19:14:33 +00:00
renovate[bot]
54bb39af55 chore(deps): update dependency pylint to v3.3.6 (#5251)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-30 13:52:20 -05:00
Kuchenpirat
b994d27b0c dev: add pull request image build workflow (#5235) 2025-03-30 18:38:01 +00:00
Michael Genson
07cd98c125 fix: Pre-download NLTK during Docker build (#5290) 2025-03-30 09:22:58 +02:00
Hayden
1c6b35a53c chore(l10n): New Crowdin updates (#5262)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2025-03-26 13:56:10 +00:00
Kuchenpirat
7c05d58f26 fix: remove unmaintained ios shortcut (#5280) 2025-03-26 08:36:58 -05:00
github-actions[bot]
6ecba01eb6 chore(auto): Update pre-commit hooks (#5269)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
2025-03-24 13:55:08 +00:00
renovate[bot]
a39f8cdb90 fix(deps): update dependency fastapi to v0.115.12 (#5268)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-24 08:44:05 -05:00
Kuchenpirat
18ebc3de5f fix: update admin scripts paths in docs (#5263) 2025-03-22 10:09:55 -05:00
renovate[bot]
ead4d4c95e chore(deps): update dependency ruff to v0.11.2 (#5258)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-21 15:39:27 +00:00
Hayden
6ae4e67c84 chore(l10n): New Crowdin updates (#5252) 2025-03-21 15:29:07 +00:00
renovate[bot]
e77247441c fix(deps): update dependency openai to v1.68.2 (#5259)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-21 16:18:19 +01:00
renovate[bot]
d55e48cbe0 chore(deps): update dependency ruff to v0.11.1 (#5253)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-21 12:22:58 +01:00
renovate[bot]
94170e3e6c fix(deps): update dependency openai to v1.68.0 (#5254)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-21 11:27:53 +01:00
Hayden
e0e619df5a chore(l10n): New Crowdin updates (#5250) 2025-03-20 13:41:31 +01:00
Hayden
8469aae7ab chore(l10n): New Crowdin updates (#5248) 2025-03-20 12:19:16 +01:00
renovate[bot]
94dd6eab81 fix(deps): update dependency openai to v1.67.0 (#5247)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-20 08:57:23 +01:00
Hayden
8c25bdb62d chore(l10n): New Crowdin updates (#5246) 2025-03-20 08:40:19 +01:00
Hayden
cbbc07cda9 chore(l10n): New Crowdin updates (#5245) 2025-03-19 17:38:30 +00:00
Hayden
6fc9ece191 chore(l10n): New Crowdin updates (#5243) 2025-03-19 17:21:21 +00:00
Kuchenpirat
cd6ccf099b fix: spelling of github (#5244) 2025-03-19 17:08:25 +00:00
renovate[bot]
4f7ee33f1b chore(deps): update dependency pre-commit to v4.2.0 (#5238)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-19 15:45:24 +00:00
github-actions[bot]
9bfee56bd5 docs(auto): Update image tag, for release v2.8.0 (#5236)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2025-03-19 15:34:57 +00:00
renovate[bot]
e5da33e38e chore(deps): update dependency coverage to v7.7.0 (#5227)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-19 08:40:53 -05:00
renovate[bot]
2748db781f fix(deps): update dependency pillow-heif to ^0.22.0 (#5219)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-19 13:27:44 +00:00
renovate[bot]
d9bbf8de30 fix(deps): update dependency sqlalchemy to v2.0.39 (#5204)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-19 13:15:24 +00:00
renovate[bot]
c29f651a36 fix(deps): update dependency openai to v1.66.5 (#5197)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-19 13:03:55 +00:00
renovate[bot]
5e217fc269 fix(deps): update dependency alembic to v1.15.1 (#5178)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-19 07:46:15 -05:00
Michael Genson
0f58ac5b47 fix: "NOT IN" doesn't apply filter properly (#5154) 2025-03-18 18:07:26 +00:00
Hayden
2deb9c276c chore(l10n): New Crowdin updates (#5185)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2025-03-18 16:46:08 +00:00
Michael Genson
f46760755d chore: Bump Ruff to 0.11.0 (#5233) 2025-03-18 15:52:30 +01:00
github-actions[bot]
eca2ba36c8 chore(auto): Update pre-commit hooks (#5229)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2025-03-17 13:14:37 +00:00
renovate[bot]
cdd8e3aca9 chore(deps): update dependency mkdocs-material to v9.6.9 (#5209)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-17 11:44:15 +00:00
Carter
d724f408cc feat: OIDC: Call userinfo if no claims found in id token (#5228)
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2025-03-17 03:05:20 +00:00
Alexandre Boutoille
3b1a6280d6 fix: PostgreSQL capitalization (#5220) 2025-03-16 12:36:32 -05:00
Hayden
974d848ee2 fix: Revert "feat: Update seeding to use new foods list format - round 2" (#5208) 2025-03-12 23:27:18 -05:00
Cameronwyatt
72668e2881 feat: Update seeding to use new foods list format - round 2 (#5189) 2025-03-13 00:30:03 +00:00
Marco H
9e47ade475 docs: faq.md: fix paths to scripts (#5201) 2025-03-11 12:39:09 +00:00
Michael Genson
ad59e653da fix: Case Insensitive Query Filters (#5162) 2025-03-10 10:56:12 +00:00
github-actions[bot]
4ecfd8ec78 chore(auto): Update pre-commit hooks (#5200)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2025-03-10 09:23:57 +00:00
renovate[bot]
e254dda368 chore(deps): update dependency pylint to v3.3.5 (#5194)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-10 10:13:08 +01:00
Bryce Chidester
7de47004e9 docs: Re-add missing environment variable documentation (#5199) 2025-03-09 21:51:17 +00:00
renovate[bot]
28cc6b8d1e fix(deps): update dependency recipe-scrapers to v15.6.0 (#5198)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-09 15:08:14 -05:00
renovate[bot]
21278cd7fe chore(deps): update dependency ruff to v0.9.10 (#5188)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-07 12:01:47 -06:00
Michael Genson
9a469fe4fd fix: Filter out null chars from OpenAI response (#5187) 2025-03-07 17:34:32 +01:00
Hayden
98472ff471 chore(l10n): New Crowdin updates (#5179) 2025-03-06 18:13:33 +00:00
renovate[bot]
e2b5f4d08c fix(deps): update dependency openai to v1.65.4 (#5182)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-06 13:56:47 +00:00
renovate[bot]
232ad8410c fix(deps): update dependency jinja2 to v3.1.6 [security] (#5183)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-06 07:45:12 -06:00
renovate[bot]
c65bd14d74 fix(deps): update dependency openai to v1.65.3 (#5180)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-04 18:03:26 -06:00
Hayden
774b3123a2 chore(l10n): New Crowdin updates (#5176) 2025-03-04 12:18:39 +01:00
Hayden
40818722ab chore(l10n): New Crowdin updates (#5175) 2025-03-03 17:21:25 -06:00
Hayden
9cf40f89ea chore(l10n): New Crowdin updates (#5174) 2025-03-03 21:50:07 +01:00
Eric Hoffmann
a758406719 fix: Use recipe-parsers nutrients function for nutrition parsing (#5165) 2025-03-03 14:00:17 +00:00
github-actions[bot]
8b3ff9b099 chore(auto): Update pre-commit hooks (#5167)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
2025-03-03 10:37:55 +00:00
renovate[bot]
c4b26fef8c chore(deps): update dependency mkdocs-material to v9.6.7 (#5163)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-03 10:26:53 +00:00
Hayden
ba8b94232a chore(l10n): New Crowdin updates (#5161) 2025-03-03 10:16:34 +00:00
Eric Hoffmann
5f766a8c3f dev: chown commandhistory to correct user during devcontainer creation (#5166) 2025-03-03 05:23:52 +00:00
renovate[bot]
46d28bd96b chore(deps): update dependency pytest to v8.3.5 (#5158)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-02 14:23:02 -06:00
renovate[bot]
d483da6c4c fix(deps): update dependency rapidfuzz to v3.12.2 (#5159)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-02 18:55:55 +00:00
Hayden
a6fd50b1ba chore(l10n): New Crowdin updates (#5149) 2025-03-02 12:47:57 +00:00
renovate[bot]
000ec9475a fix(deps): update dependency fastapi to v0.115.11 (#5150)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-01 22:56:41 +00:00
renovate[bot]
25adfe1a48 fix(deps): update dependency openai to v1.65.2 (#5147)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-01 16:45:44 -06:00
renovate[bot]
6381ac4c7f chore(deps): update dependency mkdocs-material to v9.6.6 (#5141)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-01 15:53:00 +00:00
renovate[bot]
c636a4f73e fix(deps): update dependency fastapi to v0.115.10 (#5139)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-01 09:42:24 -06:00
Hayden
38ab8aa48d chore(l10n): New Crowdin updates (#5145) 2025-03-01 16:30:09 +01:00
Hayden
17f64a5cfa chore(l10n): New Crowdin updates (#5142) 2025-03-01 13:59:55 +01:00
renovate[bot]
d11bdaf235 fix(deps): update dependency authlib to v1.5.1 (#5138)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-28 16:02:49 +00:00
Michael Genson
cfba2fff7e fix(deps): update dependency ingredient-parser-nlp to v2 (#5137) 2025-02-28 15:51:36 +00:00
Hayden
61ae6b3e32 chore(l10n): New Crowdin updates (#5135) 2025-02-28 15:31:54 +00:00
Michael Genson
9c4afb57b8 chore: Renovate Ignore Python Upgrades (#5134) 2025-02-28 14:40:44 +00:00
Michael Genson
b12aea8272 feat: Migrate from CRF++ to Ingredient Parser (a Python package) (#5061) 2025-02-28 15:17:28 +01:00
Hayden
ec1a9d78ac chore(l10n): New Crowdin updates (#5131) 2025-02-28 13:18:28 +00:00
renovate[bot]
8250e793b8 fix(deps): update dependency bcrypt to v4.3.0 (#5127)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-28 13:12:26 +01:00
github-actions[bot]
f3310ddba6 docs(auto): Update image tag, for release v2.7.1 (#5129)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2025-02-28 11:17:24 +00:00
renovate[bot]
d573a9ea5d chore(deps): update dependency ruff to v0.9.9 (#5130)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-28 12:07:53 +01:00
Michael Genson
d24a518bac fix: Remove br encoding from scraper (#5115)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2025-02-28 09:41:31 +00:00
renovate[bot]
46b821d832 fix(deps): update dependency fastapi to v0.115.9 (#5122)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-27 23:48:45 +00:00
renovate[bot]
637bb30e13 chore(deps): update dependency ruff to v0.9.8 (#5112)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-27 23:38:37 +00:00
renovate[bot]
b930ebfb20 fix(deps): update dependency openai to v1.65.1 (#5123)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-27 17:28:11 -06:00
github-actions[bot]
5e2c40731c docs(auto): Update image tag, for release v2.7.0 (#5111)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2025-02-27 16:33:35 +00:00
renovate[bot]
54ae810acc fix(deps): update dependency pydantic-settings to v2.8.1 (#5108)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-27 17:23:50 +01:00
Michael Genson
716c85cc3b fix: Bulk Add Recipes to Shopping List (#5054) 2025-02-27 13:58:40 +00:00
Kuchenpirat
3d1b76bcad fix: update recipe time row direction on small screens (#5107) 2025-02-27 07:48:29 -06:00
Hayden
4843a9a74a chore(l10n): New Crowdin updates (#5106) 2025-02-27 08:12:19 +01:00
Hayden
12aec943dc chore(l10n): New Crowdin updates (#5105) 2025-02-26 17:46:57 +00:00
Kuchenpirat
3b0d6050a2 feat: redesign recipe info card (#5026)
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2025-02-26 16:07:12 +00:00
renovate[bot]
3fd3661206 fix(deps): update dependency authlib to v1.5.0 (#5103)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-25 07:54:59 -06:00
Michael Genson
df8dd3fe4a fix: Invalidate Expired Shared Links (#5065) 2025-02-25 13:01:32 +00:00
Chip
a2c6b3f69b docs: Add additional information and tips to Backup & Restore Usage Documentation Page & Shopping List (#4843)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2025-02-25 12:50:44 +00:00
renovate[bot]
c01593e918 fix(deps): update dependency beautifulsoup4 to v4.13.3 (#5090)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-25 12:59:22 +01:00
Michael Genson
48484e5b1a feat: Better Scraping/More User Agents (#5091) 2025-02-25 10:57:05 +00:00
Hayden
173e8792a6 chore(l10n): New Crowdin updates (#5102) 2025-02-25 11:46:37 +01:00
Hayden
28047d9b58 chore(l10n): New Crowdin updates (#5101) 2025-02-25 09:51:24 +01:00
Hayden
82393b0cd1 chore(l10n): New Crowdin updates (#5100) 2025-02-24 21:13:21 +00:00
Hayden
eea9a6ae16 chore(l10n): New Crowdin updates (#5099) 2025-02-24 17:08:51 +01:00
Hayden
ca05c25b61 chore(l10n): New Crowdin updates (#5098) 2025-02-24 14:42:03 +00:00
github-actions[bot]
af912ebefb chore(auto): Update pre-commit hooks (#5069)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2025-02-24 14:07:49 +00:00
renovate[bot]
e6b46b21d9 chore(deps): update dependency ruff to v0.9.7 (#5079)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-24 14:58:10 +01:00
miah
a41f8b31f1 feat: Improve Shopping List UI (#4608)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2025-02-24 08:41:04 +00:00
Michael Genson
6271b33b1b fix: Only run migration data fixes on migrations (#5038) 2025-02-24 08:29:12 +00:00
renovate[bot]
09234e3bf0 fix(deps): update dependency openai to v1.64.0 (#5092)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-24 08:06:07 +00:00
Hayden
9f467b702e chore(l10n): New Crowdin updates (#5093) 2025-02-24 08:55:36 +01:00
renovate[bot]
6c156e0e14 fix(deps): update dependency pydantic-settings to v2.8.0 (#5086)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-22 10:52:20 -06:00
renovate[bot]
10818ab0ba fix(deps): update dependency recipe-scrapers to v15.5.1 (#5089)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-22 16:22:27 +00:00
renovate[bot]
0778919134 fix(deps): update dependency recipe-scrapers to v15.5.0 (#5087)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-22 10:11:59 -06:00
Hayden
fb8746e7b8 chore(l10n): New Crowdin updates (#5080) 2025-02-20 20:44:12 +01:00
renovate[bot]
c82d08c0d9 chore(deps): update dependency mkdocs-material to v9.6.5 (#5078)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-19 21:18:47 -06:00
Hayden
be1dc69be6 chore(l10n): New Crowdin updates (#5073) 2025-02-19 22:35:43 +00:00
renovate[bot]
8ea932ef7c chore(deps): update dependency mkdocs-material to v9.6.4 (#5051)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-18 10:27:52 +00:00
renovate[bot]
70a6bc4769 fix(deps): update dependency lxml to v5.3.1 (#5048)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-18 10:17:29 +00:00
renovate[bot]
c765401ac5 fix(deps): update dependency openai to v1.63.2 (#5070)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-18 21:06:59 +11:00
Michael Genson
3b12a62fc6 fix(deps): update dependency openai to v1.63.0 (#5067) 2025-02-16 21:24:59 +01:00
renovate[bot]
c351cf7bd5 chore(deps): update dependency coverage to v7.6.12 (#5042)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-16 13:45:03 -06:00
RMI78
aea5eb3419 feat: support _FILE suffix for docker secrets (again) (#4958)
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2025-02-16 10:59:50 -06:00
Michael Genson
cb9008bb5c fix: shorten indexes to fix issues with index limits (#5045) 2025-02-11 15:54:32 +00:00
renovate[bot]
3534e445d8 chore(deps): update dependency ruff to v0.9.6 (#5049)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-11 09:44:49 -06:00
Michael Chisholm
c0ab7673ba dev: Create a Python package, build Docker images from it (#4551)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
Co-authored-by: Hayden <64056131+hay-kot@users.noreply.github.com>
2025-02-11 09:28:40 -06:00
github-actions[bot]
abf73e08ec chore(auto): Update pre-commit hooks (#5047)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2025-02-10 13:29:35 +00:00
Hayden
c4df8f0611 chore(l10n): New Crowdin updates (#5046) 2025-02-10 11:06:55 +02:00
renovate[bot]
b28eefab77 fix(deps): update dependency sqlalchemy to v2.0.38 (#5030)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-08 08:11:00 -06:00
renovate[bot]
6f3a139efd chore(deps): update dependency ruff to v0.9.5 (#5029)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-08 11:17:13 +00:00
renovate[bot]
790f4a9b9a chore(deps): update dependency mkdocs-material to v9.6.3 (#5031)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-08 22:07:12 +11:00
Michael Genson
c7c87068bf chore: Remove Warnings (#5039) 2025-02-07 23:42:43 +01:00
renovate[bot]
f48dafd855 fix(deps): update dependency pydantic to v2.10.6 (#4940)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-07 13:51:27 -06:00
Hayden
273f628acd chore(l10n): New Crowdin updates (#5032) 2025-02-07 14:58:28 +01:00
github-actions[bot]
a8653ea904 docs(auto): Update image tag, for release v2.6.0 (#5022)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2025-02-06 08:38:46 +00:00
renovate[bot]
0093627adb fix(deps): update dependency beautifulsoup4 to v4.13.3 (#5009)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-06 09:29:10 +01:00
renovate[bot]
2d73c703cb fix(deps): update dependency openai to v1.61.1 (#5020)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-05 21:40:03 +00:00
Hayden
10315fe8f7 chore(l10n): New Crowdin updates (#5021)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2025-02-05 21:29:56 +00:00
renovate[bot]
1f7d5a57af chore(deps): update dependency mypy to v1.15.0 (#5017)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-05 14:21:39 +01:00
Hayden
6d22df7b95 chore(l10n): New Crowdin updates (#5018) 2025-02-05 11:16:20 +01:00
Hayden
f5ddcdf193 chore(l10n): New Crowdin updates (#5016) 2025-02-04 17:36:45 +01:00
renovate[bot]
36f6917308 chore(deps): update dependency mkdocs-material to v9.6.2 (#5011)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-03 18:34:00 +01:00
github-actions[bot]
53b5df92ae chore(auto): Update pre-commit hooks (#5008)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2025-02-03 11:31:16 +00:00
renovate[bot]
736352af5f chore(deps): update dependency mkdocs-material to v9.6.1 (#4992)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-03 12:21:36 +01:00
renovate[bot]
41940b8003 fix(deps): update dependency openai to v1.61.0 (#4995)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-01 09:15:42 +01:00
Hayden
641d24aa1e fix: revert "feat: Add new labels and foods for en-US language" (#4996) 2025-01-31 22:46:57 -06:00
Cameronwyatt
fb08a11ffe feat: Add new labels and foods for en-US language
Update all locale seeding files and seeding logic to parse the new format Only add new labels, units, and foods during seeding (checking against existing names)
2025-02-01 02:17:43 +00:00
renovate[bot]
ba26378abc fix(deps): update dependency rapidfuzz to v3.12.1 (#4990)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-30 19:27:58 -06:00
Hayden
2a4b0d3d8b chore(l10n): New Crowdin updates (#4991) 2025-01-30 18:52:37 -06:00
renovate[bot]
af4b3fa83d fix(deps): update dependency fastapi to v0.115.8 (#4989)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-30 17:40:55 -06:00
renovate[bot]
564012c53d fix(deps): update dependency authlib to v1.4.1 (#4971)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-30 22:55:14 +00:00
renovate[bot]
2316a3fef9 chore(deps): update dependency ruff to v0.9.4 (#4988)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-30 16:43:59 -06:00
PancakeZik
a52fda72d6 fix: Fixed LastMade recipes sorting order (#4980)
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2025-01-30 10:33:58 +01:00
Michael Genson
cb05adeb48 fix: Remove API Tokens from User APIs (#4985) 2025-01-29 19:52:12 +00:00
Felix Schneider
f2eadd2908 fix: Ensure bring api docs are shown (PR 4920) (#4948)
Co-authored-by: Hayden <64056131+hay-kot@users.noreply.github.com>
2025-01-29 12:10:18 -06:00
renovate[bot]
4229061377 chore(deps): update dependency pytest-asyncio to v0.25.3 (#4972)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-29 10:08:12 +01:00
renovate[bot]
970ed1da7b chore(deps): update dependency pylint to v3.3.4 (#4970)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-29 09:11:18 +01:00
Hayden
dd9d9b85c1 chore(l10n): New Crowdin updates (#4975) 2025-01-29 08:15:16 +01:00
Hayden
6001d679e7 chore(l10n): New Crowdin updates (#4968)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2025-01-28 07:41:25 +00:00
renovate[bot]
02cf53340b fix(deps): update dependency openai to v1.60.2 (#4967)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-28 08:31:55 +01:00
github-actions[bot]
95042f1d40 chore(auto): Update pre-commit hooks (#4965)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2025-01-27 08:01:18 +00:00
Michael Genson
34245687a5 feat: Add Servings/Yield to Recipe Actions (#4952)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2025-01-27 07:37:09 +00:00
Hayden
7e5c750231 chore(l10n): New Crowdin updates (#4953) 2025-01-27 08:19:45 +01:00
Cody
93c2df41c3 feat: Shopping list UI overhaul - three dot menu (#4415)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2025-01-26 14:04:40 +00:00
James Elliott
1e69577d12 docs: update oidcv2 authelia link (#4942)
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2025-01-25 01:48:34 +00:00
renovate[bot]
cbafc28fa1 fix(deps): update dependency openai to v1.60.1 (#4941)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-24 22:59:56 +01:00
renovate[bot]
8622e19502 chore(deps): update dependency ruff to v0.9.3 (#4939)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-23 15:14:55 -06:00
Hayden
2fee1778ed chore(l10n): New Crowdin updates (#4938) 2025-01-23 21:42:22 +01:00
renovate[bot]
2284ecb226 fix(deps): update dependency fastapi to v0.115.7 (#4935)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-23 11:22:02 -06:00
github-actions[bot]
2716260473 docs(auto): Update image tag, for release v2.5.0 (#4933)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2025-01-22 21:00:40 +00:00
Hayden
0b89ab1a95 chore(l10n): New Crowdin updates (#4934) 2025-01-22 14:51:47 -06:00
renovate[bot]
d2ced50fcc fix(deps): update dependency openai to v1.60.0 (#4932)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-22 17:47:55 +01:00
Kuchenpirat
bf616f9db5 fix: prevent users from updating their own household privileges (#4928)
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2025-01-22 16:06:41 +00:00
Kuchenpirat
8cd2da0abb fix: prevent recipe sharing from different group (#4929) 2025-01-22 09:51:29 -06:00
Hayden
c74ba0eca1 chore(l10n): New Crowdin updates (#4926) 2025-01-21 20:29:01 +00:00
Felix Schneider
17bed60399 docs: Add community guide for integrating the Mealie-Bring-API (#4920) 2025-01-21 16:44:01 +00:00
renovate[bot]
7a2f91eb32 chore(deps): update dependency pre-commit to v4.1.0 (#4922)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-21 10:53:32 +01:00
Chip
9b36d08948 docs: Add to FAQ: When / how to use Linked Ingredients (#4897)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2025-01-20 16:29:15 +00:00
renovate[bot]
5105c42abe fix(deps): update dependency openai to v1.59.9 (#4919)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-20 16:09:30 +00:00
github-actions[bot]
b040778c53 chore(auto): Update pre-commit hooks (#4917)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
2025-01-20 15:58:29 +00:00
Michael Genson
0d96ec3858 fix: Show All Recipes in Cookbook Regardless of Sort (#4908)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2025-01-20 13:01:34 +00:00
renovate[bot]
c096605fc9 fix(deps): update dependency orjson to v3.10.15 (#4911)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-19 20:25:39 -06:00
renovate[bot]
96615b17c9 fix(deps): update dependency alembic to v1.14.1 (#4915)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-20 01:24:06 +00:00
renovate[bot]
689f31a4da fix(deps): update dependency openai to v1.59.8 (#4909)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-18 09:28:41 -06:00
renovate[bot]
f89e038769 chore(deps): update dependency mkdocs-material to v9.5.50 (#4910)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-18 00:17:13 -06:00
Hayden
c979df1372 chore(l10n): New Crowdin updates (#4906) 2025-01-16 16:57:52 +01:00
renovate[bot]
2b124e7951 chore(deps): update dependency ruff to v0.9.2 (#4905)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-16 09:12:13 -06:00
Borriborri
07bbda808f fix: PWA - Allow CORS and add UseCredentials to nuxt.config.js (#4902)
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2025-01-15 21:20:29 +00:00
renovate[bot]
04eeaa5acf fix(deps): update dependency aniso8601 to v10 (#4874)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-15 15:10:44 -06:00
John Corser
6097ff2a34 feat: add delete option to three dots menu (#4842)
Co-authored-by: John Corser <xss@amazon.com>
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2025-01-15 16:49:21 +00:00
Hayden
b5dfaf12f1 chore(l10n): New Crowdin updates (#4900) 2025-01-15 15:59:16 +00:00
Kuchenpirat
b8266db218 docs: remove titles from within individual FAQs (#4899) 2025-01-15 09:49:14 -06:00
renovate[bot]
67fe739b52 fix(deps): update dependency recipe-scrapers to v15.4.0 (#4898)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-15 00:16:07 +00:00
gpotter@gmail.com
203218a3d5 fix: Refresh recipe section when clicking card tag chip (#4810)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2025-01-14 18:18:16 +01:00
Shlok Sheth
4b992afc67 fix: Recipe comments display a username/id rather than … (#4726)
Co-authored-by: Kuchenpirat <jojow@gmx.net>
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2025-01-14 16:00:23 +00:00
Hayden
376c14be9a chore(l10n): New Crowdin updates (#4896) 2025-01-14 15:50:47 +00:00
Kuchenpirat
5e734548a2 docs: move faq into details / spoilers (#4891) 2025-01-14 09:40:51 -06:00
Nate Hamm
aed93ce1f4 fix: Preserve orientation when converting to .webp (#4803)
Co-authored-by: Hayden <64056131+hay-kot@users.noreply.github.com>
2025-01-14 04:56:07 +00:00
renovate[bot]
d7f460be0f chore(deps): update dependency ruff to v0.9.1 (#4889)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-13 17:45:56 +01:00
Michael Genson
e9892aba89 feat: Move "on hand" and "last made" to household (#4616)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2025-01-13 17:19:49 +01:00
renovate[bot]
e565b919df fix(deps): update dependency openai to v1.59.7 (#4890)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-13 16:57:35 +01:00
renovate[bot]
2c2de1e95b chore(deps): update dependency ruff to ^0.9.0 (#4871)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2025-01-13 15:43:55 +00:00
github-actions[bot]
ea0bec2336 chore(auto): Update pre-commit hooks (#4886)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2025-01-13 15:31:42 +00:00
Chip
7f99e2fc36 docs: Fix Spelling Errors on Nutritional Values (#4888) 2025-01-13 15:19:27 +00:00
Chip
2e13f33eb1 docs: Update FAQ to include Nutritional Values and enabling per recipe / household (#4887)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2025-01-13 14:39:42 +01:00
Hayden
dde93e78c9 chore(l10n): New Crowdin updates (#4882) 2025-01-12 17:49:18 +01:00
Hayden
e50299e7ce chore(l10n): New Crowdin updates (#4877) 2025-01-11 18:19:37 +01:00
renovate[bot]
2be4bd1f7c fix(deps): update dependency sqlalchemy to v2.0.37 (#4873)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-11 10:58:59 +00:00
renovate[bot]
398b41ed23 fix(deps): update dependency openai to v1.59.6 (#4872)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-11 21:48:47 +11:00
Hayden
25bd742903 chore(l10n): New Crowdin updates (#4875) 2025-01-10 23:07:46 +01:00
renovate[bot]
9918d36a1a chore(deps): update dependency pytest-asyncio to v0.25.2 (#4863)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-09 11:55:33 -06:00
renovate[bot]
357e45c264 fix(deps): update dependency pydantic to v2.10.5 (#4870)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-09 16:40:18 +00:00
renovate[bot]
bfa3a3e826 fix(deps): update dependency apprise to v1.9.2 (#4867)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-09 16:27:41 +00:00
Hayden
b45f54150b chore(l10n): New Crowdin updates (#4869) 2025-01-09 10:15:06 -06:00
renovate[bot]
b5e1debabc fix(deps): update dependency orjson to v3.10.14 (#4865)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-08 18:28:22 +00:00
renovate[bot]
406ff384c9 fix(deps): update dependency openai to v1.59.5 (#4864)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-08 12:16:04 -06:00
Hayden
a12e4fd5bb chore(l10n): New Crowdin updates (#4862) 2025-01-08 14:04:20 +00:00
renovate[bot]
d48d2c24af fix(deps): update dependency pydantic-settings to v2.7.1 (#4805)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-07 16:03:37 -06:00
Kuchenpirat
0f7c1d6a14 fix: remove kitchen timer (#4857) 2025-01-07 19:19:30 +00:00
Kuchenpirat
22f306a384 feat: add make_admin script (#4853) 2025-01-07 17:38:01 +00:00
Kuchenpirat
688d07a5c8 fix: remove edit scale icon when not scalable (#4849) 2025-01-07 17:26:36 +00:00
Kuchenpirat
d3c6106566 dev: remove PR type from PR description (#4847) 2025-01-07 11:16:12 -06:00
renovate[bot]
4d21900dff fix(deps): update dependency openai to v1.59.4 (#4855)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-07 17:08:56 +01:00
gpotter@gmail.com
795c2cf575 fix: Allow scraping calories as number (#4854)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2025-01-07 15:55:59 +00:00
Hayden
eafb7b9ffc chore(l10n): New Crowdin updates (#4852) 2025-01-07 13:48:27 +00:00
github-actions[bot]
d0508f7ca4 docs(auto): Update image tag, for release v2.4.2 (#4845)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
2025-01-07 09:02:06 +00:00
renovate[bot]
f2e1289ab0 fix(deps): update dependency pillow to v11.1.0 (#4814)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-07 19:51:07 +11:00
github-actions[bot]
92ab103b3a chore(auto): Update pre-commit hooks (#4838)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
2025-01-06 16:01:38 +00:00
Hayden
dec67f6ef9 chore(l10n): New Crowdin updates (#4840) 2025-01-06 16:13:32 +01:00
Kuchenpirat
932473d0ff fix: RecipeActionMenu location (#4835) 2025-01-06 03:04:38 +00:00
David Pearson
288bb65d67 fix: Autocomplete Accessibility on Login form (#4837) 2025-01-05 21:28:19 +00:00
renovate[bot]
cb1dbe34fa chore(deps): update dependency ruff to v0.8.6 (#4816)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-05 21:41:54 +01:00
renovate[bot]
4a14403274 chore(deps): update dependency pytest-asyncio to v0.25.1 (#4813)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-05 21:21:44 +01:00
Hayden
df04b23c88 chore(l10n): New Crowdin updates (#4831) 2025-01-05 20:20:47 +01:00
renovate[bot]
a6b413b431 fix(deps): update dependency openai to v1.59.3 (#4826)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-05 13:06:41 +01:00
Hayden
041d7d81fa chore(l10n): New Crowdin updates (#4827) 2025-01-04 15:11:20 +01:00
renovate[bot]
02197677b7 fix(deps): update dependency openai to v1.59.2 (#4823)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-03 20:59:35 +01:00
Hayden
0636816167 chore(l10n): New Crowdin updates (#4821) 2025-01-03 16:55:42 +01:00
Hayden
8b31257617 chore(l10n): New Crowdin updates (#4815) 2025-01-02 14:34:50 +01:00
Hayden
825914a4bd chore(l10n): New Crowdin updates (#4801) 2024-12-30 20:18:11 -06:00
renovate[bot]
fb5f13991a fix(deps): update dependency orjson to v3.10.13 (#4791)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-30 17:40:53 -06:00
VTerret
72b0f11b72 fix: 3892 missing parameter documentation (#4577)
Co-authored-by: vterret <vterret@wps.webhelp.com>
2024-12-30 23:18:58 +00:00
Nate Hamm
78ab232516 fix: SyntaxWarning for Escape Characters in String Literals (#4792) 2024-12-30 21:31:02 +00:00
Dan Webb
716c5c1d87 chore: Add OIDC debug logging (#4658)
Signed-off-by: Dan Webb <dan.webb@damacus.io>
2024-12-30 21:20:15 +00:00
renovate[bot]
5d33694bc6 chore(deps): update dependency mypy to v1.14.1 (#4797)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-30 12:16:09 -06:00
Hayden
23a85f51d2 chore(l10n): New Crowdin updates (#4787) 2024-12-28 16:17:34 +00:00
Hayden
43b4e4b028 chore(l10n): New Crowdin updates (#4784) 2024-12-27 17:29:26 +01:00
renovate[bot]
251544b2c5 chore(deps): update dependency coverage to v7.6.10 (#4781)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-26 15:53:57 -06:00
Hayden
c0b531030f chore(l10n): New Crowdin updates (#4774) 2024-12-25 05:04:31 +00:00
github-actions[bot]
f7b78783ec chore(auto): Update pre-commit hooks (#4769)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
2024-12-24 05:13:54 +00:00
renovate[bot]
bca80dcc53 chore(deps): update dependency pylint to v3.3.3 (#4772)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-23 23:02:53 -06:00
Hayden
9e25e58378 chore(l10n): New Crowdin updates (#4764) 2024-12-22 17:39:41 +01:00
renovate[bot]
4c4e12a794 fix(deps): update dependency jinja2 to v3.1.5 (#4760)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-21 17:25:01 -06:00
Hayden
a3f0506ba3 chore(l10n): New Crowdin updates (#4759) 2024-12-21 16:34:18 +00:00
renovate[bot]
f46e730eb5 chore(deps): update dependency mypy to v1.14.0 (#4753)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-20 14:48:20 -06:00
Hayden
a2e54aaefc chore(l10n): New Crowdin updates (#4754) 2024-12-20 10:43:11 -06:00
renovate[bot]
2855171fda fix(deps): update dependency authlib to v1.4.0 (#4752)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-20 10:01:02 -06:00
Hayden
209e932482 chore(l10n): New Crowdin updates (#4751)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2024-12-19 17:48:30 +00:00
renovate[bot]
f31c8f4dac chore(deps): update dependency ruff to v0.8.4 (#4750)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-19 10:52:04 -06:00
github-actions[bot]
999b19d148 docs(auto): Update image tag, for release v2.4.1 (#4746)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2024-12-18 21:29:01 +00:00
renovate[bot]
7d061d428f fix(deps): update dependency pydantic to v2.10.4 (#4747)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-18 15:17:50 -06:00
Hayden
2922782e5e chore(l10n): New Crowdin updates (#4743) 2024-12-18 16:28:40 +00:00
renovate[bot]
47a8383ae5 fix(deps): update dependency uvicorn to ^0.34.0 (#4727)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-18 05:01:29 +00:00
renovate[bot]
a543b89c38 fix(deps): update dependency apprise to v1.9.1 (#4740)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-18 04:48:39 +00:00
github-actions[bot]
702f8b47ac chore(auto): Update pre-commit hooks (#4732)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2024-12-17 22:37:10 -06:00
renovate[bot]
f8e4c7f5cd fix(deps): update dependency openai to v1.58.1 (#4738)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-17 21:15:07 -06:00
Michael Clark
8d325198e8 fix: Use configured server time when calling RepositoryMeals.get_today() method (#4734) 2024-12-17 20:33:35 +00:00
renovate[bot]
afd304f9e5 fix(deps): update dependency rapidfuzz to v3.11.0 (#4739)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-17 14:21:13 -06:00
renovate[bot]
59f4c51e6e fix(deps): update dependency python-multipart to ^0.0.20 (#4735)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-17 20:23:50 +11:00
renovate[bot]
613e4ef606 chore(deps): update dependency mkdocs-material to v9.5.49 (#4733)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-16 10:30:27 -06:00
github-actions[bot]
aceed2a11e docs(auto): Update image tag, for release v2.4.0 (#4722)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2024-12-14 22:14:46 +00:00
renovate[bot]
02682f8ad4 fix(deps): update dependency recipe-scrapers to v15.3.3 (#4725)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-14 23:04:23 +01:00
renovate[bot]
085d0ae877 fix(deps): update dependency uvicorn to ^0.33.0 (#4724)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-14 09:48:58 -06:00
boc-the-git
b3c0661f52 docs: Add October 2024 survey results (#4666)
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2024-12-13 23:25:04 +00:00
renovate[bot]
2abae02388 fix(deps): update dependency openai to v1.57.4 (#4721)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-13 12:53:05 -06:00
renovate[bot]
e88779f9ec fix(deps): update dependency pydantic-settings to v2.7.0 (#4718)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-13 15:34:20 +00:00
renovate[bot]
ba3a999ed6 chore(deps): update dependency pytest-asyncio to ^0.25.0 (#4716)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-13 09:21:38 -06:00
renovate[bot]
95aeb0ea05 chore(deps): update dependency ruff to v0.8.3 (#4712)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-12 20:51:01 +00:00
renovate[bot]
09cf3466e3 fix(deps): update dependency openai to v1.57.3 (#4713)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-12 14:38:35 -06:00
Michael Genson
cc37147a34 fix: Add Formatting for Markdown Tables (#4703)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2024-12-11 10:33:43 +01:00
renovate[bot]
285ccb408f fix(deps): update dependency openai to v1.57.2 (#4705)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-11 09:58:49 +01:00
Kuchenpirat
945ffb34fe fix: code warnings (lint) (#4704) 2024-12-10 15:58:34 +00:00
Michael Genson
02a545dcb5 fix: Sort Food by Label on Data Management Page (#4631) 2024-12-10 14:10:07 +00:00
renovate[bot]
eecda1be4d fix(deps): update dependency openai to v1.57.1 (#4700)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-10 14:55:50 +01:00
renovate[bot]
65ab714c38 fix(deps): update dependency fastapi to v0.115.6 (#4677)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-09 11:43:18 -06:00
github-actions[bot]
1187a678ba chore(auto): Update pre-commit hooks (#4697)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
2024-12-09 15:37:23 +00:00
renovate[bot]
1ec580342f chore(deps): update dependency coverage to v7.6.9 (#4688)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-09 09:25:58 -06:00
renovate[bot]
c8d3bd4495 chore(deps): update dependency mkdocs-material to v9.5.48 (#4696)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-08 15:42:08 -06:00
renovate[bot]
17d74c451e fix(deps): update dependency httpx to v0.28.1 (#4690)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-06 21:27:35 +01:00
renovate[bot]
61934537c9 fix(deps): update dependency openai to v1.57.0 (#4685)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-05 21:42:52 +01:00
renovate[bot]
c691418cfb chore(deps): update dependency ruff to v0.8.2 (#4683)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-05 15:54:38 +00:00
renovate[bot]
d74bcd8954 fix(deps): update dependency openai to v1.56.2 (#4679)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-05 13:25:07 +01:00
niteflyunicorns
d9a1db557c feat: Add 'No Shopping Lists Found' message (#4661)
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2024-12-04 22:59:17 -06:00
Michael Genson
87504fbb05 feat: Upgrade to Python 3.12 (#4675)
Co-authored-by: Hayden <64056131+hay-kot@users.noreply.github.com>
2024-12-04 22:31:26 -06:00
Hayden
0e6a40e210 fix: remove import button from recipe data view (#4680) 2024-12-04 14:41:02 -06:00
Michael Chisholm
a6cbf1308e feat: Move alembic config into mealie package for easier distribution (#4329) 2024-12-04 10:57:57 -06:00
Arshad Basha
f1e9615efd fix: Meal Plan Notes allow Submission Without Title/Note Text (#4615)
Co-authored-by: Hayden <64056131+hay-kot@users.noreply.github.com>
2024-12-04 02:07:54 +00:00
renovate[bot]
497424528d fix(deps): update dependency pydantic to v2.10.3 (#4674)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-03 15:09:12 -06:00
renovate[bot]
da3e1b4c00 fix(deps): update dependency openai to v1.56.1 (#4673)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-03 19:03:35 +01:00
Michael Genson
393a1e4c1a fix: Cocktail Builder Enhancements (#4672) 2024-12-03 18:47:05 +01:00
Michael Genson
4e0cf985bc feat: Recipe Finder (aka Cocktail Builder) (#4542) 2024-12-03 13:27:41 +00:00
renovate[bot]
d26e29d1c5 fix(deps): update dependency openai to v1.56.0 (#4662)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-02 21:01:25 +01:00
github-actions[bot]
6ab45bbeff chore(auto): Update pre-commit hooks (#4657)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2024-12-02 16:22:35 +00:00
Michael Genson
a439428ab8 fix: Improve UX for new households/userrs (#4653)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2024-12-02 17:14:28 +01:00
renovate[bot]
60edaf4b16 fix(deps): update dependency recipe-scrapers to v15.3.2 (#4656)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-02 05:19:28 +00:00
renovate[bot]
a94bad19ff chore(deps): update dependency pylint to v3.3.2 (#4655)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-01 21:44:51 +00:00
Lukas Kühne
fa28fe51c8 docs: Update authelia link in oidc.md (#4654) 2024-12-01 21:33:23 +00:00
renovate[bot]
590bf9dbc5 chore(deps): update dependency pytest to v8.3.4 (#4652)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-01 12:05:54 -06:00
renovate[bot]
2945ea8f07 chore(deps): update dependency mkdocs-material to v9.5.47 (#4639)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-01 17:28:21 +00:00
renovate[bot]
f67f00ca53 fix(deps): update dependency python-multipart to ^0.0.19 (#4638)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-01 11:18:18 -06:00
renovate[bot]
2adbe5a196 fix(deps): update dependency pillow-heif to ^0.21.0 (#4625)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-30 06:46:33 +00:00
renovate[bot]
f4d23b9e1c chore(deps): update dependency ruff to v0.8.1 (#4624)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-30 06:35:34 +00:00
renovate[bot]
f63196d570 fix(deps): update dependency python-multipart to ^0.0.18 (#4623)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-30 06:24:47 +00:00
renovate[bot]
48549893bc fix(deps): update dependency openai to v1.55.3 (#4622)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-30 06:12:02 +00:00
renovate[bot]
3b3d8fc89d fix(deps): update dependency httpx to ^0.28.0 (#4621)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-30 06:01:00 +00:00
renovate[bot]
29f47d1722 fix(deps): update dependency orjson to v3.10.12 (#4601)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-30 05:46:53 +00:00
renovate[bot]
8821653dcb fix(deps): update dependency pydantic to v2.10.2 (#4588)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-29 23:34:53 -06:00
renovate[bot]
c0a4ae27b0 fix(deps): update dependency pyjwt to v2.10.1 (#4620)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-28 01:37:21 -06:00
renovate[bot]
12a90b6334 fix(deps): update dependency openai to v1.55.2 (#4618)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-27 23:07:04 +01:00
github-actions[bot]
79e712503c docs(auto): Update image tag, for release v2.3.0 (#4617)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
2024-11-27 10:16:29 +00:00
renovate[bot]
d6de0d0b3d chore(deps): update dependency coverage to v7.6.8 (#4603)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-26 20:13:43 +01:00
Kenni Lund
dce6d86cbf docs: Update API path in home-assistant.md (#4614) 2024-11-26 18:00:17 +00:00
renovate[bot]
3539385429 fix(deps): update dependency uvicorn to v0.32.1 (#4586)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-26 12:25:04 +01:00
renovate[bot]
e97f1f805b fix(deps): update dependency openai to v1.55.1 (#4609)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-26 10:21:29 +01:00
renovate[bot]
83edff1c78 chore(deps): update dependency mkdocs-material to v9.5.46 (#4607)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-25 16:50:56 +01:00
Saireddy1369
efb72b1859 fix: Incorrect date format in Add to mealplan modal (#4605) 2024-11-25 15:38:50 +00:00
github-actions[bot]
5afa611ec3 chore(auto): Update pre-commit hooks (#4606)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
2024-11-25 09:34:11 +00:00
Michael Genson
82cc9e11f7 dev: Fix json2ts codegen (#4590) 2024-11-25 09:25:35 +00:00
Michael Genson
3fc120236d chore(deps): Bump Ruff (#4602) 2024-11-24 14:56:39 +11:00
renovate[bot]
e32bae4575 fix(deps): update dependency openai to v1.55.0 (#4587)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-21 09:53:19 +01:00
Michael Genson
327da02fc8 feat: Structured Yields (#4489)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2024-11-20 08:46:27 -06:00
renovate[bot]
c8cd68b4f0 chore(deps): update dependency mkdocs-material to v9.5.45 (#4585)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-20 14:43:04 +01:00
renovate[bot]
f31b76e2ff fix(deps): update dependency bcrypt to v4.2.1 (#4583)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-20 14:05:14 +01:00
Jonas Graubner
426f91fb50 fix: Enable OIDC with Synology SSO Server (#4544) 2024-11-19 14:15:58 +00:00
renovate[bot]
f194a6d8c8 fix(deps): update dependency openai to v1.54.5 (#4580)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-19 14:16:42 +01:00
Dom
6e4f9a234b fix: 4497 (#4562)
Co-authored-by: Dominik <dominik.ziegenhagel@gmail.com>
2024-11-19 00:35:49 +00:00
github-actions[bot]
76eccdff8c chore(auto): Update pre-commit hooks (#4572)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
2024-11-18 21:42:40 +01:00
renovate[bot]
a7330f11e6 fix(deps): update dependency pyjwt to v2.10.0 (#4567)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-18 14:23:58 -06:00
Brian Choromanski
d993ddf600 docs: Update docker compose examples (#4550) 2024-11-17 15:34:01 +00:00
Kuchenpirat
54f994defc fix: container name for account unlock and password reset (#4568) 2024-11-17 09:20:18 -06:00
Ryan William O'Hara
db4789099a fix: Update Firefox User-Agent string (#4546)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2024-11-17 15:10:11 +01:00
renovate[bot]
172698afce chore(deps): update dependency coverage to v7.6.7 (#4557)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-15 15:28:55 +00:00
renovate[bot]
8f9d602004 chore(deps): update dependency ruff to v0.7.4 (#4556)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-15 15:17:44 +00:00
renovate[bot]
d3b574ea84 chore(deps): update dependency coverage to v7.6.6 (#4555)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-15 09:06:57 -06:00
Michael Genson
4f5a0bf9f5 fix: Wakelock Toggle Broken (#4554) 2024-11-15 07:26:55 +01:00
renovate[bot]
d965ceaff6 chore(deps): update dependency coverage to v7.6.5 (#4552)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-14 11:29:19 -06:00
Michael Genson
bcd0fcc920 feat: Improve Recipe Imports with Cleaner (#4517) 2024-11-13 15:30:50 +00:00
renovate[bot]
085c489b05 fix(deps): update dependency openai to v1.54.4 (#4549)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-12 19:46:14 +00:00
renovate[bot]
af46a6ce33 fix(deps): update dependency fastapi to v0.115.5 (#4548)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-12 19:35:40 +00:00
Kuchenpirat
b1f81b4b95 fix: Cookmode hide additional ingredients if all ingredients are linked (#4539) 2024-11-12 15:12:41 +00:00
Arsène Reymond
622c1b11f5 feat: Groups/households custom invitations (#4252)
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2024-11-12 03:30:08 +00:00
Lex
7ada42a791 feat: Add Ingredients to Recipe Query Filter options (#4534)
Co-authored-by: alexxxxxxxandria <github@lex.alexandria.best>
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2024-11-11 17:20:29 +00:00
Brian Turek
ea4adfa335 fix: Add support for HTTPS in healthcheck (#4538) 2024-11-11 10:58:12 -06:00
github-actions[bot]
365d77e599 chore(auto): Update pre-commit hooks (#4535)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2024-11-11 12:40:55 +01:00
github-actions[bot]
0ef8c52c6a docs(auto): Update image tag, for release v2.2.0 (#4536)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2024-11-11 12:31:07 +01:00
Tarek Auf der Strasse
d419acd61e feat: Added a dedicated cookmode dialog that allows for individual scrolling (#4464) 2024-11-11 12:21:44 +01:00
renovate[bot]
65c35adc9d fix(deps): update dependency extruct to ^0.18.0 (#4524)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-10 18:05:38 +00:00
renovate[bot]
83b4846f0c chore(deps): update dependency ruff to v0.7.3 (#4522)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-10 11:55:43 -06:00
Carter
6bc7ada20a feat: OIDC: add the ability to override the requested scopes (#4530) 2024-11-09 10:52:12 -06:00
Carter
8ce6f9038a feat: adds descriptions to feature checks and add them to logs (#4504) 2024-11-08 05:37:53 +00:00
Michael Genson
e3c6d4c66c fix: JSON Mode Resets Page State (#4519) 2024-11-07 17:43:07 +00:00
renovate[bot]
381a698220 fix(deps): update dependency openai to v1.54.3 (#4520)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-06 22:55:41 +00:00
renovate[bot]
c866557d58 fix(deps): update dependency openai to v1.54.2 (#4518)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-06 18:28:57 +00:00
renovate[bot]
bb5da2cb54 fix(deps): update dependency alembic to v1.14.0 (#4512)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-06 09:38:11 -06:00
Michael Genson
0fed5f54f6 fix: Prevent Users From Being Created With Missing Group/Household (#4500) 2024-11-05 23:52:33 +00:00
Michael Genson
f4bde93960 fix: "No Label" on Shopping List can't be toggled (#4513)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2024-11-05 23:12:52 +00:00
renovate[bot]
62300deea0 fix(deps): update dependency orjson to v3.10.11 (#4495)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-05 21:32:37 +01:00
Michael Genson
87f4b23711 feat: Show Cookbooks from Other Households (#4452) 2024-11-05 13:57:30 -06:00
renovate[bot]
8983745106 chore(deps): update dependency mkdocs-material to v9.5.44 (#4516)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-05 20:17:57 +01:00
renovate[bot]
8872fd52cd fix(deps): update dependency openai to v1.54.1 (#4515)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-05 19:48:34 +01:00
renovate[bot]
b81b97d934 fix(deps): update dependency openai to v1.54.0 (#4510)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-05 19:31:14 +01:00
renovate[bot]
f798fafb3e chore(deps): update dependency rich to v13.9.4 (#4491)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-05 16:32:54 +01:00
github-actions[bot]
dbbbe06a23 chore(auto): Update pre-commit hooks (#4506)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
2024-11-04 17:08:17 +00:00
Wim de Groot
4b9eb5077a feat: implement the possibility to add tls (#4456)
Signed-off-by: Wim de Groot <34519486+wim-de-groot@users.noreply.github.com>
2024-11-04 16:17:08 +00:00
Michael Genson
ff6db2374d fix: Scripts Missing Repo Params (#4487)
Co-authored-by: Hayden <64056131+hay-kot@users.noreply.github.com>
2024-11-03 18:17:01 +00:00
renovate[bot]
3e69ea94d5 chore(deps): update dependency ruff to v0.7.2 (#4488)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-01 23:56:03 -05:00
renovate[bot]
2e114cfa69 fix(deps): update dependency pydantic-settings to v2.6.1 (#4486)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-01 20:00:10 -05:00
Shlok Sheth
eb34ef0156 fix: Added Nutrients Suffix to the PrintView and some formatting to that (#4493) 2024-11-01 22:12:25 +00:00
Brian Choromanski
446755f678 feat: vrslev/pre-commit-autoupdate archived (#4421) 2024-11-01 21:55:17 +00:00
renovate[bot]
08fe2d32b0 chore(deps): update dependency mkdocs-material to v9.5.43 (#4481)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-31 22:04:52 +01:00
renovate[bot]
fb653ee2f6 fix(deps): update dependency python-multipart to ^0.0.17 (#4479)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-31 07:52:36 -05:00
renovate[bot]
a326a8c717 fix(deps): update dependency fastapi to v0.115.4 (#4459)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-30 15:42:56 -05:00
renovate[bot]
6e7cb5fb86 fix(deps): update dependency python-multipart to ^0.0.16 (#4400)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-30 20:28:14 +00:00
renovate[bot]
9289bd8e05 fix(deps): update dependency openai to v1.53.0 (#4475)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-30 15:16:37 -05:00
Kuchenpirat
985b5634b7 fix: round ingredient amounts when not using fractions (#4470) 2024-10-30 15:12:45 +00:00
github-actions[bot]
2b2bc041bd docs(auto): Update image tag, for release v2.1.0 (#4471)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
2024-10-30 13:35:39 +00:00
Kuchenpirat
6e16d4cc91 fix: set useFractions on Unit creation to true by default (#4469) 2024-10-30 08:27:02 -05:00
Hayden
53a566d08a chore(l10n): New Crowdin updates (#4468) 2024-10-30 08:54:21 +00:00
Kuchenpirat
fb0a747549 fix: recipe scaler throwing error on empty serving size (#4466) 2024-10-29 16:28:53 +01:00
Michael Genson
6e045bf0c3 fix: Random Recipes not choosing from all recipes (#4435)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2024-10-29 15:47:54 +01:00
Michael Genson
8d1ce5c190 fix: Disable Foreign Key Checks During Restore (#4444)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2024-10-29 12:43:57 +00:00
github-actions[bot]
3bf6840cbc chore(auto): Update pre-commit hooks (#4460)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
2024-10-29 12:06:13 +00:00
Hayden
0053f76531 chore(l10n): New Crowdin updates (#4461) 2024-10-28 23:39:58 +00:00
Michael Genson
05ac18f00b docs: Added Missing Refs to Default Household (#4450) 2024-10-28 15:24:30 +01:00
Brian Choromanski
8b6c75877d docs: Swagger/OpenAPI Organization (#4446) 2024-10-26 10:17:25 -05:00
Michael Genson
0e25c7485d fix: Drag Delay Only Apply On Touch (#4453) 2024-10-25 21:49:07 +02:00
Carter
ea0d2ece6a fix: Add cacertfile to client args when provided (#4451) 2024-10-25 11:53:58 -05:00
Michael Genson
f7e595b404 fix: Images Using Wrong Content Type (#4441) 2024-10-25 14:53:42 +00:00
Frederic Hemberger
d48320f0a5 docs: Fix protocol in example URLs (#4428)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2024-10-25 09:20:24 +00:00
Cody
2240ab01d2 feat: Shopping list UI overhaul - collapsible labels (#4378)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2024-10-25 07:07:44 +00:00
Hayden
ae9276b55c chore(l10n): New Crowdin updates (#4447) 2024-10-25 06:41:50 +00:00
renovate[bot]
b5643a9399 fix(deps): update dependency rapidfuzz to v3.10.1 (#4439)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-24 17:27:57 +00:00
renovate[bot]
702180aeda chore(deps): update dependency mypy to v1.13.0 (#4419)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-24 17:17:56 +00:00
renovate[bot]
458d2bb61b chore(deps): update dependency ruff to v0.7.1 (#4438)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-24 17:06:20 +00:00
renovate[bot]
5a83f55a00 fix(deps): update dependency fastapi to v0.115.3 (#4413)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-24 11:54:26 -05:00
Hayden
04ef4037b7 docs: properly set site_url for docs (#4442) 2024-10-24 16:43:22 +00:00
Michael Genson
fdb5ff9ec0 fix: Add Touch Delay to Draggable on Touch Pads (#4440) 2024-10-24 16:24:42 +00:00
Michael Genson
302002d630 fix: Remove Unused Transfer Option from Shopping List (#4436)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2024-10-24 16:07:12 +00:00
Michael Genson
2305438423 fix: Add SMTP Timeout (#4437) 2024-10-24 17:58:24 +02:00
Michael Genson
34bd4a74c2 fix: Reset Locked Users (#4429)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2024-10-24 16:33:05 +02:00
Kuchenpirat
dacd0acff6 dev: add secondary db to trivy (#4434) 2024-10-24 13:48:25 +00:00
Hayden
010c6d8eb2 chore(l10n): New Crowdin updates (#4432) 2024-10-24 11:51:57 +00:00
renovate[bot]
3eac3e6648 fix(deps): update dependency openai to v1.52.2 (#4431)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-24 08:37:20 +02:00
boc-the-git
3dd61f7742 feat: Add summary to recipe instructions (#4410)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2024-10-23 11:27:47 +02:00
Hayden
99fec90288 chore(l10n): New Crowdin updates (#4422) 2024-10-23 07:43:04 +00:00
renovate[bot]
d05f27dfe5 fix(deps): update dependency openai to v1.52.1 (#4418)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-23 08:28:43 +02:00
renovate[bot]
4c84f48e81 fix(deps): update dependency orjson to v3.10.10 (#4417)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-22 14:34:41 -05:00
renovate[bot]
441b51a6e7 chore(deps): update dependency rich to v13.9.3 (#4416)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-22 12:06:02 -05:00
Kuchenpirat
bf2a69735d feat: Group and household deletion tooltips (#4414) 2024-10-22 17:45:21 +02:00
Dan Webb
61511d17d3 Fix(docs): Minor typo on backend-config page (#4412)
Signed-off-by: Dan Webb <dan.webb@damacus.io>
2024-10-22 15:07:03 +00:00
github-actions[bot]
248e560a5c docs(auto): Update image tag, for release v2.0.0 (#4408)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2024-10-22 07:56:59 +00:00
Hayden
09beac24c8 chore(l10n): New Crowdin updates (#4409) 2024-10-22 09:19:18 +02:00
Michael Genson
a7c8b33cca dev: Improve Docs Generation (#4402)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2024-10-21 15:01:40 +00:00
github-actions[bot]
674ad237f1 chore(auto): Update pre-commit hooks (#4406)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
2024-10-21 14:37:39 +00:00
Hayden
8ecddb07ae chore(l10n): New Crowdin updates (#4405) 2024-10-21 09:06:48 +02:00
renovate[bot]
b86c01e405 chore(deps): update dependency coverage to v7.6.4 (#4403)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-20 20:27:31 -05:00
renovate[bot]
124301823c chore(deps): update dependency mkdocs-material to v9.5.42 (#4398)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-20 17:01:44 -05:00
Hayden
c784a64c44 chore(l10n): New Crowdin updates (#4397) 2024-10-20 17:23:15 +11:00
renovate[bot]
e79aeb9e8c fix(deps): update dependency pydantic-settings to v2.6.0 (#4383)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-20 02:18:48 +00:00
renovate[bot]
85fe770be0 fix(deps): update dependency pillow-heif to ^0.20.0 (#4388)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-19 21:04:34 -05:00
renovate[bot]
6f157b60a5 chore(deps): update dependency mypy to v1.12.1 (#4395)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-20 01:49:18 +00:00
renovate[bot]
1e6bbc6699 fix(deps): update dependency orjson to v3.10.9 (#4394)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-19 20:38:25 -05:00
Michael Genson
543a53cab4 fix: Bulk Update Owner Removes Some Recipe Data (#4393) 2024-10-19 15:36:34 -05:00
boc-the-git
a17529bd71 dev: Add highlights and new contributors to release template (#4391) 2024-10-19 13:33:33 +02:00
Michael Genson
1dc7b24146 feat: Change Recipe Owner (#4355)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
2024-10-19 09:33:32 +00:00
Kuchenpirat
60ea83d737 dev: add internal dev section to release notes (#4390) 2024-10-19 09:20:47 +00:00
Hayden
8180aefc0b chore(l10n): New Crowdin updates (#4389) 2024-10-19 18:04:06 +11:00
Hayden
007c99c77a chore(l10n): New Crowdin updates (#4387) 2024-10-18 09:18:04 +02:00
renovate[bot]
292ff8313b chore(deps): update dependency ruff to ^0.7.0 (#4384)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-17 22:15:03 +00:00
renovate[bot]
79b3308f15 chore(deps): update dependency psycopg2-binary to v2.9.10 (#4375)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-17 17:03:53 -05:00
renovate[bot]
56a557fc82 fix(deps): update dependency openai to v1.52.0 (#4385)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-17 16:49:51 -05:00
Michael Genson
b8e62ab8dd feat: Query Filter Builder for Cookbooks and Meal Plans (#4346) 2024-10-17 17:35:39 +02:00
renovate[bot]
2a9a6fa5e6 fix(deps): update dependency sqlalchemy to v2.0.36 (#4369)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-17 11:09:09 +02:00
Michael Genson
79b36024a4 fix: Mealplans Disappearing/Can't be edited (#4379) 2024-10-17 08:45:50 +00:00
Hayden
c40d2d0486 chore(l10n): New Crowdin updates (#4382) 2024-10-17 08:01:45 +02:00
besque
8da08cdd60 docs: removed TRACE log level from backend-config.md (#4381) 2024-10-16 19:08:29 +00:00
Michael Genson
e47d171463 fix: Good data being deleted upon restore (#4376)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2024-10-16 14:56:07 +00:00
Carter
80caa5ffaf fix: Prevent login via credentials when Auth Method is Mealie (#4370) 2024-10-16 14:34:51 +00:00
renovate[bot]
03485ecc73 fix(deps): update dependency uvicorn to ^0.32.0 (#4367)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-16 06:51:32 +00:00
Hayden
b3ad32ee31 chore(l10n): New Crowdin updates (#4371) 2024-10-16 06:38:12 +00:00
Michael Genson
6d89fe37ad fix: Prevent Bad Cookbook Names (#4364) 2024-10-15 17:54:58 +00:00
renovate[bot]
1af2473a72 fix(deps): update dependency pillow to v11 (#4366)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-15 11:03:06 -05:00
renovate[bot]
77de9fee98 chore(deps): update dependency mkdocs-material to v9.5.41 (#4365)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-15 17:46:58 +02:00
Michael Genson
cba381cb67 fix: Handle Data With Invalid User (#4325)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2024-10-14 15:10:55 +00:00
renovate[bot]
02791e294d chore(deps): update dependency mypy to v1.12.0 (#4362)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-14 14:20:03 +00:00
renovate[bot]
7f396ab483 fix(deps): update dependency fastapi to v0.115.2 (#4352)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-14 09:09:56 -05:00
Hayden
0e299e98ee chore(l10n): New Crowdin updates (#4360) 2024-10-14 04:16:03 +00:00
renovate[bot]
4e839711eb chore(deps): update dependency coverage to v7.6.3 (#4359)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-13 23:07:02 -05:00
Tom Brennan
02c0fe993b feat: adding the rest ofthe nutrition properties from schema.org (#4301) 2024-10-13 15:04:29 +02:00
Hayden
3aea229f2d chore(l10n): New Crowdin updates (#4356) 2024-10-12 22:58:28 -05:00
Hayden
d08b3d8943 chore(l10n): New Crowdin updates (#4351) 2024-10-12 09:35:35 +02:00
renovate[bot]
91353d6d7e chore(deps): update dependency coverage to v7.6.2 (#4338)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-12 01:14:55 +00:00
renovate[bot]
d12d3d12ef fix(deps): update dependency isodate to ^0.7.0 (#4330)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-11 20:04:22 -05:00
Michael Genson
e06572b7ca feat: User Tooltip (#4319) 2024-10-12 00:36:26 +00:00
Michael Genson
a2bdb02a7f fix: More Fault Tolerance with OpenAI Schemas (#4328)
Co-authored-by: Hayden <64056131+hay-kot@users.noreply.github.com>
2024-10-12 00:24:22 +00:00
Hayden
433336b8b4 chore(l10n): New Crowdin updates (#4344) 2024-10-11 19:10:20 -05:00
Aaron Echols
d50d4bee08 docs: update oidc-v2.md (#4347) 2024-10-10 14:33:57 -05:00
renovate[bot]
445f55812b fix(deps): update dependency uvicorn to v0.31.1 (#4343)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2024-10-10 14:00:44 +00:00
renovate[bot]
0e247f22f8 chore(deps): update dependency mkdocs-material to v9.5.40 (#4345)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-10 15:47:44 +02:00
Nicole Zeckner
4e4bc1b542 docs: Update rest call for home assistant (#4341) 2024-10-10 02:30:41 +00:00
Michael Genson
8379e3565f fix: Fix Locked User Reset (#4342) 2024-10-10 02:17:02 +00:00
Kuchenpirat
d36041fa75 chore: cancel running pull request jobs on new push (#4339)
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2024-10-09 09:51:10 -05:00
Kuchenpirat
655122c390 fix: user creation without username or fullName (#4337) 2024-10-09 14:35:27 +00:00
github-actions[bot]
07e70b419d chore(auto): Update pre-commit hooks (#4321)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2024-10-09 16:21:01 +02:00
renovate[bot]
b4ebe4f9a6 chore(deps): update dependency pre-commit to v4.0.1 (#4333)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-09 13:55:36 +02:00
renovate[bot]
172160c862 fix(deps): update dependency openai to v1.51.2 (#4332)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-09 13:33:11 +02:00
Brian Choromanski
01a43f28f2 feat: Added support for plural_name for foods (#4305) 2024-10-08 21:56:50 -05:00
Marc
00baa397dd feat: Add image source label to dockerfiles (#4331) 2024-10-08 09:38:06 -05:00
renovate[bot]
a2beab6cbb fix(deps): update dependency openai to v1.51.1 (#4326)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-07 18:45:36 +02:00
Kuchenpirat
56bd68d824 fix: recipe scaling (#4324) 2024-10-07 16:31:49 +00:00
renovate[bot]
a559335bd7 chore(deps): update dependency pre-commit to v4 (#4318)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-06 21:03:02 -05:00
Michael Genson
b0ed242ff2 fix: Strip Timezone from Timestamps in DB (#4310)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2024-10-06 06:30:30 +00:00
Hayden
b5c0104aba chore(l10n): New Crowdin updates (#4317) 2024-10-05 21:51:50 +00:00
Carter
5ed0ec029b feat: Add OIDC_CLIENT_SECRET and other changes for v2 (#4254)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
2024-10-05 21:12:11 +00:00
renovate[bot]
4f1abcf4a3 chore(deps): update dependency ruff to v0.6.9 (#4315)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-04 18:45:59 +00:00
renovate[bot]
7140dcb188 fix(deps): update dependency recipe-scrapers to v15.2.1 (#4316)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-04 13:35:46 -05:00
renovate[bot]
8f229b0dde chore(deps): update dependency rich to v13.9.2 (#4314)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-04 12:16:16 +00:00
Michael Genson
113347a6e5 docs: Fix Formatting (#4309)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2024-10-02 15:20:14 +00:00
Hayden
c904f2d818 chore(l10n): New Crowdin updates (#4308) 2024-10-02 15:07:54 +00:00
renovate[bot]
49fe6a6057 chore(deps): update dependency rich to v13.9.1 (#4299)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-02 19:51:51 +10:00
Brian Choromanski
fef3f1cee3 fix: GH Actions node deprecation (#4306) 2024-10-02 11:21:22 +10:00
renovate[bot]
fa32a6489c fix(deps): update dependency openai to v1.51.0 (#4303)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-01 19:45:30 +00:00
Michael Genson
3d1b08779b fix: Shopping List Label Text Color (#4302) 2024-10-01 17:47:51 +02:00
Hayden
f1d56cad9c chore(l10n): New Crowdin updates (#4300) 2024-10-01 14:42:49 +00:00
Kuchenpirat
14dbd79c7f feat: refactor recipe scaling (#4298) 2024-10-01 16:31:04 +02:00
Kuchenpirat
1bd3d38dfc fix: scrape images as list (#4293) 2024-09-30 12:07:14 -05:00
Tom Brennan
49a392f4e2 fix: add setting to fix mypy pydantic warning on vs code dev container setup (#4292) 2024-09-30 16:34:22 +00:00
Michael Genson
4c1d855690 feat: Create Recipe From HTML or JSON (#4274)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2024-09-30 15:52:13 +00:00
renovate[bot]
edf420491f fix(deps): update dependency python-multipart to ^0.0.12 (#4284)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-30 15:34:54 +00:00
Kuchenpirat
75bbe34ce5 docs: add note on recipe scaling to docs (#4287) 2024-09-30 15:25:37 +00:00
github-actions[bot]
743d52ef81 chore(auto): Update pre-commit hooks (#4285)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
2024-09-30 15:16:28 +00:00
Hayden
e125d1a45a chore(l10n): New Crowdin updates (#4289) 2024-09-30 14:39:06 +00:00
renovate[bot]
df359a58a4 chore(deps): update dependency mkdocs-material to v9.5.39 (#4283)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-29 15:53:02 +02:00
renovate[bot]
73fafa9fb3 fix(deps): update dependency python-multipart to ^0.0.11 (#4281)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-29 14:44:27 +10:00
Cody
28b0190648 feat: Shopping list UI overhaul - add wakelock (#4236)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2024-09-28 15:16:06 +00:00
boc-the-git
8fe1b0c123 fix: Hide rating on notes (#4278) 2024-09-28 15:05:14 +00:00
Hayden
30cf37effa chore(l10n): New Crowdin updates (#4280) 2024-09-28 15:57:01 +02:00
renovate[bot]
cd305cd47d fix(deps): update dependency uvicorn to ^0.31.0 (#4277)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-28 10:24:52 +00:00
renovate[bot]
a9dcb1538a chore(deps): update dependency ruff to v0.6.8 (#4272)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-28 20:13:04 +10:00
renovate[bot]
30699ac4cd fix(deps): update dependency openai to v1.50.2 (#4273)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-28 19:52:17 +10:00
Michael Genson
4712994242 feat: Add Household Filter to Meal Plan Rules (#4231) 2024-09-27 14:06:45 +00:00
jlssmt
38502e82d4 feat: add regex to url before scraping (#4174)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2024-09-27 13:02:34 +02:00
Hayden
f8cd8b00a5 chore(l10n): New Crowdin updates (#4271) 2024-09-26 12:01:27 +00:00
renovate[bot]
8f2f4d45af chore(deps): update dependency mkdocs-material to v9.5.38 (#4270)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-26 11:39:47 +02:00
renovate[bot]
291808b204 fix(deps): update dependency openai to v1.48.0 (#4269)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-25 17:25:46 +00:00
Michael Genson
75166b5b0f docs: Update Docs for Households (#4266)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2024-09-25 17:30:49 +02:00
Hayden
f7608071d8 chore(l10n): New Crowdin updates (#4268) 2024-09-25 22:01:21 +10:00
renovate[bot]
64a1a652ca chore(deps): update dependency mkdocs-material to v9.5.37 (#4267) 2024-09-25 13:09:06 +02:00
Seamus Lowry
2053f29ff8 feat: sort labels by name,asc in shopping lists (#4253) 2024-09-24 21:33:30 +00:00
renovate[bot]
82737613b4 chore(deps): update dependency pylint to v3.3.1 (#4265)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-24 17:44:42 +02:00
Cody
04dc593b16 feat: Shopping list UI overhaul - add label headings per category (#4235)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2024-09-24 16:29:06 +02:00
Hayden
d1e3b64a19 chore(l10n): New Crowdin updates (#4264) 2024-09-24 12:24:31 +02:00
renovate[bot]
7922e4d2c1 fix(deps): update dependency tzdata to v2024.2 (#4261)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-23 21:42:44 +02:00
renovate[bot]
f393c05d6d fix(deps): update dependency openai to v1.47.1 (#4259)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-23 10:50:48 -05:00
renovate[bot]
eb640ac270 fix(deps): update dependency alembic to v1.13.3 (#4258)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-23 15:31:05 +00:00
renovate[bot]
02a36509b6 fix(deps): update dependency rapidfuzz to v3.10.0 (#4257)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-23 10:18:26 -05:00
github-actions[bot]
1d4ff66824 chore(auto): Update pre-commit hooks (#4255)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
2024-09-23 11:49:46 +00:00
Hayden
13522a0402 chore(l10n): New Crowdin updates (#4256) 2024-09-23 12:31:17 +02:00
Michael Genson
ea1f727a8b feat: OpenAI Custom Headers/Params and Debug Page (#4227)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2024-09-23 11:04:36 +02:00
Michael Genson
7c274de778 feat: Filter Recipes By Household (and a ton of bug fixes) (#4207)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2024-09-22 14:59:20 +00:00
renovate[bot]
2a6922a85c chore(deps): update dependency ruff to v0.6.7 (#4249)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-21 22:28:49 -05:00
renovate[bot]
c4f753ee32 fix(deps): update dependency python-multipart to ^0.0.10 (#4248)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-21 22:12:14 -05:00
bigcat2014
c774f626ee fix: Exclude additional sensitive information from mealie logs (#4218)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
2024-09-21 22:07:47 +00:00
renovate[bot]
abc1174877 fix(deps): update dependency openai to v1.47.0 (#4245)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-21 15:46:18 +02:00
renovate[bot]
f7a1ef597a chore(deps): update dependency mkdocs-material to v9.5.36 (#4247)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-21 11:31:13 +02:00
renovate[bot]
12938f9cd5 chore(deps): update dependency pylint to v3.3.0 (#4243)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-20 09:23:22 -05:00
Kuchenpirat
7f4e958198 fix: revert shopping list items - increased width (#4241) 2024-09-20 21:44:30 +10:00
renovate[bot]
67791e4d86 chore(deps): update dependency ruff to v0.6.6 (#4240)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-20 04:23:00 +00:00
Michael Genson
ba363da251 chore: Optimize Loads on Queries (#4220)
Co-authored-by: Hayden <64056131+hay-kot@users.noreply.github.com>
2024-09-19 23:10:10 -05:00
Cody
e971efd809 feat: Shopping list UI overhaul - label sorted by default (#4238)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2024-09-19 22:24:46 +02:00
Cody
09b688cc22 feat: Shopping list UI overhaul - increase list item width (#4237)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2024-09-19 21:48:21 +02:00
renovate[bot]
22edec4d9a fix(deps): update dependency openai to v1.46.1 (#4234)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-19 21:27:48 +02:00
Hayden
821766a6ae chore(l10n): New Crowdin updates (#4233) 2024-09-19 11:14:16 +02:00
renovate[bot]
96a2ccb5e4 chore(deps): update dependency mkdocs-material to v9.5.35 (#4229)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-18 11:24:58 +02:00
Hayden
d41273592a chore(l10n): New Crowdin updates (#4230) 2024-09-18 10:24:26 +02:00
renovate[bot]
64273144d9 fix(deps): update dependency pydantic to v2.9.2 (#4225)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-18 03:34:28 +00:00
renovate[bot]
edb43a80a1 fix(deps): update dependency openai to v1.46.0 (#4226)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-18 03:21:38 +00:00
renovate[bot]
f736423fff fix(deps): update dependency fastapi to ^0.115.0 (#4228)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-17 22:08:19 -05:00
Michael Genson
fd0257c1b8 feat: Additional Household Permissions (#4158)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2024-09-17 10:48:14 -05:00
renovate[bot]
b1820f9b23 fix(deps): update dependency openai to v1.45.1 (#4215)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-17 08:13:13 +02:00
renovate[bot]
cff33cb15c fix(deps): update dependency sqlalchemy to v2.0.35 (#4221)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-16 18:57:09 -05:00
Michael Genson
8778559a20 chore: Improve Alembic Migration Generation (#4192) 2024-09-16 13:52:12 +00:00
github-actions[bot]
77208384ed chore(auto): Update pre-commit hooks (#4213)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
2024-09-16 10:20:25 +00:00
Michael Genson
dbbd662e7d feat: Allow Cookbooks To Share Names (#4186) 2024-09-15 11:42:58 +00:00
Michael Chisholm
abe4504640 fix(deps): Update dependencies for Python 3.12 (#4204) 2024-09-15 01:48:50 +00:00
Michael Genson
d8dbcac196 feat: Use Backend for Recipe Post Actions (#4163) 2024-09-14 14:59:36 +00:00
renovate[bot]
8bd26d2230 fix(deps): update dependency fastapi to v0.114.2 (#4206)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-14 01:12:27 +00:00
renovate[bot]
400d251381 chore(deps): update dependency ruff to v0.6.5 (#4205)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-13 19:59:47 -05:00
renovate[bot]
7088bea90a fix(deps): update dependency openai to v1.45.0 (#4203)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-13 19:38:52 -05:00
Hayden
0eb3e3f7ca chore(l10n): New Crowdin updates (#4201) 2024-09-12 09:49:08 -05:00
Kuchenpirat
6f1df3a95e feat: Reorder ShoppingListItemEditor (#4200) 2024-09-12 09:07:26 -05:00
renovate[bot]
c97053ef83 chore(deps): update dependency pydantic-to-typescript2 to v1.0.6 (#4199)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-12 21:59:37 +10:00
Michael Genson
f796258529 fix: Broken Social Preview Links (#4183) 2024-09-12 09:43:23 +00:00
Michael Genson
f6cf58334f fix: Tweak recipe card height to be consistent (#4150)
Co-authored-by: Hayden <64056131+hay-kot@users.noreply.github.com>
2024-09-11 22:59:15 +00:00
Ryan Breen
dda6f297d8 docs: boolean value in docker-compose examples not deserializable in env variables (#4130)
Co-authored-by: Hayden <64056131+hay-kot@users.noreply.github.com>
2024-09-11 22:47:40 +00:00
boc-the-git
97c3135a43 feat: Change autolabeler regex to include : (#4196) 2024-09-11 14:03:17 +00:00
renovate[bot]
871160cb42 fix(deps): update dependency pydantic-settings to v2.5.2 (#4195)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-11 10:12:35 +00:00
renovate[bot]
e77b9e972f fix(deps): update dependency fastapi to v0.114.1 (#4194)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-11 20:01:23 +10:00
renovate[bot]
e1f382f8ba fix(deps): update dependency pydantic-settings to v2.5.0 (#4191)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-10 10:38:45 -05:00
renovate[bot]
baf78573f7 chore(deps): update dependency rich to v13.8.1 (#4190)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-10 14:44:50 +00:00
renovate[bot]
e579017e6d chore(deps): update dependency pytest to v8.3.3 (#4189)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-10 14:32:50 +00:00
boc-the-git
589b226360 feat: Add autolabeler functionality for PRs (#4188) 2024-09-10 09:23:23 -05:00
renovate[bot]
98ac9cd290 fix(deps): update dependency openai to v1.44.1 (#4185)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-09 20:33:43 +00:00
Hayden
6253fdb3db chore(l10n): New Crowdin updates (#4181) 2024-09-09 14:23:07 +00:00
github-actions[bot]
7ff532429f chore(auto): Update pre-commit hooks (#4179)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2024-09-09 14:14:42 +00:00
renovate[bot]
a14a4bcf89 fix(deps): update dependency pydantic to v2.9.1 (#4180)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-09 20:57:20 +10:00
Hayden
12a4b16bde chore(l10n): New Crowdin updates (#4176) 2024-09-08 15:44:57 +02:00
Hayden
98f91351d5 chore(l10n): New Crowdin updates (#4171) 2024-09-07 15:37:51 +02:00
renovate[bot]
6a4a88371f fix(deps): update dependency openai to v1.44.0 (#4170)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-07 03:09:50 +00:00
renovate[bot]
fc749f520a fix(deps): update dependency fastapi to ^0.114.0 (#4169)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-06 21:57:57 -05:00
Vlad Shulcz
5b3be18fe2 feat: Added feature to limit mealplan data by date range (#4111)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2024-09-07 02:37:42 +00:00
Michael Genson
0aaa40432d docs: Fix OpenAI docs link (#4168) 2024-09-07 01:35:10 +00:00
paaff
6ecdb39a2d docs: add keep screen alive entry (#4116)
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2024-09-06 19:03:05 +00:00
Michael Genson
29c5944d92 docs: Added OpenAI Page to mkdocs (#4167) 2024-09-06 08:38:55 -08:00
renovate[bot]
68ec3f7e42 fix(deps): update dependency sqlalchemy to v2.0.34 (#4156)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-06 09:32:28 -05:00
Michael Genson
59e5094669 docs: OpenAI Documentation (#4165) 2024-09-06 12:09:19 +00:00
renovate[bot]
ed5cd2a0c5 fix(deps): update dependency openai to v1.43.1 (#4164)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-05 20:07:24 +00:00
renovate[bot]
bb2badc526 fix(deps): update dependency pydantic to v2.9.0 (#4162)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-05 14:54:14 -05:00
renovate[bot]
41df1d67e0 fix(deps): update dependency fastapi to ^0.113.0 (#4161)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-05 16:44:13 +00:00
renovate[bot]
4d3edbfccb chore(deps): update dependency ruff to v0.6.4 (#4160)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-05 11:31:45 -05:00
renovate[bot]
979a977d77 fix(deps): update dependency fastapi to v0.112.3 (#4159)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-05 09:08:13 -05:00
boc-the-git
b2c8585ec5 chore: Set "documentation" label on PR (#4153) 2024-09-04 14:06:30 +00:00
boc-the-git
70d5f1a918 chore: Set 'chore' label on PR (#4154) 2024-09-04 08:58:07 -05:00
Hayden
82169fc316 chore(l10n): New Crowdin updates (#4145) 2024-09-04 11:15:35 +00:00
boc-the-git
c2fb4d3fa7 feat: Automate release drafting (#4147) 2024-09-04 08:08:39 +10:00
renovate[bot]
4734fae891 fix(deps): update dependency sqlalchemy to v2.0.33 (#4149)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-03 13:56:25 -05:00
Brian Choromanski
787b826aa1 fix: PWA respects orientation lock (#4143) 2024-09-03 00:01:21 +00:00
renovate[bot]
22cdb7305b fix(deps): update dependency apprise to v1.9.0 (#4141)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-02 20:35:14 +00:00
renovate[bot]
107fc138fd fix(deps): update dependency rapidfuzz to v3.9.7 (#4142)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-02 15:23:43 -05:00
renovate[bot]
e9285881f0 chore(deps): update dependency mkdocs-material to v9.5.34 (#4133)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-02 15:12:06 -05:00
github-actions[bot]
e0b5d76278 fix(auto): Update pre-commit hooks (#4138)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
2024-09-02 10:23:48 +00:00
Michael Genson
9acf9ec27c feat: Cross-Household Recipes (#4089) 2024-09-01 02:54:10 +00:00
Hayden
7ef2e91ecf chore(l10n): New Crowdin updates (#4132) 2024-08-31 15:24:12 -08:00
renovate[bot]
220c383ccb chore(deps): update dependency pylint to v3.2.7 (#4131)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-31 15:23:58 -08:00
Michael Genson
a3f474e088 feat: Change OpenAI Image Format to JPG (#4117) 2024-08-30 21:24:25 +00:00
Hayden
2ad6e1b198 chore(l10n): New Crowdin updates (#4127) 2024-08-30 13:02:06 -05:00
ipitio
8b6d8e60eb docs: Update ghcr pulls badge endpoint (#4124) 2024-08-30 12:14:36 +00:00
Michael Genson
9e392cbdad fix: Update Task Template for V2 (#4078) 2024-08-30 10:25:22 +00:00
renovate[bot]
29f21a0cd8 fix(deps): update dependency openai to v1.43.0 (#4122)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-30 10:14:42 +00:00
Michael Genson
22e9c8b462 fix: Docs Reference Old Build (#4096) 2024-08-30 10:03:44 +00:00
Hayden
eae474d9b9 chore(l10n): New Crowdin updates (#4121) 2024-08-29 17:45:15 +00:00
renovate[bot]
296a1a036c chore(deps): update dependency ruff to v0.6.3 (#4120)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-29 11:22:08 -05:00
Hayden
0ca1b6e57c chore(l10n): New Crowdin updates (#4115) 2024-08-28 17:24:26 +00:00
Hayden
9636fc82f6 chore(l10n): New Crowdin updates (#4113) 2024-08-27 11:51:54 -05:00
renovate[bot]
e4aeb01acb fix(deps): update dependency httpx to v0.27.2 (#4112)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-27 14:47:44 +00:00
renovate[bot]
4c6357e8dc chore(deps): update dependency rich to v13.8.0 (#4105)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-26 13:08:07 -05:00
renovate[bot]
91a7e09569 fix(deps): update dependency authlib to v1.3.2 (#4102)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-26 17:37:34 +00:00
renovate[bot]
2c2c07feb2 chore(deps): update dependency mypy to v1.11.2 (#4093)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-26 17:25:04 +00:00
renovate[bot]
c49610ec74 fix(deps): update dependency fastapi to v0.112.2 (#4092)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-26 12:10:32 -05:00
github-actions[bot]
587002c523 fix(auto): Update pre-commit hooks (#4101)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
2024-08-26 16:57:27 +00:00
Hayden
7466e5d7f5 chore(l10n): New Crowdin updates (#4104) 2024-08-26 11:43:16 -05:00
renovate[bot]
795f5ea4f1 fix(deps): update dependency recipe-scrapers to v15.1.0 (#4103)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-26 16:19:45 +00:00
Hayden
9b6f323b6f chore(l10n): New Crowdin updates (#4098) 2024-08-25 15:30:20 -05:00
boc-the-git
c688114e15 docs: Tidy unicorn workers description (#4095) 2024-08-25 03:05:50 +00:00
Hayden
042ac6bfa5 chore(l10n): New Crowdin updates (#4090) 2024-08-24 11:14:33 -05:00
Arsène Reymond
67dc0d7066 fix: Image height in home screen mobile format (#4088) 2024-08-23 13:26:12 -05:00
Hayden
22057cad19 chore(l10n): New Crowdin updates (#4087) 2024-08-23 16:09:56 +00:00
renovate[bot]
ce13242f61 chore(deps): update dependency mkdocs-material to v9.5.33 (#4085)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-23 14:40:47 +00:00
renovate[bot]
7dd66a52d5 chore(deps): update dependency ruff to v0.6.2 (#4075)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-23 14:27:23 +00:00
renovate[bot]
6ed2b99188 chore(deps): update dependency pytest-asyncio to ^0.24.0 (#4074)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-23 14:15:09 +00:00
Sach
29f88eade0 fix: Recipe with a single 'space' as the title returns "404 page not found" (#4065)
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2024-08-23 14:03:10 +00:00
Hayden
a63cdf8534 chore(l10n): New Crowdin updates (#4076) 2024-08-22 15:28:57 +00:00
Michael Genson
eb170cc7e5 feat: Add Households to Mealie (#3970) 2024-08-22 10:14:32 -05:00
Hayden
0c29cef17d chore(l10n): New Crowdin updates (#4068)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2024-08-22 10:01:22 +02:00
VolumeData21
f86d4d5d8d fix: removed version line from docker compose yml files (#4072) 2024-08-22 09:42:41 +02:00
github-actions[bot]
c721533557 docs(auto): Update image tag, for release v1.12.0 (#4064)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
2024-08-21 11:27:25 +00:00
renovate[bot]
0d06494bbf fix(deps): update dependency openai to v1.42.0 (#4060)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-21 20:47:39 +10:00
Hayden
9c04950948 chore(l10n): New Crowdin updates (#4058) 2024-08-20 15:10:27 +00:00
vahtos
34c37a2bee docs: fix import bookmarklet trailing slashes (#4057) 2024-08-20 14:54:15 +00:00
Brian Choromanski
2cd1e0ad37 feat: Seed support for plural units (#3933)
Co-authored-by: Hayden <64056131+hay-kot@users.noreply.github.com>
2024-08-20 14:33:20 +00:00
renovate[bot]
828afe6674 fix(deps): update dependency openai to v1.41.1 (#4056)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-19 21:38:42 -05:00
renovate[bot]
6a705b7352 chore(deps): update dependency mkdocs-material to v9.5.32 (#4053)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-19 20:36:49 -05:00
github-actions[bot]
3fa931466e fix(auto): Update pre-commit hooks (#4052)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
2024-08-20 00:04:42 +00:00
renovate[bot]
4ba8269ff1 fix(deps): update dependency openai to v1.41.0 (#4042)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-19 18:54:19 -05:00
Hayden
581310b57d chore(l10n): New Crowdin updates (#4054) 2024-08-19 21:16:45 +02:00
renovate[bot]
ace18ab4aa fix(deps): update dependency fastapi to v0.112.1 (#4041)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-18 21:18:11 +00:00
renovate[bot]
abae973454 chore(deps): update dependency ruff to ^0.6.0 (#4039)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-18 16:05:45 -05:00
Ikko Eltociear Ashimine
08bc29ca8a docs: update home-assistant.md (#4049) 2024-08-18 18:59:35 +02:00
Hayden
9d7ef1837b chore(l10n): New Crowdin updates (#4047) 2024-08-18 17:45:57 +02:00
Michael Genson
8a15f400e1 feat: Import + Translate recipe images with OpenAI (#3974)
Co-authored-by: Johan Lindell <johan@lindell.me>
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
2024-08-18 08:07:01 +10:00
Hayden
3d921cb677 chore(l10n): New Crowdin updates (#4043) 2024-08-16 15:14:28 +02:00
renovate[bot]
f0e065efa4 fix(deps): update dependency openai to v1.40.6 (#4023)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-15 12:02:27 +00:00
renovate[bot]
d06589b31b fix(deps): update dependency uvicorn to v0.30.6 (#4030)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-15 21:53:06 +10:00
Hayden
3405bc4eb6 chore(l10n): New Crowdin updates (#4034) 2024-08-13 22:35:10 +00:00
Hayden
a75eb07a47 chore(l10n): New Crowdin updates (#4025) 2024-08-12 22:11:52 +00:00
Christian Clauss
432914e310 fix: Lint Python code with ruff (#3799) 2024-08-12 15:09:30 +00:00
Andrew Morgan
65ece35966 fix: Don't load from secrets dir if nonexistent or inaccessible (#4002)
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2024-08-12 14:55:32 +00:00
renovate[bot]
f11af52d30 fix(deps): update dependency lxml to v5.3.0 (#4015)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-12 10:56:25 +00:00
renovate[bot]
b4da5c3d5a fix(deps): update dependency openai to v1.40.3 (#4012)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-12 10:43:59 +00:00
renovate[bot]
a4e416cabc fix(deps): update dependency orjson to v3.10.7 (#4009)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-12 10:33:29 +00:00
github-actions[bot]
26173704aa fix(auto): Update pre-commit hooks (#4020)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
2024-08-12 10:24:15 +00:00
Hayden
5876c1ecf7 chore(l10n): New Crowdin updates (#4019) 2024-08-11 17:09:17 -05:00
Hayden
c4a339ed36 chore(l10n): New Crowdin updates (#4016) 2024-08-11 00:49:18 +02:00
Hayden
2967eca819 chore(l10n): New Crowdin updates (#4011) 2024-08-10 09:28:46 +02:00
boc-the-git
66b19eecfb feat: If there's only one shopping list, navigate directly to it (#3958) 2024-08-09 14:11:54 +00:00
renovate[bot]
37d93d4e4b chore(deps): update dependency ruff to v0.5.7 (#4005)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
2024-08-09 10:57:38 +00:00
renovate[bot]
656d46e9cb fix(deps): update dependency openai to v1.40.2 (#4008)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-09 20:47:16 +10:00
Hayden
169d659b72 chore(l10n): New Crowdin updates (#4007) 2024-08-08 23:36:04 +02:00
TheSuperBeaver
f92a9afbe5 feat: Added fr-BE (#4004) 2024-08-08 09:50:14 -05:00
renovate[bot]
d53f81cdfb fix(deps): update dependency openai to v1.40.1 (#4001)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-07 13:17:57 -05:00
renovate[bot]
bd4f858ba7 fix(deps): update dependency pyyaml to v6.0.2 (#3996)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-06 22:53:25 -05:00
renovate[bot]
ce3a95f38a fix(deps): update dependency rapidfuzz to v3.9.6 (#3997)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-06 22:11:10 -05:00
Hayden
e3ffa03ffd chore(l10n): New Crowdin updates (#3995) 2024-08-06 16:07:42 -05:00
renovate[bot]
79910deb8a fix(deps): update dependency openai to v1.40.0 (#3994)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-06 17:43:07 +00:00
Michael Genson
e0c532ab94 fix: Bump tzdata 2024.1 (#3993) 2024-08-06 09:29:34 -05:00
renovate[bot]
73c09ab138 fix(deps): update dependency openai to v1.39.0 (#3989)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-05 16:46:18 -05:00
renovate[bot]
7edf0ee3cc fix(deps): update dependency tzdata to v2024 (#3990)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-05 20:40:05 +00:00
renovate[bot]
48381fe897 fix(deps): update dependency sqlalchemy to v2.0.32 (#3988)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-05 15:27:10 -05:00
github-actions[bot]
e68300037c fix(auto): Update pre-commit hooks (#3987)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
2024-08-05 15:04:43 +00:00
renovate[bot]
c643f24a72 chore(deps): update dependency coverage to v7.6.1 (#3985)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-05 09:54:14 -05:00
renovate[bot]
7820ddc8f7 fix(deps): update dependency uvicorn to v0.30.5 (#3979)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-02 17:46:21 +00:00
renovate[bot]
ca3cb2447c fix(deps): update dependency fastapi to ^0.112.0 (#3977)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-02 17:35:19 +00:00
renovate[bot]
a55fdb634d chore(deps): update dependency mkdocs-material to v9.5.31 (#3978)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-02 17:23:35 +00:00
renovate[bot]
8b0c607712 chore(deps): update dependency ruff to v0.5.6 (#3980)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-02 17:12:25 +00:00
renovate[bot]
8c990a5dd2 fix(deps): update dependency openai to v1.38.0 (#3981)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-02 16:59:42 +00:00
renovate[bot]
abf5cf0116 fix(deps): update dependency pyjwt to v2.9.0 (#3973)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-02 11:25:35 -05:00
renovate[bot]
84069bf9df fix(deps): update dependency openai to v1.37.2 (#3976)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-02 09:04:11 +02:00
Hayden
059e5b7ea2 chore(l10n): New Crowdin updates (#3975) 2024-08-02 08:48:16 +02:00
Michael Genson
3677d04b56 fix: Make recipe scraper cleaner more fault tolerant (#3967)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2024-08-01 08:33:46 +02:00
renovate[bot]
05c034fca2 fix(deps): update dependency uvicorn to v0.30.4 (#3971)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-31 21:02:44 -05:00
Kuchenpirat
17d1cd26dc fix: recipe clean_time function missing translator argument on recursion (#3969) 2024-07-31 17:22:30 +00:00
github-actions[bot]
c9bbae6f77 docs(auto): Update image tag, for release v1.11.0 (#3965)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
2024-07-31 18:44:37 +02:00
renovate[bot]
a41ad8c6ed chore(deps): update dependency mypy to v1.11.1 (#3963)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-30 19:26:12 -05:00
João Antunes
9c38c89c44 Update swag.md (#3961) 2024-07-30 21:19:18 +00:00
renovate[bot]
998440d064 fix(deps): update dependency pydantic-settings to v2.4.0 (#3960)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-30 17:14:12 +00:00
renovate[bot]
b01d12c377 chore(deps): update dependency pre-commit to v3.8.0 (#3954)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-30 12:02:42 -05:00
renovate[bot]
1dee574a08 fix(deps): update dependency pillow-heif to ^0.18.0 (#3949)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-30 11:40:42 -05:00
renovate[bot]
257c4461a3 fix(deps): update dependency rapidfuzz to v3.9.5 (#3959)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-30 11:12:17 -05:00
renovate[bot]
01f4257190 fix(deps): update dependency apprise to v1.8.1 (#3942)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-30 16:00:07 +00:00
renovate[bot]
d7b7dd6c83 fix(deps): update dependency recipe-scrapers to v15 (#3955)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2024-07-30 17:48:47 +02:00
github-actions[bot]
23c2eab682 fix(auto): Update pre-commit hooks (#3957)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
2024-07-29 10:41:26 +00:00
Michael Genson
def346d16d fix: Reduce search tolerance on organizers page (#3950) 2024-07-28 04:23:26 +00:00
tyme-dev
cc324b29ae fix: Homepage icon and text update (#3922)
Co-authored-by: Timothy Pace <Timothy@timothy.dev>
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
2024-07-28 04:08:34 +00:00
Michael Genson
9d58f9b266 fix: Offline Shopping List Fixes V2 - Electric Boogaloo (#3837)
Co-authored-by: Hayden <64056131+hay-kot@users.noreply.github.com>
2024-07-27 21:25:58 -05:00
renovate[bot]
30b2776f3c fix(deps): update dependency openai to v1.37.1 (#3943)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-26 12:27:34 +02:00
Hayden
60d23d0686 chore(l10n): New Crowdin updates (#3944) 2024-07-26 10:15:33 +00:00
Hayden
edf649dea6 fix: prevent postgres credentials leak (#3895)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2024-07-25 20:27:50 +00:00
renovate[bot]
29b4a3cd22 chore(deps): update dependency ruff to v0.5.5 (#3940)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-25 20:07:09 +00:00
renovate[bot]
f3a5148628 fix(deps): update dependency bcrypt to v4.2.0 (#3928)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-25 11:55:26 -08:00
renovate[bot]
33abd777e0 chore(deps): update dependency pytest to v8.3.2 (#3939)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-25 11:22:12 +00:00
Hayden
739055caf6 chore(l10n): New Crowdin updates (#3938) 2024-07-25 21:10:07 +10:00
Kuchenpirat
8c29bd3439 fix: task py:migrate description (#3932) 2024-07-23 15:43:21 +00:00
renovate[bot]
2c4d0b692b chore(deps): update dependency mkdocs-material to v9.5.30 (#3930)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-23 17:31:01 +02:00
Brian Choromanski
946b79b77a feat: PWA Additions (#3896)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2024-07-23 17:04:15 +02:00
Hayden
cd154d09b2 chore(l10n): New Crowdin updates (#3929) 2024-07-23 07:26:34 +10:00
github-actions[bot]
236c930b54 fix(auto): Update pre-commit hooks (#3925)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
2024-07-22 18:08:24 +00:00
renovate[bot]
980c847e36 fix(deps): update dependency openai to v1.37.0 (#3927)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-22 12:58:29 -05:00
renovate[bot]
91700771e6 chore(deps): update dependency pylint to v3.2.6 (#3923)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-21 22:02:55 +00:00
Hayden
abb6ad5fd0 chore(l10n): New Crowdin updates (#3921) 2024-07-21 16:50:51 -05:00
renovate[bot]
ac7af02f77 chore(deps): update dependency pytest to v8.3.1 (#3916)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-20 22:39:57 -05:00
Hayden
525b398687 chore(l10n): New Crowdin updates (#3917) 2024-07-21 03:08:27 +00:00
renovate[bot]
fafc836ccc chore(deps): update dependency ruff to v0.5.4 (#3915)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-20 21:58:11 -05:00
renovate[bot]
c617b829e5 fix(deps): update dependency openai to v1.36.1 (#3919)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-20 21:42:13 -05:00
Michael Genson
5b1e827d45 fix: Convert Daily Schedule Time to UTC (#3914) 2024-07-20 21:57:02 +00:00
boc-the-git
e33b62be2a docs: Change allow signup to false (#3913) 2024-07-20 10:38:57 -05:00
Arsène Reymond
60c33b499c feat: Internationalize sent emails (#3818) 2024-07-20 10:32:24 +00:00
Hayden
c205dff523 chore(l10n): New Crowdin updates (#3911) 2024-07-20 10:19:38 +00:00
renovate[bot]
ce69899c4b fix(deps): update dependency uvicorn to v0.30.3 (#3912)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-20 20:09:31 +10:00
renovate[bot]
a4183e3453 chore(deps): update dependency mypy to v1.11.0 (#3910)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-19 17:27:56 -05:00
renovate[bot]
ab39408a24 fix(deps): update dependency openai to v1.36.0 (#3909)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-19 12:09:20 -05:00
boc-the-git
8c6c98483c docs: Remove duplicated "step 2" (#3908) 2024-07-19 14:32:40 +02:00
renovate[bot]
ae095ab572 chore(deps): update dependency ruff to v0.5.3 (#3905)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-18 16:58:55 -05:00
renovate[bot]
65356bc21a fix(deps): update dependency openai to v1.35.15 (#3906)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-18 22:42:34 +02:00
renovate[bot]
3aed5de3fc chore(deps): update dependency pytest-asyncio to v0.23.8 (#3901)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-17 18:29:24 -05:00
renovate[bot]
a4e9e54dae fix(deps): update dependency fastapi to v0.111.1 (#3891)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-17 09:51:28 -05:00
renovate[bot]
8f698e437e fix(deps): update dependency recipe-scrapers to v14.58.0 (#3894)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-17 11:34:48 +00:00
boc-the-git
ab0d36825a fix: Create directory used for Docker Secrets (#3888) 2024-07-17 06:24:53 -05:00
renovate[bot]
4e2f6c57f1 fix(deps): update dependency openai to v1.35.14 (#3897)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-16 09:10:37 +02:00
renovate[bot]
de4cb8ba83 chore(deps): update dependency mkdocs-material to v9.5.29 (#3889)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-15 10:35:31 +00:00
github-actions[bot]
375f43c596 fix(auto): Update pre-commit hooks (#3893)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
2024-07-15 10:26:27 +00:00
renovate[bot]
3034945e7e chore(deps): update dependency ruff to v0.5.2 (#3890)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-15 20:16:07 +10:00
Hayden
8e5effa532 chore(l10n): New Crowdin updates (#3887) 2024-07-13 15:40:41 +02:00
Litchi Pi
3b81d3b18a fix: Use env variable to get alembic config file in exporter (#3882)
Signed-off-by: Litchi Pi <litchi.pi@proton.me>
2024-07-12 12:18:06 +00:00
Michael Genson
d0f8b5773d fix: Bump other version numbers in GH workflow (#3840) 2024-07-12 11:30:22 +00:00
renovate[bot]
14910162dc chore(deps): update dependency coverage to v7.6.0 (#3884)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-12 21:00:35 +10:00
Hayden
035f780d27 chore(l10n): New Crowdin updates (#3886) 2024-07-11 22:22:37 +02:00
renovate[bot]
f10161ee92 fix(deps): update dependency recipe-scrapers to v14.57.1 (#3883)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-11 09:56:19 -05:00
Michael Genson
b1a100a8c5 feat: Push On Hand Items to Bottom Of Add To Shopping List Dialog (#3862)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
2024-07-10 20:41:15 +00:00
Hayden
7db39d32d1 chore(l10n): New Crowdin updates (#3878) 2024-07-10 15:24:34 -05:00
renovate[bot]
10921f9a64 fix(deps): update dependency openai to v1.35.13 (#3877)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-10 13:48:02 -05:00
renovate[bot]
ba1c44172e fix(deps): update dependency tzdata to v2024 (#3825)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-10 17:01:27 +00:00
zeskeertwee
fd2dc15a15 fix: Follow redirects during scraping (#3875) 2024-07-10 16:49:13 +00:00
renovate[bot]
47124488bb fix(deps): update dependency pydantic to v2.8.2 (#3844)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-10 10:10:21 -05:00
Marcus Noble
6e680c972a feat: Show recipe tags on mobile view and meal plan (#3864)
Signed-off-by: Marcus Noble <github@marcusnoble.co.uk>
2024-07-10 09:43:33 +00:00
renovate[bot]
1fd2eb37ae fix(deps): update dependency openai to v1.35.12 (#3873)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-10 19:33:45 +10:00
Hayden
923a59791a chore(l10n): New Crowdin updates (#3869) 2024-07-09 10:12:16 +00:00
Carter
1fcc2c755a fix: Add a default value of list when a user's group is None (#3872) 2024-07-08 21:13:04 -05:00
Michael Genson
d5f7a883df fix: Make Mealie Timezone-Aware (#3847)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
2024-07-08 21:12:20 +00:00
Michael Genson
17f9eef551 docs: Update API Docs (#3856) 2024-07-08 10:01:31 +00:00
Elijah Mock
ca1ab33291 docs: Fix FAQ typos (#3866) 2024-07-07 19:11:53 -05:00
Michael Genson
6e6ae80c46 fix: Restore Webhook Test Functionality (#3857)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2024-07-06 19:10:01 +00:00
Hayden
aa6e109162 chore(l10n): New Crowdin updates (#3860) 2024-07-06 21:01:58 +02:00
renovate[bot]
a6e4b778c1 fix(deps): update dependency openai to v1.35.10 (#3843)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-05 19:16:40 +00:00
github-actions[bot]
31c7cb7906 docs(auto): Update image tag, for release v1.10.2 (#3851)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2024-07-05 19:07:22 +00:00
Michael Genson
d954b5cf48 fix: Minor Typo (#3855)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2024-07-05 18:58:52 +00:00
renovate[bot]
e5c2f5570f chore(deps): update dependency ruff to v0.5.1 (#3854)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-05 10:43:22 -05:00
Michael Genson
e344f3f1e6 fix: Temporary TZ Issue Fix For Shopping Lists (#3850) 2024-07-05 12:08:04 +10:00
github-actions[bot]
6a7f0edbc6 docs(auto): Update image tag, for release v1.10.1 (#3836)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2024-07-03 18:57:23 +00:00
Hayden
d2fd4e0843 chore(l10n): New Crowdin updates (#3838) 2024-07-03 18:38:40 +02:00
boc-the-git
d639d168fa fix: Revert "fix: Offline Shopping List Fixes" (#3835) 2024-07-03 12:08:13 +00:00
renovate[bot]
7931e383b2 fix(deps): update dependency openai to v1.35.9 (#3831)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-03 16:48:56 +10:00
renovate[bot]
7bfb8c78a6 fix(deps): update dependency rapidfuzz to v3.9.4 (#3832)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-02 20:15:58 -05:00
renovate[bot]
9a2b2a59a2 fix(deps): update dependency orjson to v3.10.6 (#3829)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-02 21:41:55 +00:00
renovate[bot]
0c0ff8f19d chore(deps): update dependency mkdocs-material to v9.5.28 (#3827)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-02 21:30:56 +00:00
renovate[bot]
6bbd9a162e fix(deps): update dependency openai to v1.35.8 (#3828)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-03 07:20:11 +10:00
renovate[bot]
4d6fc9a4c9 fix(deps): update dependency pillow-heif to ^0.17.0 (#3826)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-02 09:10:04 -05:00
Michael Genson
53c89b340a fix: Offline Shopping List Fixes (#3823)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
2024-07-02 21:11:13 +10:00
renovate[bot]
dc64484b8e fix(deps): update dependency recipe-scrapers to v14.57.0 (#3804)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2024-07-01 19:39:22 +00:00
renovate[bot]
aabab73310 fix(deps): update dependency pydantic to v2.8.0 (#3824)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-01 12:34:25 -05:00
renovate[bot]
542d0e5218 fix(deps): update dependency pillow to v10.4.0 (#3822)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-01 11:57:37 -05:00
Hayden
a3a21eb533 chore(l10n): New Crowdin updates (#3821) 2024-06-30 16:43:00 +02:00
Vladyslav Velychko
b0cc7c4c25 fix: Daily task scheduler can be off by an hour (#3820) 2024-06-30 11:57:20 +00:00
boc-the-git
e80ba7dff3 fix: Typo, assert_derserialize => assert_deserialize (#3814) 2024-06-29 15:25:04 +00:00
Hayden
bdac51bae2 chore(l10n): New Crowdin updates (#3817) 2024-06-29 16:34:44 +02:00
Michael Genson
f4827abc1d feat: Offline Shopping List (#3760)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
2024-06-29 09:58:58 +00:00
renovate[bot]
63a180ef2c chore(deps): update dependency pylint to v3.2.5 (#3813)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-29 19:50:40 +10:00
boc-the-git
a062a4beaa feat: Add the ability to flag a food as "on hand", to exclude from shopping list (#3777) 2024-06-28 15:16:04 +00:00
renovate[bot]
4831adb0f3 chore(deps): update dependency ruff to ^0.5.0 (#3807)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2024-06-28 15:03:03 +00:00
Hayden
97550899d0 chore(l10n): New Crowdin updates (#3812) 2024-06-28 16:06:14 +02:00
Michael Genson
da11204cd7 feat: Auto-label new shopping list items (#3800) 2024-06-28 10:03:23 +00:00
Olly Welch
9795b4c553 feat: check all in shopping list view (#3786)
Co-authored-by: Olly Welch <mail@ollywelch.com>
2024-06-28 09:37:21 +00:00
Michael Genson
3e1adfa65d feat: Make OpenAI Request Timeout Configurable (#3808) 2024-06-28 08:35:16 +00:00
renovate[bot]
88214cd61f fix(deps): update dependency openai to v1.35.7 (#3810)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-28 09:57:21 +02:00
renovate[bot]
f1b53483da fix(deps): update dependency openai to v1.35.6 (#3806)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-27 19:04:58 +02:00
renovate[bot]
5ccac83d08 fix(deps): update dependency alembic to v1.13.2 (#3801)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-27 08:35:56 -05:00
renovate[bot]
5594b303bc fix(deps): update dependency openai to v1.35.5 (#3802)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-26 15:36:10 -05:00
Thomas Pijper
58100d0515 feat: Added serving size to print view (#3796)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
2024-06-26 11:31:08 +00:00
Christian Clauss
e2033b2d67 fix: pre-commit autoupdate && pre-commit run --all-files (#3780) 2024-06-26 10:41:46 +00:00
Michael Genson
5e0f8a4bf7 feat: Add Alerts for Ingredient Parsing Errors (#3795) 2024-06-26 10:33:11 +00:00
renovate[bot]
477899fce3 chore(deps): update dependency pylint to v3.2.4 (#3798)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-26 08:44:24 +00:00
renovate[bot]
04d481fcbf fix(deps): update dependency openai to v1.35.4 (#3797)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-26 18:34:38 +10:00
Michael Genson
5572e51933 feat: Prevent Shopping Lists From Rendering If Redirecting (#3768) 2024-06-25 13:41:41 +00:00
renovate[bot]
44915ace12 fix(deps): update dependency aiofiles to v24 (#3784)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-25 21:45:44 +10:00
renovate[bot]
906a143363 chore(deps): update dependency mypy to v1.10.1 (#3791)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-25 10:00:45 +00:00
Hayden
c41bfbab1e chore(l10n): New Crowdin updates (#3789) 2024-06-25 19:51:20 +10:00
renovate[bot]
69fca013d8 fix(deps): update dependency pydantic-settings to v2.3.4 (#3785)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-24 20:43:39 +00:00
renovate[bot]
24a17e4001 chore(deps): update dependency coverage to v7.5.4 (#3774)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-25 06:34:07 +10:00
Hayden
6cbd004fb9 chore(l10n): New Crowdin updates (#3782) 2024-06-23 20:51:24 -05:00
boc-the-git
5d8210d570 docs: Add database changes, remove changelogs (#3778) 2024-06-23 15:34:17 +00:00
Hayden
8d6dc1c6ee chore(l10n): New Crowdin updates (#3775)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2024-06-23 08:56:22 +00:00
Michael Genson
0e520ba43c feat: Add Additional Plan To Eat Columns To Import (#3776) 2024-06-23 03:26:54 +00:00
Hayden
a9b40cd862 chore(l10n): New Crowdin updates (#3771) 2024-06-22 01:40:33 +00:00
Michael Genson
ba48e9414c fix: Comments Disappear After Edit (#3767)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
2024-06-22 10:44:22 +10:00
Michael Genson
72aa1b2514 fix: Open AI Parsing Fails When Group Has No Units (#3769) 2024-06-21 21:59:57 +00:00
Michael Genson
b4f07f9d62 fix: Prevent Dragging Ingredients to Instructions and Vice Versa (#3770) 2024-06-22 07:42:05 +10:00
boc-the-git
eb36912e5c feat: If only 1 shopping list, navigate straight to it (Shopping List QoL) (#3764)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2024-06-21 12:17:39 +00:00
boc-the-git
d923b4c7fa fix: Typo in label (#3765) 2024-06-21 10:23:15 +00:00
Hayden
4ecf88379c chore(l10n): New Crowdin updates (#3738) 2024-06-21 10:09:29 +00:00
renovate[bot]
857c8d42e2 fix(deps): update dependency tzdata to v2024 (#3763)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2024-06-21 08:14:48 +00:00
renovate[bot]
982802c427 fix(deps): update dependency openai to v1.35.3 (#3762)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-21 04:02:20 +00:00
Hayden
4d1381c055 chore: remove gunicorn in favor of uvicorn workers (#3761) 2024-06-20 22:52:09 -05:00
Kuchenpirat
adab596683 feat: bulk assign label to foods (#3750) 2024-06-20 22:42:42 +00:00
renovate[bot]
e08fc4e25e fix(deps): update dependency openai to v1.35.2 (#3759)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-20 21:20:31 +02:00
renovate[bot]
e8ee37fd43 chore(deps): update dependency ruff to v0.4.10 (#3758)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-20 19:06:40 +00:00
renovate[bot]
bfe249dc42 fix(deps): update dependency sqlalchemy to v2.0.31 (#3752)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-20 21:48:27 +10:00
renovate[bot]
15989e0c93 fix(deps): update dependency openai to v1.35.1 (#3756)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-19 18:10:48 -05:00
renovate[bot]
9af06ce442 fix(deps): update dependency openai to v1.35.0 (#3753)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-19 15:06:49 -05:00
Michael Genson
22fc29742a fix: Make OpenAI Image Scraping More Fault Tolerant (#3749) 2024-06-18 18:25:53 +02:00
Jonathan Beaulieu
20b1b3de35 feat: Insert instruction step above or below. #3731 (#3732) 2024-06-18 13:45:12 +00:00
github-actions[bot]
82d930e645 docs(auto): Update image tag, for release v1.9.0 (#3747)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
2024-06-18 09:55:46 +00:00
boc-the-git
d96c36333b docs: Provide meaningful URLs for some badges (#3742)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2024-06-18 09:21:53 +00:00
Asdoos
b220cd6431 feat: Show nutrition on recipe print (#3740)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2024-06-18 11:08:22 +02:00
Brian Choromanski
598b0f3707 feat: Added images to PWA shortcuts (#3744) 2024-06-17 15:33:41 -05:00
renovate[bot]
c18b9d3184 chore(deps): update dependency mkdocs-material to v9.5.27 (#3741)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-16 18:10:51 +02:00
renovate[bot]
e64d070603 chore(deps): update dependency ruff to v0.4.9 (#3737)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-14 12:01:11 -05:00
renovate[bot]
d843370c07 fix(deps): update dependency orjson to v3.10.5 (#3734)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-14 08:04:57 -05:00
boc-the-git
269be953ce docs: Fix typo in python logging docs (#3736) 2024-06-14 07:55:37 -05:00
Bart Kummel
9f7d74aecf fix: Make fractions in the ingredient list look a tiny bit nicer (#3725) 2024-06-13 13:04:45 +00:00
renovate[bot]
4a0a8e8a5e fix(deps): update dependency pydantic-settings to v2.3.3 (#3733)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-13 21:16:59 +10:00
boc-the-git
75895cab79 docs: Adjust badges in README (#3728)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2024-06-13 04:11:10 +00:00
renovate[bot]
be0cdee8b7 fix(deps): update dependency openai to v1.34.0 (#3730)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-12 23:02:59 -05:00
renovate[bot]
6024c8bc05 fix(deps): update dependency pydantic to v2.7.4 (#3729)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-12 16:37:52 +00:00
Greirson Lee-Thorp
b3241d3e8b docs: Add n8n backup automation example guide (#3648)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
2024-06-12 09:42:57 +00:00
Hayden
01b9987812 chore(l10n): New Crowdin updates (#3726) 2024-06-11 18:53:17 +02:00
renovate[bot]
4e613e15f0 fix(deps): update dependency orjson to v3.10.4 (#3722)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-11 09:57:53 -05:00
renovate[bot]
5298bdc90f fix(deps): update dependency pydantic-settings to v2.3.2 (#3723)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-11 09:48:39 -05:00
boc-the-git
2a6bb7d444 docs: Add doco for db changes (#3721) 2024-06-10 13:34:02 +02:00
Hayden
21f1d46b6d chore(l10n): New Crowdin updates (#3720) 2024-06-09 10:10:31 -05:00
Hayden
df15a9e74e chore(l10n): New Crowdin updates (#3716) 2024-06-08 15:06:59 +00:00
renovate[bot]
f53cae7c7b fix(deps): update dependency openai to v1.33.0 (#3715)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-07 21:27:28 -05:00
renovate[bot]
219138fce1 fix(deps): update dependency openai to v1.32.1 (#3713)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-07 21:19:45 +00:00
Michael Genson
4634ad5666 fix: Recipe Keeper Errors and Other Safari Issues (#3712)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2024-06-07 15:35:36 +00:00
Hayden
eab7c0d9e5 chore(l10n): New Crowdin updates (#3711) 2024-06-07 15:10:54 +00:00
Michael Genson
4afb767375 feat: Open AI Recipe Scraper (#3690) 2024-06-07 11:45:50 +00:00
renovate[bot]
a49c32e663 fix(deps): update dependency openai to v1.32.0 (#3709)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-07 09:54:50 +02:00
renovate[bot]
5d55e4b4ff chore(deps): update dependency pylint to v3.2.3 (#3706)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-06 14:22:08 -05:00
renovate[bot]
98c5d142eb fix(deps): update dependency openai to v1.31.2 (#3707)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-06 12:03:22 -05:00
renovate[bot]
c0db6ff3d1 chore(deps): update dependency mkdocs-material to v9.5.26 (#3705)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-06 15:43:23 +02:00
renovate[bot]
b71310cdaf fix(deps): update dependency pydantic-settings to v2.3.1 (#3701)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-05 14:29:31 -05:00
renovate[bot]
91fb750768 fix(deps): update dependency openai to v1.31.1 (#3700)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-05 17:20:25 +00:00
renovate[bot]
7f1139618d chore(deps): update dependency ruff to v0.4.8 (#3699)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-05 17:10:04 +00:00
github-actions[bot]
42b2bc7c15 docs(auto): Update image tag, for release v1.8.0 (#3698)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
2024-06-05 09:52:58 +00:00
renovate[bot]
583bd742fb fix(deps): update dependency authlib to v1.3.1 (#3696)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-04 18:04:09 -05:00
renovate[bot]
af86ed2028 chore(deps): update dependency pytest to v8.2.2 (#3695)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-04 14:49:33 -05:00
renovate[bot]
80dc1dcaad fix(deps): update dependency pydantic to v2.7.3 (#3689)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-04 19:11:05 +00:00
renovate[bot]
90e184c0fc fix(deps): update dependency pydantic-settings to v2.3.0 (#3688)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-04 18:58:27 +00:00
renovate[bot]
393103662f fix(deps): update dependency openai to v1.31.0 (#3691)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-04 15:18:30 +00:00
Hayden
6e2957fb1e chore(l10n): New Crowdin updates (#3694) 2024-06-04 10:05:53 -05:00
boc-the-git
e7a668e64e feat: Ensure PR title fits convention (#3683) 2024-06-04 13:41:02 +00:00
Hayden
88577b696b New Crowdin updates (#3693) 2024-06-04 12:33:42 +02:00
Hayden
289038ba17 New Crowdin updates (#3687) 2024-06-03 07:43:44 +00:00
boc-the-git
4aec294c26 docs: Add Key Features to README (#3678)
Co-authored-by: Hayden <64056131+hay-kot@users.noreply.github.com>
2024-06-03 00:40:49 +00:00
renovate[bot]
99a13bd0c4 fix(deps): update dependency uvicorn to v0.30.1 (#3685)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-02 19:32:21 +10:00
Hayden
3bd4353685 New Crowdin updates (#3684) 2024-06-02 09:30:18 +02:00
Michael Genson
109ec651cc fix: Broken Data Management Tabs (#3680) 2024-06-01 21:46:31 +00:00
Dennis Gaida
166582acf4 [docs] add possible log levels (#3638)
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2024-06-02 07:11:40 +10:00
Michael Genson
4bc88e653f feat: Handle Safari-mangled backup ZIPs and improve backup UI (#3674) 2024-06-01 15:58:42 +00:00
Michael Genson
94e91d3602 feat: Update Shopping List Timestamp on List Item Update (#3453) 2024-06-01 11:07:50 +00:00
renovate[bot]
d6ce607a4e fix(deps): update dependency rapidfuzz to v3.9.3 (#3673)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-01 10:42:57 +00:00
renovate[bot]
9e8822fabe chore(deps): update dependency ruff to v0.4.7 (#3672)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-01 20:32:44 +10:00
Hayden
0734ec9ce8 New Crowdin updates (#3675) 2024-06-01 11:13:31 +02:00
Jonathan Beaulieu
f4f2b863e0 feat: Add recipekeeper migration (#3642) 2024-05-31 09:58:04 +00:00
DataDalton
a7fcb6c84d docs: Update documentation link on main readme (#3657) 2024-05-31 06:34:19 +00:00
renovate[bot]
abcee51d0c fix(deps): update dependency openai to v1.30.5 (#3670)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-30 17:00:31 +10:00
renovate[bot]
8b61f95c8c fix(deps): update dependency requests to v2.32.3 (#3668)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
2024-05-30 06:34:55 +00:00
renovate[bot]
e01bb60aab fix(deps): update dependency rapidfuzz to v3.9.2 (#3667)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-30 06:24:55 +00:00
Hayden
bf5340b902 New Crowdin updates (#3669) 2024-05-30 16:13:43 +10:00
renovate[bot]
985041e61f fix(deps): update dependency uvicorn to ^0.30.0 (#3659)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-29 14:40:17 +00:00
renovate[bot]
70edf36073 fix(deps): update dependency lxml to v5.2.2 (#3389)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-29 09:31:36 -05:00
renovate[bot]
15a0d25caa fix(deps): update dependency extruct to ^0.17.0 (#3666)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-29 09:21:06 -05:00
aljora
445754c5d8 Setting backend passwords with docker compose secrets (#3656)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2024-05-29 19:53:24 +10:00
Hayden
831cd9c543 New Crowdin updates (#3665) 2024-05-29 08:59:06 +00:00
renovate[bot]
abaf6062c6 chore(deps): update dependency ruff to v0.4.6 (#3663)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-28 19:47:40 -05:00
renovate[bot]
125c3914b3 fix(deps): update dependency pydantic to v2.7.2 (#3662)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-28 19:08:46 +00:00
renovate[bot]
93cb6bf341 chore(deps): update dependency coverage to v7.5.3 (#3660)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-28 18:57:54 +00:00
renovate[bot]
46fb2b2c5a fix(deps): update dependency openai to v1.30.4 (#3661)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-28 13:48:59 -05:00
Hayden
ac2a77b3b0 New Crowdin updates (#3658) 2024-05-28 08:00:49 +02:00
renovate[bot]
66a6426d15 chore(deps): update dependency mkdocs-material to v9.5.25 (#3655)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-27 10:44:49 +00:00
Hayden
508ae30133 New Crowdin updates (#3653) 2024-05-27 09:27:28 +02:00
boc-the-git
e3c642debf feat: Set default number of days on meal planner (#3650) 2024-05-26 21:30:15 +00:00
renovate[bot]
af9e0f27a3 chore(deps): update dependency coverage to v7.5.2 (#3651)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-26 09:56:26 -05:00
boc-the-git
e07467df57 fix: Set the daily schedule to a specific time, rather than 24hr from start up (#3645) 2024-05-26 04:00:51 +00:00
renovate[bot]
55b91bf847 fix(deps): update dependency openai to v1.30.3 (#3646)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-24 19:39:11 +00:00
renovate[bot]
58fc46af9f chore(deps): update dependency ruff to v0.4.5 (#3636)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-24 21:45:47 +10:00
Hayden
8e4fe55df1 New Crowdin updates (#3641) 2024-05-23 19:54:57 -05:00
renovate[bot]
f150c3f41e fix(deps): update dependency openai to v1.30.2 (#3640)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-23 15:00:34 +02:00
github-actions[bot]
36c7ae5b4b docs(auto): Update image tag, for release v1.7.0 (#3637)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
2024-05-23 07:08:46 +00:00
Hayden
d1c5a6ed8c New Crowdin updates (#3635) 2024-05-23 07:48:06 +02:00
Michael Genson
ca26639525 feat: Data Management from Shopping List (#3603)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
2024-05-22 21:58:16 +00:00
renovate[bot]
89982f3e5f fix(deps): update dependency requests to v2.32.2 (#3632)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-22 20:32:00 +10:00
renovate[bot]
8485b17490 fix(deps): update dependency openai to v1.30.1 (#3633)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-22 09:57:12 +00:00
Michael Genson
5c57b3dd1a feat: OpenAI Ingredient Parsing (#3581) 2024-05-22 09:45:07 +00:00
renovate[bot]
4c8bbdcde2 chore(deps): update dependency mkdocs-material to v9.5.24 (#3629)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-21 21:59:17 +10:00
renovate[bot]
2607066570 fix(deps): update dependency apprise to v1.8.0 (#3588)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-20 23:19:03 +00:00
renovate[bot]
8b7c8be51d fix(deps): update dependency requests to v2.32.1 (#3631)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-20 18:08:33 -05:00
nephlm
c70a5cb72c fix: Fix file not found error with individual recipe export/download. (#3579) 2024-05-20 17:53:14 -05:00
Michael Genson
c610ec1344 fix: Broken Import (#3630) 2024-05-20 07:55:01 -08:00
Michael Genson
61becdbec7 chore: Remove Server Tasks (#3592) 2024-05-20 14:51:37 +00:00
renovate[bot]
78d2a3b8aa chore(deps): update dependency pylint to v3.2.2 (#3625)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-20 20:37:03 +10:00
Michael Genson
a4c3b0da71 fix: NLP Ingredient Parser Misses Some Fractions (#3618) 2024-05-20 10:18:11 +00:00
Hayden
3d3279738b New Crowdin updates (#3622) 2024-05-20 00:36:33 +00:00
renovate[bot]
495d643ed9 fix(deps): update dependency rapidfuzz to v3.9.1 (#3623)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-19 19:28:23 -05:00
renovate[bot]
9094d24e50 chore(deps): update dependency pytest to v8.2.1 (#3621)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-19 15:53:19 -05:00
renovate[bot]
aa4d0f9958 chore(deps): update dependency pytest-asyncio to v0.23.7 (#3620)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-19 10:59:31 -05:00
renovate[bot]
cb821994ae chore(deps): update dependency pylint to v3.2.1 (#3616)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-18 12:53:27 -05:00
Hayden
b07a3a31f7 New Crowdin updates (#3614) 2024-05-17 17:48:33 -05:00
Zac Warham
68ff5f4b1c Fixed comment describing method (#3611) 2024-05-17 00:30:01 +00:00
renovate[bot]
cde9d166a4 chore(deps): update dependency mkdocs-material to v9.5.23 (#3605)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2024-05-16 22:29:23 +00:00
Hayden
041145423f New Crowdin updates (#3604) 2024-05-16 17:11:54 -05:00
renovate[bot]
c227519fb7 chore(deps): update dependency pylint to v3.2.0 (#3598)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-14 09:04:29 -05:00
Hayden
94223d2903 New Crowdin updates (#3596) 2024-05-13 12:24:07 -05:00
renovate[bot]
e015c65d92 chore(deps): update dependency pylint to v3.1.1 (#3595)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-13 15:30:03 +00:00
renovate[bot]
53916badf3 chore(deps): update dependency mkdocs-material to v9.5.22 (#3589)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-12 20:00:30 -05:00
Michael Genson
c82549ccb4 feat: Default To Fractions When Unit Is Empty (#3587)
Co-authored-by: Hayden <64056131+hay-kot@users.noreply.github.com>
2024-05-12 14:15:26 -05:00
Hayden
554b3fa749 New Crowdin updates (#3590) 2024-05-12 17:59:58 +01:00
Carter
3f263281e7 Add time-based caching for JWKS fetching (#3586) 2024-05-11 21:21:55 -05:00
renovate[bot]
dc47145af6 chore(deps): update dependency pre-commit to v3.7.1 (#3583)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-11 17:24:29 +00:00
Hayden
0ccee3584c New Crowdin updates (#3585) 2024-05-11 12:15:17 -05:00
Hayden
dc8aadc327 New Crowdin updates (#3580) 2024-05-10 15:28:14 +00:00
renovate[bot]
efbb571bc2 chore(deps): update dependency ruff to v0.4.4 (#3577)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-09 18:39:31 -05:00
Hayden
1df75328d7 New Crowdin updates (#3576) 2024-05-09 14:45:26 +02:00
Hayden
85e402ccc3 New Crowdin updates (#3575) 2024-05-08 14:18:40 +02:00
github-actions[bot]
53a1f04562 docs(auto): Update image tag, for release v1.6.0 (#3571)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
2024-05-07 18:04:46 +02:00
Michael Genson
418a8ec72b fix: Recipe Search Quirks and Session Storage (#3541)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2024-05-06 15:01:56 +00:00
renovate[bot]
770630bf73 fix(deps): update dependency sqlalchemy to v2.0.30 (#3568)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-06 19:40:32 +10:00
renovate[bot]
89ee7475a6 fix(deps): update dependency jinja2 to v3.1.4 (#3570)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-06 01:46:21 +00:00
Hayden
bca5dd8282 New Crowdin updates (#3569) 2024-05-05 20:35:46 -05:00
Michael Genson
dabd93c919 chore(deps): update dependency ruff to v0.4.3 (#3564) 2024-05-05 11:26:14 +00:00
Michael Genson
6991dff3e6 fix: Make Nextcloud Migrations Fault Tolerant (#3544) 2024-05-05 11:17:29 +00:00
Hayden
b0eece789d New Crowdin updates (#3565) 2024-05-04 21:44:22 -05:00
Arsène Reymond
9fad4a9dce fix: Shopping list labels reordering dialog (#3540)
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2024-05-04 20:27:04 +00:00
renovate[bot]
22d8c4d5dc fix(deps): update dependency bcrypt to v4.1.3 (#3560)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-04 16:19:05 +00:00
renovate[bot]
7be24d3479 chore(deps): update dependency coverage to v7.5.1 (#3563)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-04 11:09:12 -05:00
renovate[bot]
fbceb61b9a chore(deps): update dependency mkdocs-material to v9.5.21 (#3555)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-03 19:51:57 +00:00
renovate[bot]
1be5bfaef1 fix(deps): update dependency orjson to v3.10.3 (#3553)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-03 11:05:52 -05:00
Carter
fac1df31d3 Make OIDC groups claim configurable and optional (#3552) 2024-05-02 22:55:47 -05:00
renovate[bot]
6957e2fa74 fix(deps): update dependency rapidfuzz to v3.9.0 (#3550)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-03 01:25:43 +00:00
renovate[bot]
4f02fae284 fix(deps): update dependency fastapi to ^0.111.0 (#3549)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-02 20:15:56 -05:00
Hayden
f2615c97e9 New Crowdin updates (#3548) 2024-05-02 20:06:21 -05:00
Hayden
6b4c9a400d New Crowdin updates (#3542) 2024-05-02 08:33:54 +02:00
Michael Genson
cca11b5a12 chore(deps): update dependency ruff to v0.4.2 (#3533)
Co-authored-by: Hayden <64056131+hay-kot@users.noreply.github.com>
2024-05-01 16:07:10 +00:00
Michael Genson
f697a7ee34 docs: formatting (#3539) 2024-05-01 07:58:55 -08:00
Kuchenpirat
0d73338e12 cleanup: parser localization (#3538) 2024-05-01 09:06:43 -05:00
renovate[bot]
2f4c6bd500 fix(deps): update dependency orjson to v3.10.2 (#3535)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-01 19:32:30 +10:00
Michael Genson
3807778e2f feat: Recipe Actions (#3448)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2024-05-01 09:20:52 +02:00
Hayden
ee87a14401 New Crowdin updates (#3534) 2024-05-01 00:58:59 +00:00
Michael Genson
ec458a0a08 fix: Security Issues (#3530)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
2024-04-30 20:53:55 +00:00
renovate[bot]
2ff37c86d6 chore(deps): update dependency pytest to v8.2.0 (#3522)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-30 14:58:32 +00:00
renovate[bot]
b7da3c0f73 fix(deps): update dependency tzdata to v2024 (#3527)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2024-04-30 14:54:31 +00:00
renovate[bot]
d799136f0d fix(deps): update dependency fastapi to v0.110.3 (#3532)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-30 14:46:52 +00:00
renovate[bot]
d1d5754c6d chore(deps): update dependency mkdocs-material to v9.5.20 (#3517)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-30 14:34:55 +00:00
renovate[bot]
52662fdce2 chore(deps): update dependency mypy to v1.10.0 (#3516)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-30 09:25:46 -05:00
Hayden
8df6033c19 New Crowdin updates (#3531) 2024-04-30 08:45:00 +02:00
Hayden
c23660007e chore: bump user agent (#3457) 2024-04-29 12:18:00 -05:00
Michael Genson
786aa2279c chore: Replace python-jose with PyJWT (#3521)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
2024-04-29 09:49:13 +00:00
Hayden
ab8c3be367 New Crowdin updates (#3523) 2024-04-27 00:19:50 -05:00
Hayden
8bf8dfd3ed New Crowdin updates (#3520) 2024-04-26 09:51:33 +02:00
renovate[bot]
b3aa7aeb1a fix(deps): update dependency recipe-scrapers to v14.56.0 (#3518)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-25 20:15:33 +02:00
Hayden
0f2b1d8d3a New Crowdin updates (#3515) 2024-04-24 16:18:23 +10:00
renovate[bot]
4de6391684 chore(deps): update dependency coverage to v7.5.0 (#3514)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-23 18:21:41 +00:00
renovate[bot]
c3e68b7d8a fix(deps): update dependency pydantic to v2.7.1 (#3513)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-23 13:11:19 -05:00
Hayden
7557d2e818 New Crowdin updates (#3510) 2024-04-23 09:04:28 +02:00
renovate[bot]
c22a2fc4a8 fix(deps): update dependency fastapi to v0.110.2 (#3497)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-22 12:05:43 +00:00
Hayden
ad94a4f42f New Crowdin updates (#3507) 2024-04-22 08:22:55 +02:00
Hayden
e6bf3b3acd New Crowdin updates (#3501) 2024-04-19 19:31:21 +02:00
Michael Genson
711dd93851 fix: Ratings UI and Filter Issues (#3459)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2024-04-19 17:52:41 +02:00
Carter
2b6d7811ca OIDC - Specifically check for 401 status before resetting (#3500) 2024-04-19 14:51:04 +00:00
renovate[bot]
3373abf787 chore(deps): update dependency ruff to v0.4.1 (#3498)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-19 09:20:26 -05:00
Michael Genson
741d37f59e feat: Group Shopping List Items By Food (#3471)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2024-04-19 11:00:40 +00:00
Michael Genson
b38c19ce71 fix: Missing Translations (#3494) 2024-04-19 10:42:50 +00:00
Carter
1a385e941c Add new OIDC TLS CA Certfile option (#3496) 2024-04-19 20:36:03 +10:00
Carter
c6f5b62ad0 Fix OIDC infinite loop if user is not in OIDC_USER_GROUP (#3487) 2024-04-19 00:17:45 +00:00
renovate[bot]
84dad84326 chore(deps): update dependency ruff to ^0.4.0 (#3495)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-18 18:42:07 -05:00
Hayden
f369c8fd6e New Crowdin updates (#3493) 2024-04-18 12:19:22 -05:00
github-actions[bot]
467cf46c6d docs(auto): Update image tag, for release v1.5.1 (#3482)
Co-authored-by: hay-kot <64056131+hay-kot@users.noreply.github.com>
2024-04-18 06:28:13 +00:00
Kuchenpirat
360b8e21d9 fix: MultiPurposeLabel text color (#3485) 2024-04-17 12:24:54 -05:00
Hayden
0b851e79ec New Crowdin updates (#3484) 2024-04-17 16:44:40 +00:00
renovate[bot]
faf716cb7e fix(deps): update dependency gunicorn to v22 (#3479)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-16 23:07:01 -05:00
Michael Genson
46f1ad7941 fix: Bad Recipe Rating Calc Preventing App Startup (#3475) 2024-04-16 20:47:15 +00:00
p0lycarpio
6e1112c73e fix: make groups private by default (#3474) 2024-04-16 15:12:00 -05:00
Hayden
6bd5a82b92 rewrite logger to support custom config files (#3104) 2024-04-16 15:52:49 +00:00
renovate[bot]
cba076b6a4 chore(deps): update dependency ruff to v0.3.7 (#3458)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-16 10:41:00 -05:00
Michael Genson
2ff1135b00 fix: duplicate ld+json data (#3444)
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
2024-04-16 10:54:14 +00:00
renovate[bot]
467b9c6d65 fix(deps): update dependency apprise to v1.7.6 (#3464)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
2024-04-16 10:46:17 +00:00
renovate[bot]
176e471276 fix(deps): update dependency orjson to v3.10.1 (#3467)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-16 20:35:27 +10:00
renovate[bot]
193888fb30 chore(deps): update dependency mkdocs-material to v9.5.18 (#3468)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-16 00:13:49 -05:00
Hayden
13edefbf41 New Crowdin updates (#3465) 2024-04-14 19:21:05 +02:00
Hayden
fd33468fda New Crowdin updates (#3462) 2024-04-13 17:24:37 +02:00
Michael Genson
2a541f081a feat: User-specific Recipe Ratings (#3345) 2024-04-11 21:28:43 -05:00
renovate[bot]
8ab09cf03b fix(deps): update dependency tzdata to v2024 (#3456)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-12 01:49:18 +00:00
Hayden
9e6ae2e514 chore: remove black (#3437) 2024-04-11 20:36:55 -05:00
renovate[bot]
94678fe6e0 chore(deps): update dependency ruff to v0.3.6 (#3451)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-11 15:39:17 -05:00
renovate[bot]
ed533c8fad fix(deps): update dependency pydantic to v2.7.0 (#3452)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-11 15:24:24 -05:00
Hayden
93f7d15917 New Crowdin updates (#3447) 2024-04-10 14:39:49 +02:00
Hayden
53aa4dab51 New Crowdin updates (#3443) 2024-04-09 15:07:18 +02:00
tba-code
92659c64eb fix: properly escape postgres password (#3424)
Co-authored-by: Hayden <64056131+hay-kot@users.noreply.github.com>
2024-04-08 14:47:57 +00:00
Hayden
6f871c6bdb New Crowdin updates (#3441) 2024-04-08 10:57:49 +00:00
renovate[bot]
f4f511aad6 Update dependency rapidfuzz to v3.8.1 (#3439)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-08 20:08:52 +10:00
Hayden
03d384f3a5 New Crowdin updates (#3435) 2024-04-07 09:45:46 -08:00
renovate[bot]
0c2917a112 Update dependency rapidfuzz to v3.8.0 (#3431)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-06 12:02:11 -05:00
boc-the-git
606a8f03a3 Merge pull request #3429 from mealie-recipes/l10n_mealie-next
New Crowdin updates
2024-04-06 21:40:31 +11:00
Hayden
2d31c0abf2 New translations en-us.json (French, Canada) 2024-04-06 05:29:58 -05:00
Hayden
15c752d428 New translations en-us.json (Latvian) 2024-04-06 05:29:58 -05:00
Hayden
b254cf3833 New translations en-us.json (Croatian) 2024-04-06 05:29:57 -05:00
Hayden
0bd023d8a8 New translations en-us.json (Portuguese, Brazilian) 2024-04-06 05:29:56 -05:00
Hayden
aad50f2267 New translations en-us.json (Icelandic) 2024-04-06 05:29:55 -05:00
Hayden
fcbc57b392 New translations en-us.json (Galician) 2024-04-06 05:29:54 -05:00
Hayden
a62299e6ef New translations en-us.json (Vietnamese) 2024-04-06 05:29:53 -05:00
Hayden
82563fa948 New translations en-us.json (Chinese Traditional) 2024-04-06 05:29:52 -05:00
Hayden
7583c56b35 New translations en-us.json (Chinese Simplified) 2024-04-06 05:29:51 -05:00
Hayden
b9cc2dc257 New translations en-us.json (Ukrainian) 2024-04-06 05:29:50 -05:00
Hayden
0dcf81e764 New translations en-us.json (Turkish) 2024-04-06 05:29:49 -05:00
Hayden
3d3763d4b9 New translations en-us.json (Serbian (Cyrillic)) 2024-04-06 05:29:49 -05:00
Hayden
517727a4b6 New translations en-us.json (Slovenian) 2024-04-06 05:29:48 -05:00
Hayden
1c26dff1e9 New translations en-us.json (Slovak) 2024-04-06 05:29:47 -05:00
Hayden
ed1834d945 New translations en-us.json (Russian) 2024-04-06 05:29:46 -05:00
Hayden
bf8bc88ffb New translations en-us.json (Portuguese) 2024-04-06 05:29:45 -05:00
Hayden
6c48eba5f7 New translations en-us.json (Norwegian) 2024-04-06 05:29:44 -05:00
Hayden
dc7df0d4aa New translations en-us.json (Dutch) 2024-04-06 05:29:43 -05:00
Hayden
45d5194f19 New translations en-us.json (Lithuanian) 2024-04-06 05:29:42 -05:00
Hayden
8ad1a15bf1 New translations en-us.json (Korean) 2024-04-06 05:29:41 -05:00
Hayden
57aeb401b8 New translations en-us.json (Japanese) 2024-04-06 05:29:41 -05:00
Hayden
e15a2f35e2 New translations en-us.json (Italian) 2024-04-06 05:29:40 -05:00
Hayden
b28e135ceb New translations en-us.json (Hungarian) 2024-04-06 05:29:39 -05:00
Hayden
148aca5e85 New translations en-us.json (Hebrew) 2024-04-06 05:29:38 -05:00
Hayden
1ac7f90c28 New translations en-us.json (Finnish) 2024-04-06 05:29:37 -05:00
Hayden
413a8a82fc New translations en-us.json (Greek) 2024-04-06 05:29:36 -05:00
Hayden
72c414bf94 New translations en-us.json (German) 2024-04-06 05:29:35 -05:00
Hayden
b67263e63f New translations en-us.json (Danish) 2024-04-06 05:29:34 -05:00
Hayden
1673eedff7 New translations en-us.json (Czech) 2024-04-06 05:29:33 -05:00
Hayden
d3ee5f34f8 New translations en-us.json (Catalan) 2024-04-06 05:29:32 -05:00
Hayden
683f1ac69e New translations en-us.json (Bulgarian) 2024-04-06 05:29:31 -05:00
Hayden
d6d0f7de71 New translations en-us.json (Arabic) 2024-04-06 05:29:30 -05:00
Hayden
dd0eaac45f New translations en-us.json (Afrikaans) 2024-04-06 05:29:29 -05:00
Hayden
f8e672c7ac New translations en-us.json (French) 2024-04-06 05:29:28 -05:00
Hayden
2aa9d84d6c New translations en-us.json (Romanian) 2024-04-06 05:29:27 -05:00
Hayden
2c13c4760e New translations en-us.json (Polish) 2024-04-06 05:29:26 -05:00
Hayden
62bf733548 New translations en-us.json (English, United Kingdom) 2024-04-06 05:29:25 -05:00
Hayden
2c72ea17a2 New translations en-us.json (Swedish) 2024-04-06 05:29:24 -05:00
Hayden
06406c86f5 New translations en-us.json (Spanish) 2024-04-06 05:29:23 -05:00
boc-the-git
b7f7712011 fix: Update description for manage data page (#3427)
* Update description for manage data page

* Add some punctuation consistency.

* Capitalise item types

Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>

---------

Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2024-04-05 22:04:32 +02:00
Hayden
4b13686261 New Crowdin updates (#3425)
* New translations en-us.json (Hungarian)

* New translations en-us.json (Portuguese)

* New translations en-us.json (Slovenian)

* New translations en-us.json (Turkish)

* New translations en-us.json (Ukrainian)
2024-04-05 10:05:13 +00:00
tba-code
9fade36014 feat: Support HEIF, HEIC and AVIF recipe image uploads (#3409)
* feat: Support HEIF, HEIC and AVIF recipe image uploads

* fix: lint import block

* fix: avif now included

* fix: lint import block
2024-04-04 18:31:10 -05:00
Carter
eb1d569e95 Infinite redirect fix again (#3419)
* override the check method to not care about the id token if we have a valid mealie token

* prevent auto log in with auth check is already good

* fix check

* simplify check logic
2024-04-04 21:23:33 +00:00
tba-code
1099e30a1d feat: Add OIDC_USER_CLAIM (#3422)
* feat: Add OIDC_USER_CLAIM

* fix: add validation
2024-04-04 21:16:54 +00:00
tba-code
fa9a2d64f7 fix: unstyled docs 404 page (#3421) 2024-04-04 18:56:27 +02:00
boc-the-git
de142c47df Merge pull request #3420 from mealie-recipes/l10n_mealie-next
New Crowdin updates
2024-04-04 22:00:23 +11:00
Hayden
c990420a87 New translations en-us.json (Slovenian) 2024-04-04 04:58:11 -05:00
Hayden
d772e3bb4f New translations en-us.json (French, Canada) 2024-04-04 04:58:10 -05:00
Hayden
bb8080475c New translations en-us.json (Latvian) 2024-04-04 04:58:09 -05:00
Hayden
c1e05f57db New translations en-us.json (Croatian) 2024-04-04 04:58:08 -05:00
Hayden
9ad68542e0 New translations en-us.json (Portuguese, Brazilian) 2024-04-04 04:58:07 -05:00
Hayden
83997dbb47 New translations en-us.json (Icelandic) 2024-04-04 04:58:06 -05:00
Hayden
b5f3c5bef7 New translations en-us.json (Galician) 2024-04-04 04:58:04 -05:00
Hayden
ddd97cce10 New translations en-us.json (Vietnamese) 2024-04-04 04:58:03 -05:00
Hayden
0ecd57a50b New translations en-us.json (Chinese Traditional) 2024-04-04 04:58:02 -05:00
Hayden
e4efcee0df New translations en-us.json (Chinese Simplified) 2024-04-04 04:58:00 -05:00
Hayden
a6920f057e New translations en-us.json (Ukrainian) 2024-04-04 04:58:00 -05:00
Hayden
dbb212ceda New translations en-us.json (Turkish) 2024-04-04 04:57:59 -05:00
Hayden
5d5805459a New translations en-us.json (Serbian (Cyrillic)) 2024-04-04 04:57:58 -05:00
Hayden
3e68920e69 New translations en-us.json (Slovenian) 2024-04-04 04:57:57 -05:00
Hayden
91c978a309 New translations en-us.json (Slovak) 2024-04-04 04:57:56 -05:00
Hayden
e7c101c96b New translations en-us.json (Russian) 2024-04-04 04:57:55 -05:00
Hayden
004f3552c0 New translations en-us.json (Portuguese) 2024-04-04 04:57:54 -05:00
Hayden
cd56149371 New translations en-us.json (Norwegian) 2024-04-04 04:57:53 -05:00
Hayden
8edea0a7e0 New translations en-us.json (Dutch) 2024-04-04 04:57:52 -05:00
Hayden
df15e97026 New translations en-us.json (Lithuanian) 2024-04-04 04:57:51 -05:00
Hayden
760462e12f New translations en-us.json (Korean) 2024-04-04 04:57:50 -05:00
Hayden
60793bb560 New translations en-us.json (Japanese) 2024-04-04 04:57:49 -05:00
Hayden
7c84d3dea5 New translations en-us.json (Italian) 2024-04-04 04:57:47 -05:00
Hayden
eee1c5733d New translations en-us.json (Hungarian) 2024-04-04 04:57:46 -05:00
Hayden
cf0a7ae9c9 New translations en-us.json (Hebrew) 2024-04-04 04:57:45 -05:00
Hayden
be80d3e74c New translations en-us.json (Finnish) 2024-04-04 04:57:44 -05:00
Hayden
db1fabf5c8 New translations en-us.json (Greek) 2024-04-04 04:57:43 -05:00
Hayden
e7e73772e0 New translations en-us.json (German) 2024-04-04 04:57:42 -05:00
Hayden
e5cab0e4d0 New translations en-us.json (Danish) 2024-04-04 04:57:41 -05:00
Hayden
6a14d5b7db New translations en-us.json (Czech) 2024-04-04 04:57:40 -05:00
Hayden
57106c4cce New translations en-us.json (Catalan) 2024-04-04 04:57:38 -05:00
Hayden
61c6a991f3 New translations en-us.json (Bulgarian) 2024-04-04 04:57:37 -05:00
Hayden
6824b3c269 New translations en-us.json (Arabic) 2024-04-04 04:57:36 -05:00
Hayden
6b13166880 New translations en-us.json (Afrikaans) 2024-04-04 04:57:35 -05:00
Hayden
b2747d77e1 New translations en-us.json (French) 2024-04-04 04:57:34 -05:00
Hayden
fc4d1b88d0 New translations en-us.json (Romanian) 2024-04-04 04:57:32 -05:00
Hayden
8798bd6e55 New translations en-us.json (Polish) 2024-04-04 04:57:31 -05:00
Hayden
cef61ae29f New translations en-us.json (English, United Kingdom) 2024-04-04 04:57:30 -05:00
Hayden
e304d48e84 New translations en-us.json (Swedish) 2024-04-04 04:57:29 -05:00
Hayden
4f1a7c55b9 New translations en-us.json (Spanish) 2024-04-04 04:57:28 -05:00
boc-the-git
bae7acbc3b Merge pull request #3395 from tba-code/postgres-url-feature
feat: PostgresProvider - Add POSTGRES_URL_OVERRIDE
2024-04-04 13:18:45 +11:00
boc-the-git
c0cf6a9aca Merge branch 'mealie-next' into postgres-url-feature 2024-04-04 13:12:39 +11:00
Kuchenpirat
f4570faf1a cleanup: Add Organizers translation (#3415)
* Add Organizers translation

* 🧹
2024-04-03 15:07:20 -05:00
Tarek Al-Qarqaz
9548a7eb70 fix: removed period in POSTGRES_URL_OVERRIDE for consistency 2024-04-03 14:01:30 +00:00
Tarek Al-Qarqaz
d5e3a1dacb change: updated POSTGRES_URL_OVERRIDE description 2024-04-03 14:00:25 +00:00
tba-code
1ce760ec7e Merge branch 'mealie-recipes:mealie-next' into postgres-url-feature 2024-04-03 08:57:19 -05:00
github-actions[bot]
9e23ed1a07 docs(auto): Update image tag, for release v1.4.0 (#3411)
* Update image tag, for release v1.4.0

* Commit without changing anything.. to trigger workflows on PR 3411

---------

Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
2024-04-03 06:02:19 -05:00
Tarek Al-Qarqaz
b3885cc3f8 change: docs now use TZ variable over read only bind mount /etc/timezone 2024-04-02 16:38:19 +00:00
tba-code
5da990abd4 Merge branch 'mealie-recipes:mealie-next' into postgres-url-feature 2024-04-02 10:18:48 -05:00
Carter
f709d11952 fix: (OAuth) redirect to direct login on failure (#3406) 2024-04-02 15:13:30 +00:00
Hayden
2a3463b746 security: gh security recs (#3368)
* change ALLOW_SIGNUP to default to false

* add 1.4.0 tag for OIDC docs

* new notes on security inline with security/policy review

* safer transport for external requests

* fix linter errors

* docs: Tidy up wording/formatting

* fix request errors

* whoops

* fix implementation with std lib

* format

* Remove check on netloc_parts. It only includes URL after any @

---------

Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
Co-authored-by: Brendan <b.oconnell14@gmail.com>
2024-04-02 07:04:42 -08:00
Tarek Al-Qarqaz
cb7302d2d9 fix: added validation to POSTGRES_URL_OVERRIDE 2024-04-02 12:24:51 +00:00
Tarek Al-Qarqaz
a30084a199 change: POSTGRES_URL_OVERRIDE note wording in docs 2024-04-02 11:23:06 +00:00
tba-code
c0654a5d95 Merge branch 'mealie-recipes:mealie-next' into postgres-url-feature 2024-04-02 06:21:35 -05:00
boc-the-git
737a370874 Merge pull request #3408 from mealie-recipes/renovate/fastapi-0.x-lockfile
fix(deps): update dependency fastapi to v0.110.1
2024-04-02 22:01:13 +11:00
boc-the-git
2a2b6f312b Merge branch 'mealie-next' into renovate/fastapi-0.x-lockfile 2024-04-02 21:54:02 +11:00
boc-the-git
96d220acbd Merge pull request #3407 from mealie-recipes/renovate/mkdocs-material-9.x-lockfile
chore(deps): update dependency mkdocs-material to v9.5.17
2024-04-02 21:52:45 +11:00
renovate[bot]
b9a9b8695d fix(deps): update dependency fastapi to v0.110.1 2024-04-02 08:13:19 +00:00
renovate[bot]
e80c8a50e6 chore(deps): update dependency mkdocs-material to v9.5.17 2024-04-02 08:13:05 +00:00
renovate[bot]
41795799e6 chore(deps): update dependency ruff to v0.3.5 (#3405)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-01 20:52:36 +00:00
renovate[bot]
9980e49eef fix(deps): update dependency pillow to v10.3.0 (#3402)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-01 15:42:02 -05:00
tba-code
945810c47a Merge branch 'mealie-recipes:mealie-next' into postgres-url-feature 2024-04-01 06:32:17 -05:00
Kuchenpirat
a283828461 refactor: Sidebar UI (#3390)
* Refactor sidebar links in DefaultLayout.vue

* 🧹
2024-04-01 10:16:52 +02:00
Hayden
7c365b7c03 New translations en-us.json (German) (#3400) 2024-03-31 18:43:59 -08:00
renovate[bot]
16da55f58b chore(deps): update dependency mkdocs-material to v9.5.16 (#3397)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-31 18:02:16 -08:00
Tarek Al-Qarqaz
35f6b0e80e fix: POSTGRES_URL is now POSTGRES_URL_OVERRIDE 2024-03-31 04:49:41 +00:00
Tarek Al-Qarqaz
ab37c2e8c0 change: reverted BASE_URL value, removed notes, removed mention of POSTGRES_URL_OVERRIDE 2024-03-31 04:48:21 +00:00
Tarek Al-Qarqaz
d1f82df936 change: reverted BASE_URL value, removed note, removed incorrect lines 2024-03-31 04:47:15 +00:00
Tarek Al-Qarqaz
6c7cb7e795 change: rename POSTGRES_URL to POSTGRES_URL_OVERRIDE / no longer changes value 2024-03-31 04:42:38 +00:00
tba-code
ecf80b8e9c Merge branch 'mealie-recipes:mealie-next' into postgres-url-feature 2024-03-30 18:50:20 -05:00
boc-the-git
e280734e33 Merge pull request #3394 from mealie-recipes/renovate/apprise-1.x-lockfile
fix(deps): update dependency apprise to v1.7.5
2024-03-31 09:33:06 +11:00
Tarek Al-Qarqaz
24d8854723 fix: typo in db_providers.py 2024-03-30 20:55:00 +00:00
Tarek Al-Qarqaz
2f9b711973 revert: revert typo in docker tag. 2024-03-30 20:18:13 +00:00
Tarek Al-Qarqaz
2b09495e87 fix: update sqlite doc for consistency 2024-03-30 19:39:15 +00:00
Tarek Al-Qarqaz
ae5a1a9af2 feat: PostgresProvider - Add POSTGRES_URL override. 2024-03-30 19:38:23 +00:00
renovate[bot]
a312c4dbf3 fix(deps): update dependency apprise to v1.7.5 2024-03-30 16:50:07 +00:00
renovate[bot]
79fb1fb299 fix(deps): update dependency tzdata to v2024 (#3386)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-28 18:00:15 -05:00
boc-the-git
b7c1cdfd46 Merge pull request #3383 from mealie-recipes/renovate/orjson-3.x-lockfile
fix(deps): update dependency orjson to v3.10.0
2024-03-28 21:53:13 +11:00
renovate[bot]
09873d4814 fix(deps): update dependency orjson to v3.10.0 2024-03-28 01:13:59 +00:00
Hayden
7f596c653b New Crowdin updates (#3381)
* New translations en-us.json (Greek)

* New translations en-us.json (Japanese)

* New translations en-us.json (Korean)

* New translations en-us.json (Greek)

* New translations en-us.json (Greek)

* New translations en-us.json (Japanese)

* New translations en-us.json (Japanese)

* New translations en-us.json (Japanese)

* New translations en-us.json (Japanese)
2024-03-27 17:36:23 +01:00
boc-the-git
bb06b0414b Housekeeping (#3380) 2024-03-27 10:40:13 +01:00
Hayden
6b720bafd6 New Crowdin updates (#3379)
* New translations en-us.json (Japanese)

* New translations en-us.json (Korean)
2024-03-26 17:59:38 +01:00
Kuchenpirat
6449591143 feat: cookbook editor on cookbook page (#3378)
* remove unnecessairy string

* add edit functionality to cookbook page

* restrict to own group
2024-03-26 08:02:20 -05:00
Kuchenpirat
8fb43246b2 fix: add auto-select-first attribute to RecipeOrganizerSelector.vue (#3376) 2024-03-25 16:52:41 +00:00
Hayden
95d3fd4958 New Crowdin updates (#3377)
* New translations en-us.json (German)

* New translations en-us.json (Portuguese)
2024-03-25 16:38:04 +00:00
Michael Genson
dfbc890f2c fix: Recipe Search URL State (#3332)
* fix several state issues with explore page
- update state when there are no query params
- only call search if the query params actually changed
- wait until ready to call API

* store last search query in user prefs

* restore chip tag click to anonymous user
2024-03-25 16:04:42 +00:00
renovate[bot]
21886ab4b8 Update dependency rapidfuzz to v3.7.0 (#3370)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-25 14:56:10 +00:00
Kuchenpirat
4b0df3ace8 Reset the search input after selection on the RecipeOrganizerSelector (#3373)
* Reset the search input after selection on the RecipeOrganizerSelector

* remove unused import
2024-03-25 14:47:10 +00:00
renovate[bot]
7505b5cf65 Update dependency pre-commit to v3.7.0 (#3369)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-25 14:39:35 +00:00
renovate[bot]
45e71da402 Update dependency SQLAlchemy to v2.0.29 (#3362)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-25 09:30:02 -05:00
Hayden
3ded63dfdf New translations en-us.json (Bulgarian) (#3366) 2024-03-24 17:35:12 +01:00
boc-the-git
735c3e3146 Merge pull request #3358 from mealie-recipes/renovate/mkdocs-material-9.x-lockfile
Update dependency mkdocs-material to v9.5.15
2024-03-24 21:27:35 +11:00
boc-the-git
83861cfcb8 Merge branch 'mealie-next' into renovate/mkdocs-material-9.x-lockfile 2024-03-24 21:21:16 +11:00
boc-the-git
c22ff8ccad Merge pull request #3361 from mealie-recipes/l10n_mealie-next
New Crowdin updates
2024-03-24 21:21:01 +11:00
Hayden
9a17a484f3 New translations en-us.json (Turkish) 2024-03-23 11:13:55 -05:00
renovate[bot]
bc6734399f Update dependency mkdocs-material to v9.5.15 2024-03-23 06:44:01 +00:00
boc-the-git
8e6f2a3d61 Merge pull request #3355 from mealie-recipes/l10n_mealie-next
New Crowdin updates
2024-03-23 07:12:01 +11:00
Hayden
20fa3a25f2 New translations en-us.json (French, Canada) 2024-03-22 11:15:57 -05:00
Hayden
1a9f5470ca New translations en-us.json (Latvian) 2024-03-22 11:15:56 -05:00
Hayden
2254d114be New translations en-us.json (Croatian) 2024-03-22 11:15:55 -05:00
Hayden
ef22d29ef1 New translations en-us.json (Portuguese, Brazilian) 2024-03-22 11:15:54 -05:00
Hayden
ef165cd276 New translations en-us.json (Icelandic) 2024-03-22 11:15:53 -05:00
Hayden
e6477920ce New translations en-us.json (Galician) 2024-03-22 11:15:52 -05:00
Hayden
c49584d027 New translations en-us.json (Vietnamese) 2024-03-22 11:15:50 -05:00
Hayden
e56eabf1e2 New translations en-us.json (Chinese Traditional) 2024-03-22 11:15:49 -05:00
Hayden
a35f2ae56a New translations en-us.json (Chinese Simplified) 2024-03-22 11:15:49 -05:00
Hayden
2a4a195dcb New translations en-us.json (Ukrainian) 2024-03-22 11:15:48 -05:00
Hayden
6318e8d1c6 New translations en-us.json (Turkish) 2024-03-22 11:15:46 -05:00
Hayden
b7a4899302 New translations en-us.json (Serbian (Cyrillic)) 2024-03-22 11:15:46 -05:00
Hayden
7fe6ef4da5 New translations en-us.json (Slovenian) 2024-03-22 11:15:45 -05:00
Hayden
0391763d18 New translations en-us.json (Slovak) 2024-03-22 11:15:44 -05:00
Hayden
3250384862 New translations en-us.json (Russian) 2024-03-22 11:15:43 -05:00
Hayden
1bf496751c New translations en-us.json (Portuguese) 2024-03-22 11:15:42 -05:00
Hayden
580700458c New translations en-us.json (Norwegian) 2024-03-22 11:15:41 -05:00
Hayden
6c6276cb79 New translations en-us.json (Dutch) 2024-03-22 11:15:40 -05:00
Hayden
787f9293fb New translations en-us.json (Lithuanian) 2024-03-22 11:15:38 -05:00
Hayden
aa0547ae69 New translations en-us.json (Korean) 2024-03-22 11:15:37 -05:00
Hayden
1c6b0f1122 New translations en-us.json (Japanese) 2024-03-22 11:15:36 -05:00
Hayden
014721b6f7 New translations en-us.json (Italian) 2024-03-22 11:15:35 -05:00
Hayden
692d8a5681 New translations en-us.json (Hungarian) 2024-03-22 11:15:34 -05:00
Hayden
120d4cfc5a New translations en-us.json (Hebrew) 2024-03-22 11:15:33 -05:00
Hayden
e3b3f70621 New translations en-us.json (Finnish) 2024-03-22 11:15:32 -05:00
Hayden
c5e55a2207 New translations en-us.json (Greek) 2024-03-22 11:15:31 -05:00
Hayden
f6d508af92 New translations en-us.json (German) 2024-03-22 11:15:30 -05:00
Hayden
516a732b12 New translations en-us.json (Danish) 2024-03-22 11:15:28 -05:00
Hayden
dfd4943304 New translations en-us.json (Czech) 2024-03-22 11:15:27 -05:00
Hayden
511e08e7e9 New translations en-us.json (Catalan) 2024-03-22 11:15:26 -05:00
Hayden
ed50dfc145 New translations en-us.json (Bulgarian) 2024-03-22 11:15:25 -05:00
Hayden
ee542255a5 New translations en-us.json (Arabic) 2024-03-22 11:15:24 -05:00
Hayden
32fa9d4439 New translations en-us.json (Afrikaans) 2024-03-22 11:15:23 -05:00
Hayden
f2be3383ac New translations en-us.json (French) 2024-03-22 11:15:22 -05:00
Hayden
fd6874e8dd New translations en-us.json (Romanian) 2024-03-22 11:15:21 -05:00
Hayden
09e514fa84 New translations en-us.json (Polish) 2024-03-22 11:15:20 -05:00
Hayden
f4678f99ed New translations en-us.json (English, United Kingdom) 2024-03-22 11:15:19 -05:00
Hayden
4e9670acf6 New translations en-us.json (Swedish) 2024-03-22 11:15:18 -05:00
Hayden
fb097ca095 New translations en-us.json (Spanish) 2024-03-22 11:15:16 -05:00
boc-the-git
8f40d13f20 Merge pull request #3352 from michael-genson/feat/migrate-from-my-recipe-box
feat: Migrate from My Recipe Box
2024-03-22 20:40:01 +11:00
boc-the-git
2aaef9ae54 Merge branch 'mealie-next' into feat/migrate-from-my-recipe-box 2024-03-22 20:33:37 +11:00
boc-the-git
a6d31638e2 Merge pull request #3354 from cmintey/signing-algorithm-env-var
Add OIDC environment variable for specififying the signing algorithm
2024-03-22 20:21:59 +11:00
Carter Mintey
f73aefce4e lint 2024-03-22 01:46:45 +00:00
Carter Mintey
ff5131018b add new environment variable for specififying the signing algorithm 2024-03-22 01:32:33 +00:00
renovate[bot]
1c6c5042ae chore(deps): update dependency ruff to v0.3.4 (#3353)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-21 18:23:58 -05:00
Michael Genson
d770009e0d added reactive accepted file types 2024-03-21 16:21:37 +00:00
Michael Genson
4a0b211f27 added test 2024-03-21 16:17:01 +00:00
Michael Genson
7dcf2ca33d added migration to frontend and cleaned up migration page 2024-03-21 16:11:33 +00:00
Michael Genson
95c15504d0 fixed BaseOverflowButton divider 2024-03-21 16:11:18 +00:00
Michael Genson
4e38625bde added backend for myrecipebox migration 2024-03-21 16:11:06 +00:00
Hayden
4a411f0483 New Crowdin updates (#3351)
* New translations en-us.json (Danish)

* New translations en-us.json (Norwegian)

* New translations en-us.json (Norwegian)
2024-03-21 15:59:50 +00:00
boc-the-git
95b6d901bf Merge pull request #3323 from cmintey/authelia-docs-update
OIDC Docs Updates
2024-03-21 08:08:36 +11:00
boc-the-git
c9d74e25ac Merge branch 'mealie-next' into authelia-docs-update 2024-03-21 08:01:58 +11:00
Hayden
54aef24caf New translations en-us.json (Danish) (#3347)
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2024-03-20 15:44:33 +00:00
renovate[bot]
6050b1e25a fix(deps): update dependency uvicorn to ^0.29.0 (#3346)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-20 10:36:47 -05:00
boc-the-git
b54cef2702 Merge pull request #3328 from mealie-recipes/l10n_mealie-next
New Crowdin updates
2024-03-20 20:53:22 +11:00
boc-the-git
abb2c8110c Merge branch 'mealie-next' into l10n_mealie-next 2024-03-20 20:47:13 +11:00
boc-the-git
f1e8d633fc Merge pull request #3321 from michael-genson/fix/repeated-calls-to-groups-self
fix: Repeated calls to group self
2024-03-20 20:44:55 +11:00
boc-the-git
c4f60942b5 Merge branch 'mealie-next' into l10n_mealie-next 2024-03-20 20:41:03 +11:00
boc-the-git
abbaf12e9e Merge branch 'mealie-next' into fix/repeated-calls-to-groups-self 2024-03-20 20:38:31 +11:00
renovate[bot]
04e6601d5b fix(deps): update dependency uvicorn to v0.28.1 (#3342)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-19 13:37:08 +00:00
renovate[bot]
1ebc7d27d4 chore(deps): update dependency pytest-asyncio to v0.23.6 (#3341)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-19 08:27:04 -05:00
Carter
59d53a02b3 Dicsussion Template: OAuth example template (#3340)
* Create oauth_example.yaml

* Update and rename oauth_example.yaml to oauth-provider-example.yaml
2024-03-19 01:21:53 +00:00
Carter Mintey
370da5aee3 update links 2024-03-19 01:06:45 +00:00
Ikko Eltociear Ashimine
af2992eee9 docs: Update maintainers.md (#3339)
reviered -> reviewed
2024-03-18 17:42:02 +00:00
Carter Mintey
e17b8b813c Remove examples from docs and link to GH discussions 2024-03-18 15:04:01 +00:00
renovate[bot]
9b4e0dd0d9 chore(deps): update dependency mkdocs-material to v9.5.14 (#3333)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-18 02:19:35 +00:00
Carter Mintey
d7bc1c75da add redirect uri required for idps with rp-initiated logout 2024-03-17 15:21:15 +00:00
Hayden
b963b99a4c New translations en-us.json (Japanese) 2024-03-17 05:46:58 -05:00
Carter Mintey
9270e22f19 clarify docs 2024-03-16 01:41:38 +00:00
Carter Mintey
7df34890d4 update authelia example config 2024-03-16 01:37:55 +00:00
renovate[bot]
36b0661e1d chore(deps): update dependency black to v24.3.0 (#3322)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-15 20:28:22 +00:00
Michael Genson
6da50b576f remove unused import 2024-03-15 20:21:43 +00:00
Michael Genson
517491e507 Merge branch 'mealie-next' into fix/repeated-calls-to-groups-self 2024-03-15 15:17:31 -05:00
renovate[bot]
82aca1f77f chore(deps): update dependency ruff to v0.3.3 (#3261)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-15 20:16:53 +00:00
Michael Genson
8c4f657aa7 Merge branch 'mealie-next' into fix/repeated-calls-to-groups-self 2024-03-15 15:02:46 -05:00
renovate[bot]
4352762e93 chore(deps): update dependency coverage to v7.4.4 (#3316)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-15 15:00:37 -05:00
Michael Genson
ad0ea09be9 better model inheritance 2024-03-15 19:57:57 +00:00
Michael Genson
52c6fe34b2 remove potentially sensitive fields from group self 2024-03-15 19:50:39 +00:00
Michael Genson
b6ccb9fbdb add shared group self to composable 2024-03-15 19:41:26 +00:00
Hayden
f83ab6ecc1 New Crowdin updates (#3319)
* New translations en-us.json (Japanese)

* New translations en-us.json (Slovak)

* New translations en-us.json (Slovak)
2024-03-15 16:15:41 +01:00
Hayden
1af0f426ae fix: remove deprecated lifecycle and consolidate startup actions (#3311)
* remove deprecated lifecycle and consolidate startup actions

* fix import
2024-03-14 19:27:26 +00:00
Michael Genson
d960947258 fix: Purge Group Exports type mismatch (#3314)
* cast string to datetime

* added test
2024-03-14 11:20:59 -08:00
Hayden
f2735ba22b proxy get_all to page_all (#3312) 2024-03-14 15:30:38 +00:00
Hayden
aa4c02ef30 New Crowdin updates (#3313)
* New translations en-us.json (Romanian)

* New translations en-us.json (Dutch)
2024-03-14 15:31:55 +01:00
Michael Genson
f1fbf0d120 fix: delete shopping list if no users are found (#3290) 2024-03-14 00:29:47 +00:00
Michael Genson
63a362a48a fix: Limit shopping list owners to current group (#3305)
* add route for getting group-only users

* add new api route to frontend

* update shopping list user getAll call

* tests

* fixed bad import

* replace UserOut with UserSummary

* fix params
2024-03-13 18:29:00 +00:00
Hayden
e0d7341139 New Crowdin updates (#3307)
* New translations en-us.json (Spanish)

* New translations en-us.json (Swedish)

* New translations en-us.json (English, United Kingdom)

* New translations en-us.json (Polish)

* New translations en-us.json (Romanian)

* New translations en-us.json (French)

* New translations en-us.json (Afrikaans)

* New translations en-us.json (Arabic)

* New translations en-us.json (Bulgarian)

* New translations en-us.json (Catalan)

* New translations en-us.json (Czech)

* New translations en-us.json (Danish)

* New translations en-us.json (German)

* New translations en-us.json (Greek)

* New translations en-us.json (Finnish)

* New translations en-us.json (Hebrew)

* New translations en-us.json (Hungarian)

* New translations en-us.json (Italian)

* New translations en-us.json (Japanese)

* New translations en-us.json (Korean)

* New translations en-us.json (Lithuanian)

* New translations en-us.json (Dutch)

* New translations en-us.json (Norwegian)

* New translations en-us.json (Portuguese)

* New translations en-us.json (Russian)

* New translations en-us.json (Slovak)

* New translations en-us.json (Slovenian)

* New translations en-us.json (Serbian (Cyrillic))

* New translations en-us.json (Turkish)

* New translations en-us.json (Ukrainian)

* New translations en-us.json (Chinese Simplified)

* New translations en-us.json (Chinese Traditional)

* New translations en-us.json (Vietnamese)

* New translations en-us.json (Galician)

* New translations en-us.json (Icelandic)

* New translations en-us.json (Portuguese, Brazilian)

* New translations en-us.json (Croatian)

* New translations en-us.json (Latvian)

* New translations en-us.json (French, Canada)
2024-03-13 15:34:58 +01:00
Michael Genson
5f5b06683a fix: add locale and first day of week to all date pickers (#3303) 2024-03-12 22:46:34 +00:00
Michael Genson
42523bbfc9 fix: Only call store APIs once (#3306)
* move loading value to inside async function

* share loading state and use it for throttling
2024-03-12 14:36:30 -08:00
Michael Genson
0a344731c8 feat: Timeline Filters (#3284)
* added timeline event filters

* updated empty timeline text

* simplify icons/labels for event types

* added missing translations

* cloned sort improvements to explore page

* added filter indicator

* lint

* removed lint warning

* add top margin to "no events found" text

Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>

* fixed reversed sort icons

Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>

* fixed sort dir on timeline filter

* sync checkbox state with preferences state

---------

Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2024-03-12 15:20:48 +00:00
renovate[bot]
e83fa89ec4 fix(deps): update dependency pydantic to v2.6.4 (#3300)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-12 14:26:11 +00:00
Hayden
13cd7a1c0f New Crowdin updates (#3299)
* New translations en-us.json (French)

* New translations en-us.json (German)

* New translations en-us.json (Hungarian)

* New translations en-us.json (Dutch)

* New translations en-us.json (Portuguese)

* New translations en-us.json (Turkish)

* New translations en-us.json (Ukrainian)

* New translations en-us.json (French, Canada)
2024-03-12 14:16:34 +00:00
Hayden
0e23a41bdb New Crowdin updates (#3286)
* New translations en-us.json (Spanish)

* New translations en-us.json (Swedish)

* New translations en-us.json (English, United Kingdom)

* New translations en-us.json (Polish)

* New translations en-us.json (Romanian)

* New translations en-us.json (French)

* New translations en-us.json (Afrikaans)

* New translations en-us.json (Arabic)

* New translations en-us.json (Bulgarian)

* New translations en-us.json (Catalan)

* New translations en-us.json (Czech)

* New translations en-us.json (Danish)

* New translations en-us.json (German)

* New translations en-us.json (Greek)

* New translations en-us.json (Finnish)

* New translations en-us.json (Hebrew)

* New translations en-us.json (Hungarian)

* New translations en-us.json (Italian)

* New translations en-us.json (Japanese)

* New translations en-us.json (Korean)

* New translations en-us.json (Lithuanian)

* New translations en-us.json (Dutch)

* New translations en-us.json (Norwegian)

* New translations en-us.json (Portuguese)

* New translations en-us.json (Russian)

* New translations en-us.json (Slovak)

* New translations en-us.json (Slovenian)

* New translations en-us.json (Serbian (Cyrillic))

* New translations en-us.json (Turkish)

* New translations en-us.json (Ukrainian)

* New translations en-us.json (Chinese Simplified)

* New translations en-us.json (Chinese Traditional)

* New translations en-us.json (Vietnamese)

* New translations en-us.json (Galician)

* New translations en-us.json (Icelandic)

* New translations en-us.json (Portuguese, Brazilian)

* New translations en-us.json (Croatian)

* New translations en-us.json (Latvian)

* New translations en-us.json (French, Canada)
2024-03-11 14:13:19 +00:00
renovate[bot]
e17b320dc8 fix(deps): update dependency tzdata to v2024 (#3281)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-11 13:37:22 +00:00
Michael Genson
403038a5b2 feat: First Time Setup Wizard (#3204)
* extract user registration form into a composable

* added base wizard component

* added partial setup implementation

* removed unused attrs

* added setup bypass

* made setup page more readable

* add checkbox hints to autoform

* added common settings pages and initial submit logic

* bypass setup in demo

* add full name to user registration

* added fullname and pw handling to setup

* fixed wizard indentation

* added post-setup suggestions

* added tests for backend changes

* renamed Wizard to BaseWizard

* lint fixes

* pass hardcoded default password instead of backend nonsense

* removed old test

* fix e2e

* added setup skip to e2e testing for all admin users

---------

Co-authored-by: Hayden <64056131+hay-kot@users.noreply.github.com>
2024-03-11 13:28:54 +00:00
boc-the-git
430e1d7d4e Merge pull request #3283 from michael-genson/fix/recipe-favorite-slug-handling
fix: Allow UserOut to accept list of slugs for recipe favorites
2024-03-11 21:31:43 +11:00
boc-the-git
c44cd7ffab Merge branch 'mealie-next' into fix/recipe-favorite-slug-handling 2024-03-11 21:25:16 +11:00
boc-the-git
73dfb523ec Fix typos (#3285) 2024-03-11 09:08:32 +00:00
Michael Genson
21d57735c9 added failsafe for bad input data 2024-03-11 00:25:44 +00:00
Michael Genson
05e13e6078 account for slugs or recipes when constructing user favorites 2024-03-11 00:13:57 +00:00
Hayden
5f6844eceb feat: Login with OAuth via OpenID Connect (OIDC) (#3280)
* initial oidc implementation

* add dynamic scheme

* e2e test setup

* add caching

* fix

* try this

* add libldap-2.5 to runtime dependencies (#2849)

* New translations en-us.json (Norwegian) (#2851)

* New Crowdin updates (#2855)

* New translations en-us.json (Italian)

* New translations en-us.json (Norwegian)

* New translations en-us.json (Portuguese)

* fix

* remove cache

* cache yarn deps

* cache docker image

* cleanup action

* lint

* fix tests

* remove not needed variables

* run code gen

* fix tests

* add docs

* move code into custom scheme

* remove unneeded type

* fix oidc admin

* add more tests

* add better spacing on login page

* create auth providers

* clean up testing stuff

* type fixes

* add OIDC auth method to postgres enum

* add option to bypass login screen and go directly to iDP

* remove check so we can fallback to another auth method oauth fails

* Add provider name to be shown at the login screen

* add new properties to admin about api

* fix spec

* add a prompt to change auth method when changing password

* Create new auth section. Add more info on auth methods

* update docs

* run ruff

* update docs

* format

* docs gen

* formatting

* initialize logger in class

* mypy type fixes

* docs gen

* add models to get proper fields in docs and fix serialization

* validate id token before using it

* only request a mealie token on initial callback

* remove unused method

* fix unit tests

* docs gen

* check for valid idToken before getting token

* add iss to mealie token

* check to see if we already have a mealie token before getting one

* fix lock file

* update authlib

* update lock file

* add remember me environment variable

* add user group setting to allow only certain groups to log in

---------

Co-authored-by: Carter Mintey <cmintey8@gmail.com>
Co-authored-by: Carter <35710697+cmintey@users.noreply.github.com>
2024-03-10 13:51:36 -05:00
github-actions[bot]
bea1a592d7 docs: Update image tag, for release v1.3.2 (#3279)
Co-authored-by: hay-kot <64056131+hay-kot@users.noreply.github.com>
2024-03-10 10:14:48 -08:00
1386 changed files with 782529 additions and 59742 deletions

View File

@@ -1,35 +1,21 @@
# See here for image contents: https://github.com/microsoft/vscode-dev-containers/tree/v0.224.2/containers/python-3/.devcontainer/base.Dockerfile
# [Choice] Python version (use -bullseye variants on local arm64/Apple Silicon): 3, 3.10, 3.9, 3.8, 3.7, 3.6, 3-bullseye, 3.10-bullseye, 3.9-bullseye, 3.8-bullseye, 3.7-bullseye, 3.6-bullseye, 3-buster, 3.10-buster, 3.9-buster, 3.8-buster, 3.7-buster, 3.6-buster
ARG VARIANT="3.10-bullseye"
FROM mcr.microsoft.com/vscode/devcontainers/python:0-${VARIANT}
ARG VARIANT="3.12-bullseye"
FROM mcr.microsoft.com/devcontainers/python:${VARIANT}
# [Choice] Node.js version: none, lts/*, 16, 14, 12, 10
ARG NODE_VERSION="none"
RUN if [ "${NODE_VERSION}" != "none" ]; then su vscode -c "umask 0002 && . /usr/local/share/nvm/nvm.sh && nvm install ${NODE_VERSION} 2>&1"; fi
# install poetry - respects $POETRY_VERSION & $POETRY_HOME
RUN echo "export PROMPT_COMMAND='history -a'" >> /home/vscode/.bashrc \
&& echo "export HISTFILE=~/commandhistory/.bash_history" >> /home/vscode/.bashrc \
&& chown vscode:vscode -R /home/vscode/
RUN npm install -g @go-task/cli
RUN npm install -g json-schema-to-typescript
ENV PYTHONUNBUFFERED=1 \
PYTHONDONTWRITEBYTECODE=1 \
PIP_NO_CACHE_DIR=off \
PIP_DISABLE_PIP_VERSION_CHECK=on \
PIP_DEFAULT_TIMEOUT=100 \
POETRY_HOME="/opt/poetry" \
POETRY_VIRTUALENVS_IN_PROJECT=true
# prepend poetry and venv to path
ENV PATH="$POETRY_HOME/bin:$PATH"
RUN curl -sSL https://install.python-poetry.org | python3 -
# RUN poetry config virtualenvs.create false
# Install additional OS packages
RUN apt-get update \
&& apt-get install --no-install-recommends -y \
curl \
@@ -38,3 +24,10 @@ RUN apt-get update \
libwebp-dev \
libsasl2-dev libldap2-dev libssl-dev \
gnupg gnupg2 gnupg1
# Install uv
RUN pip install uv
ENV UV_LINK_MODE=copy
# Create directory for Docker Secrets
RUN mkdir -p /run/secrets

View File

@@ -9,9 +9,9 @@
// Update 'VARIANT' to pick a Python version: 3, 3.10, 3.9, 3.8, 3.7, 3.6
// Append -bullseye or -buster to pin to an OS version.
// Use -bullseye variants on local on arm64/Apple Silicon.
"VARIANT": "3.10-bullseye",
"VARIANT": "3.12-bullseye",
// Options
"NODE_VERSION": "16"
"NODE_VERSION": "22"
}
},
"mounts": [
@@ -23,17 +23,17 @@
"settings": {
"python.defaultInterpreterPath": "/usr/local/bin/python",
"python.formatting.autopep8Path": "/usr/local/py-utils/bin/autopep8",
"python.formatting.blackPath": "/usr/local/py-utils/bin/black",
"python.formatting.yapfPath": "/usr/local/py-utils/bin/yapf",
"mypy.runUsingActiveInterpreter": true
},
"extensions": [
"charliermarsh.ruff",
"dbaeumer.vscode-eslint",
"matangover.mypy",
"ms-python.black-formatter",
"ms-python.isort",
"ms-python.pylint",
"ms-python.python",
"ms-python.vscode-pylance",
"streetsidesoftware.code-spell-checker-cspell-bundled-dictionaries",
"Vue.volar"
]
}
@@ -41,17 +41,23 @@
// Use 'forwardPorts' to make a list of ports inside the container available locally.
"forwardPorts": [
3000,
8000, // used by mkdocs
9000,
9091, // used by docker production
24678 // used by nuxt when hot-reloading using polling
],
// Use 'onCreateCommand' to run commands at the end of container creation.
// Use 'postCreateCommand' to run commands after the container is created.
"onCreateCommand": "sudo chown -R vscode:vscode /workspaces/mealie/frontend/node_modules && task setup",
"onCreateCommand": "sudo chown -R vscode:vscode /workspaces/mealie/frontend/node_modules /home/vscode/commandhistory && task setup --force",
// Comment out to connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root.
"remoteUser": "vscode",
"features": {
"ghcr.io/devcontainers/features/docker-in-docker:2": {
"dockerDashComposeVersion": "v2"
}
}
},
"appPort": [
"3000:3000",
"9000:9000"
]
}

View File

@@ -6,7 +6,7 @@
.idea
.vscode
__pycache__/
**/__pycache__/
*.py[cod]
*$py.class
*.so
@@ -25,10 +25,10 @@ venv
*/node_modules
*/dist
/dist/
*/data/db
*/mealie/test
*/mealie/test
*/mealie/.temp
model.crfmodel
/mealie/frontend/
crowdin.yml

2
.gitattributes vendored
View File

@@ -1,2 +1,2 @@
*.css linguist-detectable=false
*.html linguist-detectable=false
*.html linguist-detectable=false

View File

@@ -0,0 +1,9 @@
---
title: OAuth setup with <PROVIDER>
body:
- type: textarea
attributes:
label: Configuration Example
description: Add your example configuration. You can provide code blocks, screenshots, and links.
validations:
required: true

View File

@@ -1,27 +1,27 @@
---
name: v1.0.0b Task
name: Task
description: "CONTRIBUTORS ONLY: Submit a Task that needs to be completed"
title: "[v1.0.0b] [Task] - TASK DESCRIPTION"
title: "[Task] - TASK DESCRIPTION"
labels:
- task
- v1
- v2
body:
- type: markdown
attributes:
value: |
Thanks for your interest in Mealie! 🚀
This is a place for Mealie contributors to find tasks that need to get done around the repository. Tasks are different than issues as they are generally related to providing a new feature or improve an existing feature. They are _generally_ not related to an issue.
This is a place for Mealie contributors to find tasks that need to get done around the repository. Tasks are different than issues as they are generally related to providing a new feature or improving an existing feature. They are _generally_ not related to an issue.
**DO NOT** create a task unless
- You are a contributors who has prior approval via discord/discussions
- You are a contributor who has prior approval via discord/discussions
- You have otherwise been given approval to post the tasks
Otherwise, your post will be closed/deleted.
**Interested in Taking This?**
If you're interested in completing this tasks and it hasn't already been taken, comment below and to let others know you're working on it. As you work through the task, I ask that you submit a draft pull request as soon as possible, and tag this issue so we can all collaborate as best as possible.
If you're interested in completing this task and it hasn't already been taken, comment below and to let others know you're working on it. As you work through the task, I ask that you submit a draft pull request as soon as possible, and tag this issue so we can all collaborate as best as possible.
- type: textarea
id: problem
attributes:
@@ -33,6 +33,6 @@ body:
id: solution
attributes:
label: Proposed/Possible Solution(s)?
placeholder: Provide as much context around the idea as possible with potential files and roadblocks that may come up
placeholder: Provide as much context around the idea as possible with potential files and roadblocks that may come up.
validations:
required: true

240
.github/copilot-instructions.md vendored Normal file
View File

@@ -0,0 +1,240 @@
# Mealie Development Guide for AI Agents
## Project Overview
Mealie is a self-hosted recipe manager, meal planner, and shopping list application with a FastAPI backend (Python 3.12) and Nuxt 3 frontend (Vue 3 + TypeScript). It uses SQLAlchemy ORM with support for SQLite and PostgreSQL databases.
**Development vs Production:**
- **Development:** Frontend (port 3000) and backend (port 9000) run as separate processes
- **Production:** Frontend is statically generated and served via FastAPI's SPA module (`mealie/routes/spa/`) in a single container
## Architecture & Key Patterns
### Backend Architecture (mealie/)
**Repository-Service-Controller Pattern:**
- **Controllers** (`mealie/routes/**/controller_*.py`): Inherit from `BaseUserController` or `BaseAdminController`, handle HTTP concerns, delegate to services
- **Services** (`mealie/services/`): Business logic layer, inherit from `BaseService`, coordinate repos and external dependencies
- **Repositories** (`mealie/repos/`): Data access layer using SQLAlchemy, accessed via `AllRepositories` factory
- Get repos via dependency injection: `repos: AllRepositories = Depends(get_repositories)`
- All repos scoped to group/household context automatically
**Route Organization:**
- Routes in `mealie/routes/` organized by domain (auth, recipe, groups, households, admin)
- Use `APIRouter` with FastAPI dependency injection
- Apply `@router.get/post/put/delete` decorators with Pydantic response models
- Route controllers use `HttpRepo` mixin for common CRUD operations (see `mealie/routes/_base/mixins.py`)
**Schemas & Type Generation:**
- Pydantic schemas in `mealie/schema/` with strict separation: `*In`, `*Out`, `*Create`, `*Update` suffixes
- Auto-exported from submodules via `__init__.py` files (generated by `task dev:generate`)
- TypeScript types auto-generated from Pydantic schemas - **never manually edit** `frontend/lib/api/types/`
**Database & Sessions:**
- Session management via `Depends(generate_session)` in FastAPI routes
- Use `session_context()` context manager in services/scripts
- SQLAlchemy models in `mealie/db/models/`, migrations in `mealie/alembic/`
- Create migrations: `task py:migrate -- "description"`
### Frontend Architecture (frontend/)
**Component Organization (strict naming conventions):**
- **Domain Components** (`components/Domain/`): Feature-specific, prefix with domain (e.g., `AdminDashboard`)
- **Global Components** (`components/global/`): Reusable primitives, prefix with `Base` (e.g., `BaseButton`)
- **Layout Components** (`components/Layout/`): Layout-only, prefix with `App` if props or `The` if singleton
- **Page Components** (`components/` with page prefix): Last resort for breaking up complex pages
**API Client Pattern:**
- API clients in `frontend/lib/api/` extend `BaseAPI`, `BaseCRUDAPI`, or `BaseCRUDAPIReadOnly`
- Types imported from auto-generated `frontend/lib/api/types/` (DO NOT EDIT MANUALLY)
- Composables in `frontend/composables/` for shared state and API logic (e.g., `use-mealie-auth.ts`)
- Use `useAuthBackend()` for authentication state, `useMealieAuth()` for user management
**State Management:**
- Nuxt 3 composables for state (no Vuex)
- Auth state via `use-mealie-auth.ts` composable
- Prefer composables over global state stores
## Essential Commands (via Task/Taskfile.yml)
**Development workflow:**
```bash
task setup # Install all dependencies (Python + Node)
task dev:services # Start Postgres & Mailpit containers
task py # Start FastAPI backend (port 9000)
task ui # Start Nuxt frontend (port 3000)
task docs # Start MkDocs documentation server
```
**Code generation (REQUIRED after schema changes):**
```bash
task dev:generate # Generate TypeScript types, schema exports, test helpers
```
**Testing & Quality:**
```bash
task py:test # Run pytest (supports args: task py:test -- -k test_name)
task py:check # Format + lint + type-check + test (full validation)
task py:format # Ruff format
task py:lint # Ruff check
task py:mypy # Type checking
task ui:test # Vitest frontend tests
task ui:check # Frontend lint + test
```
**Database:**
```bash
task py:migrate -- "description" # Generate Alembic migration
task py:postgres # Run backend with PostgreSQL config
```
**Docker:**
```bash
task docker:prod # Build and run production Docker compose
```
## Critical Development Practices
### Python Backend
1. **Always use `uv` for Python commands** (not `python` or `pip`):
```bash
uv run python mealie/app.py
uv run pytest tests/
```
2. **Type hints are mandatory:** Use mypy-compatible annotations, handle Optional types explicitly
3. **Dependency injection pattern:**
```python
from fastapi import Depends
from mealie.repos.all_repositories import get_repositories, AllRepositories
def my_route(
repos: AllRepositories = Depends(get_repositories),
user: PrivateUser = Depends(get_current_user)
):
recipe = repos.recipes.get_one(recipe_id)
```
4. **Settings & Configuration:**
- Get settings: `settings = get_app_settings()` (cached singleton)
- Get directories: `dirs = get_app_dirs()`
- Never instantiate `AppSettings()` directly
5. **Testing:**
- Fixtures in `tests/fixtures/`
- Use `api_client` fixture for integration tests
- Follow existing patterns in `tests/integration_tests/` and `tests/unit_tests/`
### Frontend
1. **Run code generation after backend schema changes:** `task dev:generate`
2. **TypeScript strict mode:** All code must pass type checking
3. **Component naming:** Follow strict conventions (see Architecture section above)
4. **API calls pattern:**
```typescript
const api = useUserApi();
const recipe = await api.recipes.getOne(recipeId);
```
5. **Composables for shared logic:** Prefer composables in `composables/` over inline code duplication
6. **Translations:** Only modify `en-US` locale files when adding new translation strings - other locales are managed via Crowdin and **must never be modified** (PRs modifying non-English locales will be rejected)
### Cross-Cutting Concerns
1. **Code generation is source of truth:** After Pydantic schema changes, run `task dev:generate` to update:
- TypeScript types (`frontend/lib/api/types/`)
- Schema exports (`mealie/schema/*/__init__.py`)
- Test data paths and routes
2. **Multi-tenancy:** All data scoped to **groups** and **households**:
- Groups contain multiple households
- Households contain recipes, meal plans, shopping lists
- Repositories automatically filter by group/household context
3. **Pre-commit hooks:** Install via `task setup:py`, enforces Ruff formatting/linting
4. **Testing before PRs:** Run `task py:check` and `task ui:check` before submitting PRs
## Pull Request Best Practices
### Before Submitting a PR
1. **Draft PRs are optional:** Create a draft PR early if you want feedback while working, or open directly as ready when complete
2. **Verify code generation:** If you modified Pydantic schemas, ensure `task dev:generate` was run
3. **Follow Conventional Commits:** Title your PR according to the conventional commits format (see PR template)
4. **Add release notes:** Include user-facing changes in the PR description
### What to Review
**Architecture & Patterns:**
- Does the code follow the repository-service-controller pattern?
- Are controllers delegating business logic to services?
- Are services coordinating repositories, not accessing the database directly?
- Is dependency injection used properly (`Depends(get_repositories)`, `Depends(get_current_user)`)?
**Data Scoping:**
- Are repositories correctly scoped to group/household context?
- Do route handlers properly validate group/household ownership before operations?
- Are multi-tenant boundaries enforced (users can't access other groups' data)?
**Type Safety:**
- Are type hints present on all functions and methods?
- Are Pydantic schemas using correct suffixes (`*In`, `*Out`, `*Create`, `*Update`)?
- For frontend, does TypeScript code pass strict type checking?
**Generated Files:**
- Verify `frontend/lib/api/types/` files weren't manually edited (they're auto-generated)
- Check that `mealie/schema/*/__init__.py` exports match actual schema files (auto-generated)
- If schemas changed, confirm generated files were updated via `task dev:generate`
**Code Quality:**
- Is the code readable and well-organized?
- Are complex operations documented with clear comments?
- Do component names follow the strict naming conventions (Domain/Global/Layout/Page prefixes)?
- Are composables used for shared frontend logic instead of duplication?
**Translations:**
- Were only `en-US` locale files modified for new translation strings?
- Verify no other locale files (managed by Crowdin) were touched
**Database Changes:**
- Are Alembic migrations included for schema changes?
- Are migrations tested against both SQLite and PostgreSQL?
### Review Etiquette
- Be constructive and specific in feedback
- Suggest code examples when proposing changes
- Focus on architecture and logic - formatting/linting is handled by CI
- Use "Approve" when ready to merge, "Request Changes" for blocking issues, "Comment" for non-blocking suggestions
## Common Gotchas
- **Don't manually edit generated files:** `frontend/lib/api/types/`, schema `__init__.py` files
- **Repository context:** Repos are group/household-scoped - passing wrong IDs causes 404s
- **Session handling:** Don't create sessions manually, use dependency injection or `session_context()`
- **Schema changes require codegen:** After changing Pydantic models, run `task dev:generate`
- **Translation files:** Only modify `en-US` locale files - all other locales are managed by Crowdin
- **Dev containers:** This project uses VS Code dev containers - leverage the pre-configured environment
- **Task commands:** Use `task` commands instead of direct tool invocation for consistency
## Key Files to Reference
- `Taskfile.yml` - All development commands and workflows
- `mealie/routes/_base/base_controllers.py` - Controller base classes and patterns
- `mealie/repos/repository_factory.py` - Repository factory and available repos
- `frontend/lib/api/base/base-clients.ts` - API client base classes
- `tests/conftest.py` - Test fixtures and setup
- `dev/code-generation/main.py` - Code generation entry point
## Additional Resources
- [Documentation](https://docs.mealie.io/)
- [Contributors Guide](https://nightly.mealie.io/contributors/developers-guide/code-contributions/)
- [Discord](https://discord.gg/QuStdQGSGK)

View File

@@ -1,6 +1,13 @@
<!--
This template provides some ideas of things to include in your PR description.
To start, try providing a short summary of your changes in the Title above.
To start, try providing a short summary of your changes in the Title above. We follow Conventional Commits syntax, please ensure your title is prefixed with one of:
- `feat: `
- `fix: `
- `docs: `
- `chore: `
- `dev:`
If a section of the PR template does not apply to this PR, then delete that section.
PLEASE READ:
@@ -13,19 +20,6 @@
-->
## What type of PR is this?
_(REQUIRED)_
<!--
Delete any of the following that do not apply:
-->
- bug
- cleanup
- documentation
- feature
## What this PR does / why we need it:
_(REQUIRED)_
@@ -36,6 +30,8 @@ _(REQUIRED)_
Briefly explain any decisions you made with respect to the changes.
Include anything here that you didn't include in *Release Notes*
above, such as changes to CI or changes to internal methods.
If there is a UI component to the change, please include before/after images.
-->
## Which issue(s) this PR fixes:
@@ -44,7 +40,7 @@ _(REQUIRED)_
<!--
If this PR fixes one of more issues, list them here.
One line each, like so:
One per line, like so:
Fixes #123
Fixes #39
-->

88
.github/release-drafter.yml vendored Normal file
View File

@@ -0,0 +1,88 @@
---
name-template: "v$RESOLVED_VERSION"
tag-template: "v$RESOLVED_VERSION"
change-template: "- $TITLE @$AUTHOR (#$NUMBER)"
sort-direction: ascending
categories:
- title: "🚨 Breaking changes"
labels:
- "breaking-change"
- "major"
- title: "✨ New features"
labels:
- "feature"
- "minor"
- title: "🐛 Bug fixes"
labels:
- "bugfix"
- title: "🧰 Maintenance"
collapse-after: 3
labels:
- "ci"
- "chore"
- "l10n"
- title: "📚 Documentation"
labels:
- "documentation"
- title: "🔨 Internal development"
labels:
- "dev"
- title: "⬆️ Dependency updates"
collapse-after: 3
labels:
- "dependencies"
version-resolver:
major:
labels:
- "major"
- "breaking-change"
minor:
labels:
- "minor"
- "feature"
patch:
labels:
- "bugfix"
- "chore"
- "ci"
- "dependencies"
- "documentation"
- "l10n"
- "dev"
default: patch
template: |
# 🍴🍴🍴🍴🍴🍴
## 🎉 Highlights
- Highlight 1
- Highlight 2
$CHANGES
## 🙏 New Contributors
!!! Need to source this from GitHub's auto generated release notes !!!
# 🍴🍴🍴🍴🍴🍴
autolabeler:
- label: 'feature'
title:
- '/feat/i'
- label: 'bugfix'
title:
- '/fix:/i'
- label: 'documentation'
title:
- '/docs:/i'
- label: 'chore'
title:
- '/chore:/i'
- label: 'dev'
title:
- '/dev:/i'

97
.github/workflows/build-package.yml vendored Normal file
View File

@@ -0,0 +1,97 @@
name: Build Package
on:
workflow_call:
inputs:
tag:
required: true
type: string
jobs:
build-frontend:
name: Build frontend
runs-on: ubuntu-latest
steps:
- name: Checkout 🛎
uses: actions/checkout@v4
- name: Setup node env 🏗
uses: actions/setup-node@v4.0.0
with:
node-version: 22
check-latest: true
- name: Get yarn cache directory path 🛠
id: yarn-cache-dir-path
run: echo "dir=$(yarn cache dir)" >> $GITHUB_OUTPUT
- name: Cache node_modules 📦
uses: actions/cache@v4
id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-
- name: Install dependencies 👨🏻‍💻
run: yarn
working-directory: "frontend"
- name: Run Build 🚚
run: yarn generate
working-directory: "frontend"
- name: Archive built frontend
uses: actions/upload-artifact@v4
with:
name: frontend-dist
path: frontend/dist
retention-days: 5
build-package:
name: Build Python package
needs: build-frontend
runs-on: ubuntu-latest
steps:
- name: Install Task
uses: arduino/setup-task@v2
with:
version: 3.x
repo-token: ${{ secrets.GITHUB_TOKEN }}
- name: Check out repository
uses: actions/checkout@v4
- name: Set up python
uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Install uv
run: pip install uv
- name: Retrieve built frontend
uses: actions/download-artifact@v4
with:
name: frontend-dist
path: mealie/frontend
- name: Override __init__.py
run: |
echo "__version__ = \"${{ inputs.tag }}\"" > ./mealie/__init__.py
- name: Build package and requirements.txt
env:
SKIP_PACKAGE_DEPS: true
run: |
task py:package
- name: Archive built package
uses: actions/upload-artifact@v4
with:
name: backend-dist
path: dist
retention-days: 5

View File

@@ -14,10 +14,9 @@ name: "CodeQL"
on:
push:
branches: [ "mealie-next" ]
pull_request:
branches: [ "mealie-next" ]
schedule:
- cron: '36 9 * * 3'
workflow_call:
jobs:
analyze:
@@ -45,11 +44,11 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v3
uses: actions/checkout@v4
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v2
uses: github/codeql-action/init@v3
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
@@ -63,7 +62,7 @@ jobs:
# Autobuild attempts to build any compiled languages (C/C++, C#, Go, Java, or Swift).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v2
uses: github/codeql-action/autobuild@v3
# Command-line programs to run using the OS shell.
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
@@ -76,6 +75,6 @@ jobs:
# ./location_of_script_within_repo/buildscript.sh
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v2
uses: github/codeql-action/analyze@v3
with:
category: "/language:${{matrix.language}}"

50
.github/workflows/docs.yml vendored Normal file
View File

@@ -0,0 +1,50 @@
name: Deploy Documentation
on:
push:
branches: [mealie-next]
paths:
- 'docs/**'
- '.github/workflows/docs.yml'
workflow_dispatch:
permissions:
contents: read
pages: write
id-token: write
concurrency:
group: pages
cancel-in-progress: false
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install uv
uses: astral-sh/setup-uv@v4
- name: Install dependencies
run: uv sync --only-group docs --no-install-project
- name: Build docs
run: uv run --no-project mkdocs build -d site
working-directory: docs
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: docs/site
deploy:
needs: build
runs-on: ubuntu-latest
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4

52
.github/workflows/e2e.yml vendored Normal file
View File

@@ -0,0 +1,52 @@
name: E2E Tests
on:
workflow_call:
jobs:
test:
timeout-minutes: 60
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./tests/e2e
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 22
cache: 'yarn'
cache-dependency-path: ./tests/e2e/yarn.lock
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Retrieve Python package
uses: actions/download-artifact@v4
with:
name: backend-dist
path: dist
- name: Build Image
uses: docker/build-push-action@v5
with:
file: ./docker/Dockerfile
context: .
build-contexts: |
packages=dist
push: false
load: true
tags: mealie:e2e
cache-from: type=gha
cache-to: type=gha,mode=max
- name: Deploy E2E Test Environment
run: docker compose up -d
working-directory: ./tests/e2e/docker
- name: Install dependencies
run: npm install -g yarn && yarn
- name: Install Playwright Browsers
run: yarn playwright install --with-deps
- name: Check test environment
run: docker ps
- name: Run Playwright tests
run: yarn playwright test
- name: Destroy Test Environment
if: always()
run: docker compose down --volumes
working-directory: ./tests/e2e/docker

112
.github/workflows/locale-sync.yml vendored Normal file
View File

@@ -0,0 +1,112 @@
name: Automatic Locale Sync
on:
schedule:
# Run every Sunday at 2 AM UTC
- cron: "0 2 * * 0"
workflow_dispatch:
# Allow manual triggering from the GitHub UI
permissions:
contents: write # To checkout, commit, and push changes
pull-requests: write # To create pull requests
jobs:
sync-locales:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
token: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Install uv
run: pip install uv
- name: Load cached venv
id: cached-python-dependencies
uses: actions/cache@v4
with:
path: .venv
key: venv-${{ runner.os }}-${{ hashFiles('**/uv.lock') }}
- name: Check venv cache
id: cache-validate
if: steps.cached-python-dependencies.outputs.cache-hit == 'true'
run: |
echo "import fastapi;print('venv good?')" > test.py && uv run python test.py && echo "cache-hit-success=true" >> $GITHUB_OUTPUT
rm test.py
continue-on-error: true
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install libsasl2-dev libldap2-dev libssl-dev
uv sync --group dev
if: steps.cached-python-dependencies.outputs.cache-hit != 'true'
- name: Run locale generation
run: |
cd dev/code-generation
uv run python main.py locales
env:
CROWDIN_API_KEY: ${{ secrets.CROWDIN_API_KEY }}
- name: Check for changes
id: changes
run: |
if git diff --quiet; then
echo "has_changes=false" >> $GITHUB_OUTPUT
else
echo "has_changes=true" >> $GITHUB_OUTPUT
fi
- name: Commit and create PR
if: steps.changes.outputs.has_changes == 'true'
run: |
# Configure git
git config --local user.email "action@github.com"
git config --local user.name "GitHub Action"
# Use the current branch as the base
BASE_BRANCH="${{ github.ref_name }}"
echo "Using base branch: $BASE_BRANCH"
# Create a new branch from the base branch
BRANCH_NAME="auto-locale-sync-$(date +%Y%m%d-%H%M%S)"
git checkout -b "$BRANCH_NAME"
# Add and commit changes
git add .
git commit -m "chore: crowdin locale sync"
# Push the branch
git push origin "$BRANCH_NAME"
sleep 2
# Create PR using GitHub CLI with explicit repository
gh pr create \
--repo "${{ github.repository }}" \
--title "chore(l10n): Crowdin locale sync" \
--base "$BASE_BRANCH" \
--head "$BRANCH_NAME" \
--label "l10n" \
--body "## Summary
Automatically generated locale updates from the weekly sync job.
## Changes
- Updated frontend locale files
- Generated from latest translation sources" \
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: No changes detected
if: steps.changes.outputs.has_changes == 'false'
run: echo "No locale changes detected, skipping PR creation"

View File

@@ -18,13 +18,19 @@ concurrency:
jobs:
backend-tests:
name: "Backend Server Tests"
uses: ./.github/workflows/partial-backend.yml
uses: ./.github/workflows/test-backend.yml
frontend-tests:
name: "Frontend and End-to-End Tests"
uses: ./.github/workflows/partial-frontend.yml
name: "Frontend Tests"
uses: ./.github/workflows/test-frontend.yml
build-release:
build-package:
name: Build Package
uses: ./.github/workflows/build-package.yml
with:
tag: nightly
publish:
permissions:
contents: read
packages: write
@@ -35,10 +41,11 @@ jobs:
id-token: write
name: Build Tagged Release
if: github.repository == 'mealie-recipes/mealie'
uses: ./.github/workflows/partial-builder.yml
uses: ./.github/workflows/publish.yml
needs:
- frontend-tests
- backend-tests
- build-package
with:
tag: nightly
secrets:
@@ -49,7 +56,7 @@ jobs:
name: Notify Discord
if: github.repository == 'mealie-recipes/mealie'
needs:
- build-release
- publish
runs-on: ubuntu-latest
steps:
- name: Discord notification

View File

@@ -24,8 +24,10 @@ jobs:
image-ref: "mealie"
format: "sarif"
output: "trivy-results.sarif"
env:
TRIVY_DB_REPOSITORY: ghcr.io/aquasecurity/trivy-db,public.ecr.aws/aquasecurity/trivy-db
- name: Upload Trivy scan results to GitHub Security tab
uses: github/codeql-action/upload-sarif@v2
uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: "trivy-results.sarif"

View File

@@ -35,18 +35,22 @@ jobs:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Override __init__.py
run: |
echo "__version__ = \"${{ inputs.tag }}\"" > ./mealie/__init__.py
- uses: depot/setup-action@v1
- name: Retrieve Python package
uses: actions/download-artifact@v4
with:
name: backend-dist
path: dist
- name: Build and push Docker image, via Depot.dev
uses: depot/build-push-action@v1
with:
project: srzjb6mhzm
file: ./docker/Dockerfile
context: .
build-contexts: |
packages=dist
platforms: linux/amd64,linux/arm64
push: true
tags: |

43
.github/workflows/pull-request-lint.yml vendored Normal file
View File

@@ -0,0 +1,43 @@
name: Pull Request Linter
on:
workflow_call:
pull_request:
types: [edited] # This captures the PR title changing
branches:
- mealie-next
jobs:
validate-title:
name: Validate PR title
runs-on: ubuntu-latest
steps:
# https://github.com/amannn/action-semantic-pull-request
- uses: amannn/action-semantic-pull-request@v5
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
# Configure which types are allowed (newline-delimited).
# Default: https://github.com/commitizen/conventional-commit-types
types: |
feat
fix
docs
chore
dev
# Configure which scopes are allowed (newline-delimited).
# These are regex patterns auto-wrapped in `^ $`.
scopes: |
deps
auto
l10n
config
# Configure that a scope must always be provided.
requireScope: false
# If the PR contains one of these newline-delimited labels, the
# validation is skipped. If you want to rerun the validation when
# labels change, you might want to use the `labeled` and `unlabeled`
# event triggers in your workflow.
ignoreLabels: |
bot
ignore-semantic-pull-request

View File

@@ -5,15 +5,61 @@ on:
branches:
- mealie-next
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number }}
cancel-in-progress: true
jobs:
pull-request-lint:
name: "Lint PR"
uses: ./.github/workflows/pull-request-lint.yml
backend-tests:
name: "Backend Server Tests"
uses: ./.github/workflows/partial-backend.yml
uses: ./.github/workflows/test-backend.yml
frontend-tests:
name: "Frontend and End-to-End Tests"
uses: ./.github/workflows/partial-frontend.yml
name: "Frontend Tests"
uses: ./.github/workflows/test-frontend.yml
container-scanning:
name: "Trivy Container Scanning"
uses: ./.github/workflows/partial-trivy-container-scanning.yml
code-ql:
name: "CodeQL"
uses: ./.github/workflows/codeql.yml
permissions:
actions: read
contents: read
security-events: write
build-package:
name: "Build Python package"
uses: ./.github/workflows/build-package.yml
with:
tag: e2e
end-to-end:
name: "End-to-End Tests"
needs: build-package
uses: ./.github/workflows/e2e.yml
publish-image:
name: "Publish PR Image"
if: contains(github.event.pull_request.labels.*.name, 'build-image') && github.repository == 'mealie-recipes/mealie'
permissions:
contents: read
packages: write
# The id-token write permission is needed to connect to Depot.dev
# as part of the partial-builder.yml action. It needs to be declared
# in the parent action, as noted here:
# https://github.com/orgs/community/discussions/76409#discussioncomment-8131390
id-token: write
needs: build-package
uses: ./.github/workflows/publish.yml
with:
tag: pr-${{ github.event.pull_request.number }}
secrets:
DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }}

30
.github/workflows/release-drafter.yml vendored Normal file
View File

@@ -0,0 +1,30 @@
---
name: Release Drafter
on:
push:
branches:
- mealie-next
# pull_request event is required for autolabeler
pull_request:
types: [opened, labeled, unlabeled, reopened, synchronize]
# pull_request_target event is required for autolabeler to support PRs from forks
pull_request_target:
types: [opened, labeled, unlabeled, reopened, synchronize]
workflow_dispatch:
jobs:
update_release_draft:
permissions:
# write permission is required to create a github release
contents: write
# write permission is required for autolabeler
# otherwise, read permission is required at least
pull-requests: write
name: ✏️ Draft release
runs-on: ubuntu-latest
steps:
- name: 🚀 Run Release Drafter
uses: release-drafter/release-drafter@v6.0.0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -5,15 +5,77 @@ on:
types: [published]
jobs:
commit-version-bump:
name: Commit version bump to repository
runs-on: ubuntu-latest
permissions:
contents: write
outputs:
commit-sha: ${{ steps.commit.outputs.commit-sha }}
steps:
- name: Generate GitHub App Token
id: app-token
uses: actions/create-github-app-token@v1
with:
app-id: ${{ secrets.COMMIT_BOT_APP_ID }}
private-key: ${{ secrets.COMMIT_BOT_APP_PRIVATE_KEY }}
- name: Checkout 🛎
uses: actions/checkout@v4
with:
token: ${{ steps.app-token.outputs.token }}
- name: Extract Version From Tag Name
run: echo "VERSION_NUM=$(echo ${{ github.event.release.tag_name }} | sed 's/^v//')" >> $GITHUB_ENV
- name: Configure Git
run: |
git config user.name "mealie-commit-bot[bot]"
git config user.email "mealie-commit-bot[bot]@users.noreply.github.com"
- name: Update all version strings
run: |
sed -i 's/^version = "[^"]*"/version = "${{ env.VERSION_NUM }}"/' pyproject.toml
sed -i '/^name = "mealie"$/,/^version = / s/^version = "[^"]*"/version = "${{ env.VERSION_NUM }}"/' uv.lock
sed -i 's/\("version": "\)[^"]*"/\1${{ env.VERSION_NUM }}"/' frontend/package.json
sed -i 's/:v[0-9]*\.[0-9]*\.[0-9]*/:v${{ env.VERSION_NUM }}/' docs/docs/documentation/getting-started/installation/installation-checklist.md
sed -i 's/:v[0-9]*\.[0-9]*\.[0-9]*/:v${{ env.VERSION_NUM }}/' docs/docs/documentation/getting-started/installation/sqlite.md
sed -i 's/:v[0-9]*\.[0-9]*\.[0-9]*/:v${{ env.VERSION_NUM }}/' docs/docs/documentation/getting-started/installation/postgres.md
- name: Commit and push changes
id: commit
run: |
git add pyproject.toml frontend/package.json uv.lock docs/
git commit -m "chore: bump version to ${{ github.event.release.tag_name }}"
git push origin HEAD:${{ github.event.repository.default_branch }}
echo "commit-sha=$(git rev-parse HEAD)" >> $GITHUB_OUTPUT
- name: Move release tag to new commit
run: |
git tag -f ${{ github.event.release.tag_name }}
git push -f origin ${{ github.event.release.tag_name }}
backend-tests:
name: "Backend Server Tests"
uses: ./.github/workflows/partial-backend.yml
uses: ./.github/workflows/test-backend.yml
needs:
- commit-version-bump
frontend-tests:
name: "Frontend and End-to-End Tests"
uses: ./.github/workflows/partial-frontend.yml
name: "Frontend Tests"
uses: ./.github/workflows/test-frontend.yml
needs:
- commit-version-bump
build-release:
build-package:
name: Build Package
uses: ./.github/workflows/build-package.yml
needs:
- commit-version-bump
with:
tag: ${{ github.event.release.tag_name }}
publish:
permissions:
contents: read
packages: write
@@ -23,10 +85,11 @@ jobs:
# https://github.com/orgs/community/discussions/76409#discussioncomment-8131390
id-token: write
name: Build Tagged Release
uses: ./.github/workflows/partial-builder.yml
uses: ./.github/workflows/publish.yml
needs:
- backend-tests
- frontend-tests
- build-package
with:
tag: ${{ github.event.release.tag_name }}
tags: |
@@ -36,10 +99,48 @@ jobs:
DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }}
rollback-on-failure:
name: Rollback version commit if deployment fails
needs:
- commit-version-bump
- publish
if: always() && needs.publish.result == 'failure'
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Generate GitHub App Token
id: app-token
uses: actions/create-github-app-token@v1
with:
app-id: ${{ secrets.COMMIT_BOT_APP_ID }}
private-key: ${{ secrets.COMMIT_BOT_APP_PRIVATE_KEY }}
- name: Checkout 🛎
uses: actions/checkout@v4
with:
token: ${{ steps.app-token.outputs.token }}
fetch-depth: 0
- name: Configure Git
run: |
git config user.name "mealie-commit-bot[bot]"
git config user.email "mealie-commit-bot[bot]@users.noreply.github.com"
- name: Delete release tag
run: |
git push --delete origin ${{ github.event.release.tag_name }}
- name: Revert version bump commit
run: |
git revert --no-edit ${{ needs.commit-version-bump.outputs.commit-sha }}
git push origin HEAD:${{ github.event.repository.default_branch }}
notify-discord:
name: Notify Discord
needs:
- build-release
- publish
if: success()
runs-on: ubuntu-latest
steps:
- name: Discord notification
@@ -48,33 +149,3 @@ jobs:
uses: Ilshidur/action-discord@0.3.2
with:
args: "🚀 Version {{ EVENT_PAYLOAD.release.tag_name }} of Mealie has been released. See the release notes https://github.com/mealie-recipes/mealie/releases/tag/{{ EVENT_PAYLOAD.release.tag_name }}"
update-image-tags:
name: Update image tag in sample docker-compose files
needs:
- build-release
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
steps:
- name: Checkout 🛎
uses: actions/checkout@v4
- name: Modify version strings
run: |
sed -i 's/:v[0-9]*.[0-9]*.[0-9]*/:${{ github.event.release.tag_name }}/' docs/docs/documentation/getting-started/installation/sqlite.md
sed -i 's/:v[0-9]*.[0-9]*.[0-9]*/:${{ github.event.release.tag_name }}/' docs/docs/documentation/getting-started/installation/postgres.md
- name: Create Pull Request
uses: peter-evans/create-pull-request@v6
# This doesn't currently work for us because it creates the PR but the workflows don't run.
# TODO: Provide a personal access token as a parameter here, that solves that problem.
# https://github.com/peter-evans/create-pull-request
with:
commit-message: "Update image tag, for release ${{ github.event.release.tag_name }}"
branch: "docs/newrelease-update-version-${{ github.event.release.tag_name }}"
delete-branch: true
base: mealie-next
title: "docs(auto): Update image tag, for release ${{ github.event.release.tag_name }}"
body: "Auto-generated by `.github/workflows/release.yml`, on publish of release ${{ github.event.release.tag_name }}"

56
.github/workflows/scheduled-checks.yml vendored Normal file
View File

@@ -0,0 +1,56 @@
name: Scheduled Checks
on:
schedule:
# Every monday at 7 AM
- cron: 0 7 * * 1
jobs:
update:
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
steps:
- name: Checkout 🛎
uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Set PY
shell: bash
run: echo "PY=$(python -VV | sha256sum | cut -d' ' -f1)" >> $GITHUB_ENV
- name: Cache
uses: actions/cache@v4
with:
path: |
~/.cache/pre-commit
~/.cache/pip
key: pre-commit-${{ env.PY }}-${{ hashFiles('.pre-commit-config.yaml') }}
- name: Install pre-commit
shell: bash
run: pip install -U pre-commit
- name: Run `pre-commit autoupdate`
shell: bash
run: pre-commit autoupdate --color=always
- name: Create Pull Request
uses: peter-evans/create-pull-request@v6
# This doesn't currently work for us because it creates the PR but the workflows don't run.
# TODO: Provide a personal access token as a parameter here, that solves that problem.
# https://github.com/peter-evans/create-pull-request
with:
commit-message: "Update pre-commit hooks"
branch: "fix/update-pre-commit-hooks"
labels: |
chore
delete-branch: true
base: mealie-next
title: "chore(auto): Update pre-commit hooks"
body: "Auto-generated by `.github/workflows/scheduled-checks.yml`"

View File

@@ -16,12 +16,13 @@ jobs:
with:
stale-issue-label: 'stale'
exempt-issue-labels: 'pinned,security,early-stages,bug: confirmed,feedback,task'
stale-issue-message: 'This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.'
days-before-issue-stale: 30
days-before-issue-close: 5
stale-issue-message: 'This issue has been automatically marked as stale because it has been open 90 days with no activity.'
days-before-issue-stale: 90
# This stops an issue from ever getting closed automatically.
days-before-issue-close: -1
stale-pr-label: 'stale'
stale-pr-message: 'This PR is stale because it has been open 45 days with no activity.'
days-before-pr-stale: 45
stale-pr-message: 'This PR has been automatically marked as stale because it has been open 90 days with no activity.'
days-before-pr-stale: 90
# This stops a PR from ever getting closed automatically.
days-before-pr-close: -1
# If an issue/PR has a milestone, it's exempt from being marked as stale.

View File

@@ -1,4 +1,4 @@
name: Backend Test/Lint
name: Backend Lint and Test
on:
workflow_call:
@@ -36,7 +36,7 @@ jobs:
# Steps
steps:
- name: Install Task
uses: arduino/setup-task@v1
uses: arduino/setup-task@v2
with:
version: 3.x
repo-token: ${{ secrets.GITHUB_TOKEN }}
@@ -45,28 +45,25 @@ jobs:
uses: actions/checkout@v4
- name: Set up python
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: "3.10"
python-version: "3.12"
- name: Install Poetry
uses: snok/install-poetry@v1
with:
virtualenvs-create: true
virtualenvs-in-project: true
- name: Install uv
run: pip install uv
- name: Load cached venv
id: cached-poetry-dependencies
uses: actions/cache@v3
id: cached-python-dependencies
uses: actions/cache@v4
with:
path: .venv
key: venv-${{ runner.os }}-${{ hashFiles('**/poetry.lock') }}
key: venv-${{ runner.os }}-${{ hashFiles('**/uv.lock') }}
- name: Check venv cache
id: cache-validate
if: steps.cached-poetry-dependencies.outputs.cache-hit == 'true'
if: steps.cached-python-dependencies.outputs.cache-hit == 'true'
run: |
echo "import black;print('venv good?')" > test.py && poetry run python test.py && echo "cache-hit-success=true" >> $GITHUB_OUTPUT
echo "import fastapi;print('venv good?')" > test.py && uv run python test.py && echo "cache-hit-success=true" >> $GITHUB_OUTPUT
rm test.py
continue-on-error: true
@@ -74,13 +71,12 @@ jobs:
run: |
sudo apt-get update
sudo apt-get install libsasl2-dev libldap2-dev libssl-dev
poetry install
poetry add "psycopg2-binary==2.9.9"
if: steps.cached-poetry-dependencies.outputs.cache-hit != 'true' || steps.cache-validate.outputs.cache-hit-success != 'true'
uv sync --group dev --extra pgsql
if: steps.cached-python-dependencies.outputs.cache-hit != 'true' || steps.cache-validate.outputs.cache-hit-success != 'true'
- name: Formatting (Black)
- name: Formatting (Ruff)
run: |
poetry run black . --check
uv run ruff format . --check
- name: Lint (Ruff)
run: |

View File

@@ -1,4 +1,4 @@
name: Frontend Build/Lin
name: Frontend Lint and Test
on:
workflow_call:
@@ -14,7 +14,7 @@ jobs:
- name: Setup node env 🏗
uses: actions/setup-node@v4.0.0
with:
node-version: 16
node-version: 22
check-latest: true
- name: Get yarn cache directory path 🛠
@@ -22,7 +22,7 @@ jobs:
run: echo "dir=$(yarn cache dir)" >> $GITHUB_OUTPUT
- name: Cache node_modules 📦
uses: actions/cache@v3.3.2
uses: actions/cache@v4
id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
@@ -34,44 +34,14 @@ jobs:
run: yarn
working-directory: "frontend"
- name: Prepare nuxt 🚀
run: yarn nuxt prepare
working-directory: "frontend"
- name: Run linter 👀
run: yarn lint
run: yarn lint --max-warnings=0
working-directory: "frontend"
- name: Run tests 🧪
run: yarn test:ci
working-directory: "frontend"
build:
runs-on: ubuntu-latest
steps:
- name: Checkout 🛎
uses: actions/checkout@v4
- name: Setup node env 🏗
uses: actions/setup-node@v4.0.0
with:
node-version: 16
check-latest: true
- name: Get yarn cache directory path 🛠
id: yarn-cache-dir-path
run: echo "dir=$(yarn cache dir)" >> $GITHUB_OUTPUT
- name: Cache node_modules 📦
uses: actions/cache@v3.3.2
id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-
- name: Install dependencies 👨🏻‍💻
run: yarn
working-directory: "frontend"
- name: Run Build 🚚
run: yarn build
working-directory: "frontend"

13
.gitignore vendored
View File

@@ -10,6 +10,9 @@ docs/site/
*temp/*
.secret
frontend/dist/
frontend/.output/*
frontend/.yarn/*
frontend/.yarnrc.yml
dev/code-generation/generated/*
dev/data/mealie.db-journal
@@ -17,6 +20,7 @@ dev/data/backups/*
dev/data/debug/*
dev/data/img/*
dev/data/migration/*
dev/data/templates/*
dev/data/users/*
dev/data/groups/*
@@ -52,7 +56,7 @@ pnpm-debug.log*
env/
build/
develop-eggs/
/dist/
downloads/
eggs/
.eggs/
@@ -66,6 +70,9 @@ wheels/
.installed.cfg
*.egg
# frontend copied into Python module for packaging purposes
/mealie/frontend/
# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
@@ -154,12 +161,12 @@ dev/data/backups/dev_sample_data*.zip
dev/data/recipes/*
dev/scripts/output/app_routes.py
dev/scripts/output/javascriptAPI/*
mealie/services/scraper/ingredient_nlp/model.crfmodel
dev/code-generation/generated/openapi.json
dev/code-generation/generated/test_routes.py
mealie/services/parser_services/crfpp/model.crfmodel
lcov.info
dev/code-generation/openapi.json
.run/
.task/*
.dev.env
frontend/eslint.config.deprecated.js

View File

@@ -1,6 +1,6 @@
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v2.3.0
rev: v6.0.0
hooks:
- id: check-yaml
exclude: "mkdocs.yml"
@@ -10,7 +10,9 @@ repos:
- id: end-of-file-fixer
- id: trailing-whitespace
exclude: ^tests/data/
- repo: https://github.com/psf/black
rev: 24.1.0
- repo: https://github.com/astral-sh/ruff-pre-commit
# Ruff version.
rev: v0.14.10
hooks:
- id: black
- id: ruff
- id: ruff-format

13
.vscode/settings.json vendored
View File

@@ -18,6 +18,7 @@
"source.organizeImports": "never"
},
"editor.formatOnSave": true,
"eslint.useFlatConfig": true,
"eslint.workingDirectories": [
"./frontend"
],
@@ -54,14 +55,18 @@
"explorer.fileNesting.enabled": true,
"explorer.fileNesting.patterns": {
"package.json": "package-lock.json, yarn.lock, .eslintrc.js, tsconfig.json, .prettierrc, .editorconfig",
"pyproject.toml": "poetry.lock, alembic.ini, .pylintrc",
"pyproject.toml": "uv.lock, alembic.ini, .pylintrc",
"netlify.toml": "runtime.txt",
"README.md": "LICENSE, SECURITY.md"
},
"[typescript]": {
"editor.formatOnSave": true
},
"[vue]": {
"editor.formatOnSave": false
"editor.formatOnSave": true
},
"[python]": {
"editor.defaultFormatter": "ms-python.black-formatter",
},
"editor.formatOnSave": true,
"editor.defaultFormatter": "charliermarsh.ruff"
}
}

10
.vscode/tasks.json vendored
View File

@@ -24,16 +24,6 @@
},
"problemMatcher": []
},
{
"label": "Init Database",
"command": "poetry run python mealie/db/init_db.py",
"type": "shell",
"presentation": {
"reveal": "always",
"group": "groupA"
},
"problemMatcher": []
},
{
"label": "Dev: Start Frontend",
"command": "task ui",

View File

@@ -1,10 +1,10 @@
[![Latest Release][latest-release-shield]][latest-release-url]
[![Contributors][contributors-shield]][contributors-url]
[![Forks][forks-shield]][forks-url]
[![Stargazers][stars-shield]][stars-url]
[![Issues][issues-shield]][issues-url]
[![AGPL License][license-shield]][license-url]
[![Docker Pulls][docker-pull]][docker-pull]
[![Docker Pulls][docker-pull]][docker-url]
[![GHCR Pulls][ghcr-pulls]][ghcr-url]
<!-- PROJECT LOGO -->
<br />
@@ -18,9 +18,9 @@
<h3 align="center">Mealie</h3>
<p align="center">
A Place for All Your Recipes
A Place For All Your Recipes
<br />
<a href="https://nightly.mealie.io"><strong>Explore the docs »</strong></a>
<a href="https://docs.mealie.io/"><strong>Explore the docs »</strong></a>
<a href="https://github.com/mealie-recipes/mealie">
</a>
<br />
@@ -38,12 +38,20 @@
# About The Project
Mealie is a self hosted recipe manager and meal planner with a RestAPI backend and a reactive frontend application built in Vue for a pleasant user experience for the whole family. Easily add recipes into your database by providing the URL and Mealie will automatically import the relevant data, or add a family recipe with the UI editor. Mealie also provides an API for interactions from 3rd party applications.
Mealie is a self hosted recipe manager, meal planner and shopping list with a RestAPI backend and a reactive frontend built in Vue for a pleasant user experience for the whole family. Easily add recipes into your database by providing the URL and Mealie will automatically import the relevant data, or add a family recipe with the UI editor. Mealie also provides an API for interactions from 3rd party applications.
- [Remember to join the Discord](https://discord.gg/QuStdQGSGK)!
- [Documentation](https://nightly.mealie.io)
- [Documentation](https://docs.mealie.io/)
## Key Features
- Recipe imports: Create recipes, by **importing from a URL** or entering data manually
- Meal Planner: Use the **Meal Planner** to plan your what you'll cook for the next week
- Shopping List: Put the necessary ingredients on your **Shopping List**, organised into sections of your local supermarket
- Cookbooks: Group recipes into **Cookbooks** based on your own criteria
- Docker: Easy **Docker** deployment
- Localisation: **Translations** for 35+ languages
<!-- CONTRIBUTING -->
## Contributing
@@ -58,7 +66,7 @@ If you are not a coder, you can still contribute financially. Financial contribu
### Translations
Translations can be a great way for **non-coders** to contribute to project. We use [Crowdin](https://crowdin.com/project/mealie) to allow several contributors to work on translating Mealie. You can simply help by voting for your preferred translations, or even by completely translating Mealie into a new language.
Translations can be a great way for **non-coders** to contribute to the project. We use [Crowdin](https://crowdin.com/project/mealie) to allow several contributors to work on translating Mealie. You can simply help by voting for your preferred translations, or even by completely translating Mealie into a new language.
For more information, check out the translation page on the [contributor's guide](https://nightly.mealie.io/contributors/translating/).
@@ -80,16 +88,17 @@ Thanks to Depot for providing build instances for our Docker image builds.
<!-- MARKDOWN LINKS & IMAGES -->
<!-- https://www.markdownguide.org/basic-syntax/#reference-style-links -->
[contributors-shield]: https://img.shields.io/github/contributors/mealie-recipes/mealie.svg?style=flat-square
[docker-pull]: https://img.shields.io/docker/pulls/hkotel/mealie
[docker-pull]: https://img.shields.io/docker/pulls/hkotel/mealie?style=flat-square
[docker-url]: https://hub.docker.com/r/hkotel/mealie
[ghcr-pulls]: https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fipitio.github.io%2Fbackage%2Fmealie-recipes%2Fmealie%2Fmealie.json&query=%24.downloads&style=flat-square&label=ghcr%20pulls
[ghcr-url]: https://github.com/mealie-recipes/mealie/pkgs/container/mealie
[contributors-url]: https://github.com/mealie-recipes/mealie/graphs/contributors
[forks-shield]: https://img.shields.io/github/forks/mealie-recipes/mealie.svg?style=flat-square
[forks-url]: https://github.com/mealie-recipes/mealie/network/members
[stars-shield]: https://img.shields.io/github/stars/mealie-recipes/mealie.svg?style=flat-square
[stars-url]: https://github.com/mealie-recipes/mealie/stargazers
[issues-shield]: https://img.shields.io/github/issues/mealie-recipes/mealie.svg?style=flat-square
[issues-url]: https://github.com/mealie-recipes/mealie/issues
[latest-release-shield]: https://img.shields.io/github/v/release/mealie-recipes/mealie?style=flat-square&label=latest%20release
[latest-release-url]: https://img.shields.io/github/v/release/mealie-recipes/mealie
[latest-release-url]: https://github.com/mealie-recipes/mealie/releases
[license-shield]: https://img.shields.io/github/license/mealie-recipes/mealie.svg?style=flat-square
[license-url]: https://github.com/mealie-recipes/mealie/blob/mealie-next/LICENSE
[linkedin-shield]: https://img.shields.io/badge/-LinkedIn-black.svg?style=flat-square&logo=linkedin&colorB=555

View File

@@ -5,6 +5,7 @@ vars:
GREETING: Hello, World!
env:
DEFAULT_GROUP: Home
DEFAULT_HOUSEHOLD: Family
PRODUCTION: false
API_PORT: 9000
API_DOCS: True
@@ -27,7 +28,7 @@ tasks:
docs:gen:
desc: runs the API documentation generator
cmds:
- poetry run python dev/code-generation/gen_docs_api.py
- uv run python dev/code-generation/gen_docs_api.py
docs:
desc: runs the documentation server
@@ -35,45 +36,43 @@ tasks:
deps:
- docs:gen
cmds:
- poetry run python -m mkdocs serve
- uv run python -m mkdocs serve
setup:ui:
desc: setup frontend dependencies
dir: frontend
run: once
cmds:
- yarn install
sources:
- package.json
- yarn.lock
generates:
- node_modules/**
setup:py:
desc: setup python dependencies
run: once
cmds:
- poetry install --with main,dev,postgres
- poetry run pre-commit install
setup:model:
desc: setup nlp model
vars:
MODEL_URL: https://github.com/mealie-recipes/nlp-model/releases/download/v1.0.0/model.crfmodel
OUTPUT: ./mealie/services/parser_services/crfpp/model.crfmodel
- uv sync --extra pgsql --group dev
- uv run pre-commit install
sources:
# using pyproject.toml as the dependency since this should only ever need to run once
# during setup. There is perhaps a better way to do this.
- ./pyproject.toml
generates:
- ./mealie/services/parser_services/crfpp/model.crfmodel
cmds:
- curl -L0 {{ .MODEL_URL }} --output {{ .OUTPUT }}
- uv.lock
- pyproject.toml
- .pre-commit-config.yaml
setup:
desc: setup all dependencies
deps:
- setup:ui
- setup:py
- setup:model
dev:generate:
desc: run code generators
cmds:
- poetry run python dev/code-generation/main.py
- uv run python dev/code-generation/main.py {{ .CLI_ARGS }}
- task: docs:gen
- task: py:format
dev:services:
desc: starts postgres and mailpit containers
@@ -89,28 +88,30 @@ tasks:
- rm -r ./dev/data/recipes/
- rm -r ./dev/data/users/
- rm -f ./dev/data/mealie*.db
- rm -f ./dev/data/mealie*.db-shm
- rm -f ./dev/data/mealie*.db-wal
- rm -f ./dev/data/mealie.log
- rm -f ./dev/data/.secret
py:mypy:
desc: runs python type checking
cmds:
- poetry run mypy mealie
- uv run mypy mealie
py:test:
desc: runs python tests (support args after '--')
cmds:
- poetry run pytest {{ .CLI_ARGS }}
- uv run pytest {{ .CLI_ARGS }}
py:format:
desc: runs python code formatter
cmds:
- poetry run black mealie
- uv run ruff format .
py:lint:
desc: runs python linter
cmds:
- poetry run ruff check mealie
- uv run ruff check mealie
py:check:
desc: runs all linters, type checkers, and formatters
@@ -123,17 +124,73 @@ tasks:
py:coverage:
desc: runs python coverage and generates html report
cmds:
- poetry run pytest
- poetry run coverage report -m
- poetry run coveragepy-lcov
- poetry run coverage html
- uv run pytest
- uv run coverage report -m
- uv run coveragepy-lcov
- uv run coverage html
- open htmlcov/index.html
py:package:copy-frontend:
desc: copy the frontend files into the Python package
internal: true
deps:
- ui:generate
cmds:
- rm -rf mealie/frontend
- cp -a frontend/dist mealie/frontend
sources:
- frontend/dist/**
generates:
- mealie/frontend/**
py:package:generate-requirements:
desc: Generate requirements file to pin all packages, effectively a "pip freeze" before installation begins
internal: true
cmds:
- uv export --no-editable --no-emit-project --extra pgsql --format requirements-txt --output-file dist/requirements.txt
# Include mealie in the requirements, hashing the package that was just built to ensure it's the one installed
- echo "mealie[pgsql]=={{.MEALIE_VERSION}} \\" >> dist/requirements.txt
- pip hash dist/mealie-{{.MEALIE_VERSION}}-py3-none-any.whl | tail -n1 | tr -d '\n' >> dist/requirements.txt
- echo " \\" >> dist/requirements.txt
- pip hash dist/mealie-{{.MEALIE_VERSION}}.tar.gz | tail -n1 >> dist/requirements.txt
vars:
MEALIE_VERSION:
sh: python -c "import tomllib; print(tomllib.load(open('pyproject.toml', 'rb'))['project']['version'])"
sources:
- uv.lock
- pyproject.toml
- dist/mealie-*.whl
- dist/mealie-*.tar.gz
generates:
- dist/requirements.txt
py:package:deps-parallel:
desc: Run py:package dependencies in parallel
internal: true
deps:
- setup:py
- py:package:copy-frontend
py:package:deps:
desc: Dependencies of py:package, skippable by setting SKIP_PACKAGE_DEPS=true
internal: true
cmds:
- task: py:package:deps-parallel
status:
- '{{ .SKIP_PACKAGE_DEPS | default "false"}}'
py:package:
desc: builds Python packages (sdist and wheel) in top-level dist directory
deps:
- py:package:deps
cmds:
- uv build --out-dir dist
- task: py:package:generate-requirements
py:
desc: runs the backend server
cmds:
- poetry run python mealie/db/init_db.py
- poetry run python mealie/app.py
- uv run python mealie/app.py
py:postgres:
desc: runs the backend server configured for containerized postgres
@@ -145,8 +202,13 @@ tasks:
POSTGRES_PORT: 5432
POSTGRES_DB: mealie
cmds:
- poetry run python mealie/db/init_db.py
- poetry run python mealie/app.py
- uv run python mealie/app.py
py:migrate:
desc: generates a new database migration file e.g. task py:migrate -- "add new column"
cmds:
- uv run alembic --config mealie/alembic/alembic.ini revision --autogenerate -m "{{ .CLI_ARGS }}"
- task: py:format
ui:build:
desc: builds the frontend in frontend/dist
@@ -154,11 +216,19 @@ tasks:
cmds:
- yarn build
ui:generate:
desc: generates a static version of the frontend in frontend/dist
dir: frontend
deps:
- setup:ui
cmds:
- yarn generate
ui:lint:
desc: runs the frontend linter
dir: frontend
cmds:
- yarn lint
- yarn lint --max-warnings=0
ui:test:
desc: runs the frontend tests
@@ -176,7 +246,17 @@ tasks:
desc: runs the frontend server
dir: frontend
cmds:
- yarn run dev
- yarn run dev --no-fork
docker:build-from-package:
desc: Builds the Docker image from the existing Python package in dist/
deps:
- py:package
cmds:
- docker build --tag mealie:dev --file docker/Dockerfile --build-arg COMMIT={{.GIT_COMMIT}} --build-context packages=dist .
vars:
GIT_COMMIT:
sh: git rev-parse HEAD
docker:prod:
desc: builds and runs the production docker image locally

View File

@@ -1 +0,0 @@
Generic single-database configuration.

View File

@@ -35,7 +35,7 @@ conventional_commits = true
filter_unconventional = true
# regex for preprocessing the commit messages
commit_preprocessors = [
{ pattern = '\((\w+\s)?#([0-9]+)\)', replace = "([#${2}](https://github.com/hay-kot/mealie/issues/${2}))"},
{ pattern = '\((\w+\s)?#([0-9]+)\)', replace = "([#${2}](https://github.com/mealie-recipes/mealie/issues/${2}))"},
]
# regex for parsing and grouping commits
commit_parsers = [

View File

@@ -1,4 +1,8 @@
preserve_hierarchy: false
pull_request_title: "chore(l10n): New Crowdin updates"
pull_request_labels: [
"l10n"
]
files:
- source: /frontend/lang/messages/en-US.json
translation: /frontend/lang/messages/%locale%.json

View File

@@ -1,4 +1,8 @@
import json
from datetime import UTC, datetime
from typing import Any
from fastapi import FastAPI
from mealie.app import app
from mealie.core.config import determine_data_dir
@@ -34,11 +38,41 @@ HTML_TEMPLATE = """<!-- Custom HTML site displayed as the Home chapter -->
"""
HTML_PATH = DATA_DIR.parent.parent.joinpath("docs/docs/overrides/api.html")
CONSTANT_DT = datetime(2025, 10, 24, 15, 53, 0, 0, tzinfo=UTC)
def generate_api_docs(my_app):
def normalize_timestamps(s: dict[str, Any]) -> dict[str, Any]:
field_format = s.get("format")
is_timestamp = field_format in ["date-time", "date", "time"]
has_default = s.get("default")
if not is_timestamp:
for k, v in s.items():
if isinstance(v, dict):
s[k] = normalize_timestamps(v)
elif isinstance(v, list):
s[k] = [normalize_timestamps(i) if isinstance(i, dict) else i for i in v]
return s
elif not has_default:
return s
if field_format == "date-time":
s["default"] = CONSTANT_DT.isoformat()
elif field_format == "date":
s["default"] = CONSTANT_DT.date().isoformat()
elif field_format == "time":
s["default"] = CONSTANT_DT.time().isoformat()
return s
def generate_api_docs(my_app: FastAPI):
openapi_schema = my_app.openapi()
openapi_schema = normalize_timestamps(openapi_schema)
with open(HTML_PATH, "w") as fd:
text = HTML_TEMPLATE.replace("MY_SPECIFIC_TEXT", json.dumps(my_app.openapi()))
text = HTML_TEMPLATE.replace("MY_SPECIFIC_TEXT", json.dumps(openapi_schema))
fd.write(text)

View File

@@ -1,3 +1,4 @@
import subprocess
from dataclasses import dataclass
from pathlib import Path
@@ -67,7 +68,7 @@ def rename_non_compliant_paths():
kabab case.
"""
ignore_files = ["DS_Store", ".gitkeep"]
ignore_files = ["DS_Store", ".gitkeep", "af-ZA.json", "en-US.json"]
ignore_extensions = [".pyc", ".pyo", ".py"]
@@ -105,12 +106,16 @@ def main():
# Flatten list of lists
all_children = [item for sublist in all_children for item in sublist]
out_path = GENERATED / "__init__.py"
render_python_template(
TEMPLATE,
GENERATED / "__init__.py",
out_path,
{"children": all_children},
)
subprocess.run(["uv", "run", "ruff", "check", str(out_path), "--fix"])
subprocess.run(["uv", "run", "ruff", "format", str(out_path)])
if __name__ == "__main__":
main()

View File

@@ -4,7 +4,7 @@ from pathlib import Path
from fastapi import FastAPI
from jinja2 import Template
from pydantic import BaseModel, ConfigDict
from utils import PROJECT_DIR, CodeTemplates, HTTPRequest, RouteObject, RequestType
from utils import PROJECT_DIR, CodeTemplates, HTTPRequest, RouteObject
CWD = Path(__file__).parent
@@ -17,9 +17,16 @@ class PathObject(BaseModel):
http_verbs: list[HTTPRequest]
def get_path_objects(app: FastAPI):
paths = []
def force_include_in_schema(app: FastAPI):
# clear schema cache
app.openapi_schema = None
for route in app.routes:
route.include_in_schema = True
def get_path_objects(app: FastAPI):
force_include_in_schema(app)
paths = []
for key, value in app.openapi().items():
if key == "paths":
for key, value2 in value.items():

View File

@@ -1,5 +1,6 @@
import pathlib
import re
import subprocess
from dataclasses import dataclass, field
from utils import PROJECT_DIR, log, render_python_template
@@ -84,16 +85,23 @@ def find_modules(root: pathlib.Path) -> list[Modules]:
return modules
def main():
def main() -> None:
modules = find_modules(SCHEMA_PATH)
template_paths: list[pathlib.Path] = []
for module in modules:
log.debug(f"Module: {module.directory.name}")
for file in module.files:
log.debug(f" File: {file.import_path}")
log.debug(f" Classes: [{', '.join(file.classes)}]")
render_python_template(template, module.directory / "__init__.py", {"module": module})
template_path = module.directory / "__init__.py"
template_paths.append(template_path)
render_python_template(template, template_path, {"module": module})
path_args = (str(p) for p in template_paths)
subprocess.run(["uv", "run", "ruff", "check", *path_args, "--fix"])
subprocess.run(["uv", "run", "ruff", "format", *path_args])
if __name__ == "__main__":

View File

@@ -1,3 +1,4 @@
import os
import pathlib
from dataclasses import dataclass
from pathlib import Path
@@ -13,7 +14,7 @@ from mealie.schema._mealie import MealieModel
BASE = pathlib.Path(__file__).parent.parent.parent
API_KEY = dotenv.get_key(BASE / ".env", "CROWDIN_API_KEY")
API_KEY = dotenv.get_key(BASE / ".env", "CROWDIN_API_KEY") or os.environ.get("CROWDIN_API_KEY", "")
@dataclass
@@ -23,30 +24,41 @@ class LocaleData:
LOCALE_DATA: dict[str, LocaleData] = {
"en-US": LocaleData(name="American English"),
"en-GB": LocaleData(name="British English"),
"af-ZA": LocaleData(name="Afrikaans (Afrikaans)"),
"ar-SA": LocaleData(name="العربية (Arabic)", dir="rtl"),
"bg-BG": LocaleData(name="Български (Bulgarian)"),
"ca-ES": LocaleData(name="Català (Catalan)"),
"cs-CZ": LocaleData(name="Čeština (Czech)"),
"da-DK": LocaleData(name="Dansk (Danish)"),
"de-DE": LocaleData(name="Deutsch (German)"),
"el-GR": LocaleData(name="Ελληνικά (Greek)"),
"en-GB": LocaleData(name="British English"),
"en-US": LocaleData(name="American English"),
"es-ES": LocaleData(name="Español (Spanish)"),
"et-EE": LocaleData(name="Eesti (Estonian)"),
"fi-FI": LocaleData(name="Suomi (Finnish)"),
"fr-BE": LocaleData(name="Belge (Belgian)"),
"fr-CA": LocaleData(name="Français canadien (Canadian French)"),
"fr-FR": LocaleData(name="Français (French)"),
"gl-ES": LocaleData(name="Galego (Galician)"),
"he-IL": LocaleData(name="עברית (Hebrew)", dir="rtl"),
"hr-HR": LocaleData(name="Hrvatski (Croatian)"),
"hu-HU": LocaleData(name="Magyar (Hungarian)"),
"is-IS": LocaleData(name="Íslenska (Icelandic)"),
"it-IT": LocaleData(name="Italiano (Italian)"),
"ja-JP": LocaleData(name="日本語 (Japanese)"),
"ko-KR": LocaleData(name="한국어 (Korean)"),
"no-NO": LocaleData(name="Norsk (Norwegian)"),
"lt-LT": LocaleData(name="Lietuvių (Lithuanian)"),
"lv-LV": LocaleData(name="Latviešu (Latvian)"),
"nl-NL": LocaleData(name="Nederlands (Dutch)"),
"no-NO": LocaleData(name="Norsk (Norwegian)"),
"pl-PL": LocaleData(name="Polski (Polish)"),
"pt-BR": LocaleData(name="Português do Brasil (Brazilian Portuguese)"),
"pt-PT": LocaleData(name="Português (Portuguese)"),
"ro-RO": LocaleData(name="Română (Romanian)"),
"ru-RU": LocaleData(name="Pусский (Russian)"),
"sk-SK": LocaleData(name="Slovenčina (Slovak)"),
"sl-SI": LocaleData(name="Slovenščina (Slovenian)"),
"sr-SP": LocaleData(name="српски (Serbian)"),
"sv-SE": LocaleData(name="Svenska (Swedish)"),
"tr-TR": LocaleData(name="Türkçe (Turkish)"),
@@ -64,7 +76,7 @@ export const LOCALES = [{% for locale in locales %}
progress: {{ locale.progress }},
dir: "{{ locale.dir }}",
},{% endfor %}
]
];
"""
@@ -86,8 +98,8 @@ class CrowdinApi:
project_id = "451976"
api_key = API_KEY
def __init__(self, api_key: str):
api_key = api_key
def __init__(self, api_key: str | None):
self.api_key = api_key or API_KEY
@property
def headers(self) -> dict:
@@ -149,29 +161,51 @@ PROJECT_DIR = Path(__file__).parent.parent.parent
datetime_dir = PROJECT_DIR / "frontend" / "lang" / "dateTimeFormats"
locales_dir = PROJECT_DIR / "frontend" / "lang" / "messages"
nuxt_config = PROJECT_DIR / "frontend" / "nuxt.config.js"
nuxt_config = PROJECT_DIR / "frontend" / "nuxt.config.ts"
i18n_config = PROJECT_DIR / "frontend" / "i18n.config.ts"
reg_valid = PROJECT_DIR / "mealie" / "schema" / "_mealie" / "validators.py"
"""
This snippet walks the message and dat locales directories and generates the import information
for the nuxt.config.js file and automatically injects it into the nuxt.config.js file. Note that
for the nuxt.config.ts file and automatically injects it into the nuxt.config.ts file. Note that
the code generation ID is hardcoded into the script and required in the nuxt config.
"""
def inject_nuxt_values():
all_date_locales = [
f'"{match.stem}": require("./lang/dateTimeFormats/{match.name}"),' for match in datetime_dir.glob("*.json")
]
datetime_files = list(datetime_dir.glob("*.json"))
datetime_files.sort()
datetime_imports = []
datetime_object_entries = []
for match in datetime_files:
# Convert locale name to camelCase variable name (e.g., "en-US" -> "enUS")
var_name = match.stem.replace("-", "")
# Generate import statement
import_line = f'import * as {var_name} from "./lang/dateTimeFormats/{match.name}";'
datetime_imports.append(import_line)
# Generate object entry
object_entry = f' "{match.stem}": {var_name},'
datetime_object_entries.append(object_entry)
all_date_locales = datetime_imports + ["", "const datetimeFormats = {"] + datetime_object_entries + ["};"]
all_langs = []
for match in locales_dir.glob("*.json"):
lang_string = f'{{ code: "{match.stem}", file: "{match.name}" }},'
match_data = LOCALE_DATA.get(match.stem)
match_dir = match_data.dir if match_data else "ltr"
lang_string = f'{{ code: "{match.stem}", file: "{match.name.replace(".json", ".ts")}", dir: "{match_dir}" }},'
all_langs.append(lang_string)
all_langs.sort()
log.debug(f"injecting locales into nuxt config -> {nuxt_config}")
inject_inline(nuxt_config, CodeKeys.nuxt_local_messages, all_langs)
inject_inline(nuxt_config, CodeKeys.nuxt_local_dates, all_date_locales)
inject_inline(i18n_config, CodeKeys.nuxt_local_dates, all_date_locales)
def inject_registration_validation_values():
@@ -188,7 +222,7 @@ def inject_registration_validation_values():
def generate_locales_ts_file():
api = CrowdinApi("")
api = CrowdinApi(None)
models = api.get_languages()
tmpl = Template(LOCALE_TEMPLATE)
rendered = tmpl.render(locales=models)

View File

@@ -1,3 +1,5 @@
import re
import subprocess
from pathlib import Path
from jinja2 import Template
@@ -7,8 +9,8 @@ from utils import log
# ============================================================
template = """// This Code is auto generated by gen_ts_types.py
{% for name in global %}import {{ name }} from "@/components/global/{{ name }}.vue";
{% endfor %}{% for name in layout %}import {{ name }} from "@/components/layout/{{ name }}.vue";
{% for name in global %}import type {{ name }} from "@/components/global/{{ name }}.vue";
{% endfor %}{% for name in layout %}import type {{ name }} from "@/components/layout/{{ name }}.vue";
{% endfor %}
declare module "vue" {
export interface GlobalComponents {
@@ -64,7 +66,112 @@ def generate_global_components_types() -> None:
# Pydantic To Typescript Generator
def generate_typescript_types() -> None:
def generate_typescript_types() -> None: # noqa: C901
def contains_number(s: str) -> bool:
return bool(re.search(r"\d", s))
def remove_numbers(s: str) -> str:
return re.sub(r"\d", "", s)
def extract_type_name(line: str) -> str:
# Looking for "export type EnumName = enumVal1 | enumVal2 | ..."
if not (line.startswith("export type") and "=" in line):
return ""
return line.split(" ")[2]
def extract_property_type_name(line: str) -> str:
# Looking for " fieldName: FieldType;" or " fieldName: FieldType & string;"
if not (line.startswith(" ") and ":" in line):
return ""
return line.split(":")[1].strip().split(";")[0]
def extract_interface_name(line: str) -> str:
# Looking for "export interface InterfaceName {"
if not (line.startswith("export interface") and "{" in line):
return ""
return line.split(" ")[2]
def is_comment_line(line: str) -> bool:
s = line.strip()
return s.startswith("/*") or s.startswith("*")
def clean_output_file(file: Path) -> None:
"""
json2ts generates duplicate types off of our enums and appends a number to the end of the type name.
Our Python code (hopefully) doesn't have any duplicate enum names, or types with numbers in them,
so we can safely remove the numbers.
To do this, we read the output line-by-line and replace any type names that contain numbers with
the same type name, but without the numbers.
Note: the issue arrises from the JSON package json2ts, not the Python package pydantic2ts,
otherwise we could just fix pydantic2ts.
"""
# First pass: build a map of type names to their numberless counterparts and lines to skip
replacement_map = {}
lines_to_skip = set()
wait_for_semicolon = False
wait_for_close_bracket = False
skip_comments = False
with open(file) as f:
for i, line in enumerate(f.readlines()):
if wait_for_semicolon:
if ";" in line:
wait_for_semicolon = False
lines_to_skip.add(i)
continue
if wait_for_close_bracket:
if "}" in line:
wait_for_close_bracket = False
lines_to_skip.add(i)
continue
if type_name := extract_type_name(line):
if not contains_number(type_name):
continue
replacement_map[type_name] = remove_numbers(type_name)
if ";" not in line:
wait_for_semicolon = True
lines_to_skip.add(i)
elif type_name := extract_interface_name(line):
if not contains_number(type_name):
continue
replacement_map[type_name] = remove_numbers(type_name)
if "}" not in line:
wait_for_close_bracket = True
lines_to_skip.add(i)
elif skip_comments and is_comment_line(line):
lines_to_skip.add(i)
# we've passed the opening comments and empty line at the header
elif not skip_comments and not line.strip():
skip_comments = True
# Second pass: rewrite or remove lines as needed.
# We have to do two passes here because definitions don't always appear in the same order as their usage.
lines = []
with open(file) as f:
for i, line in enumerate(f.readlines()):
if i in lines_to_skip:
continue
if type_name := extract_property_type_name(line):
if type_name in replacement_map:
line = line.replace(type_name, replacement_map[type_name])
lines.append(line)
with open(file, "w") as f:
f.writelines(lines)
def path_to_module(path: Path):
str_path: str = str(path)
@@ -83,6 +190,7 @@ def generate_typescript_types() -> None:
skipped_dirs: list[Path] = []
failed_modules: list[Path] = []
out_paths: list[Path] = []
for module in schema_path.iterdir():
if module.is_dir() and module.stem in ignore_dirs:
skipped_dirs.append(module)
@@ -98,9 +206,18 @@ def generate_typescript_types() -> None:
try:
path_as_module = path_to_module(module)
generate_typescript_defs(path_as_module, str(out_path), exclude=("MealieModel")) # type: ignore
except Exception as e:
clean_output_file(out_path)
out_paths.append(out_path)
except Exception:
failed_modules.append(module)
log.error(f"Module Error: {e}")
log.exception(f"Module Error: {module}")
# Run ESLint --fix on the files to clean up any formatting issues
subprocess.run(
["yarn", "lint", "--fix", *(str(path) for path in out_paths)],
check=True,
cwd=PROJECT_DIR / "frontend",
)
log.debug("\n📁 Skipped Directories:")
for skipped_dir in skipped_dirs:

View File

@@ -1,3 +1,4 @@
import argparse
from pathlib import Path
import gen_py_pytest_data_paths
@@ -11,15 +12,39 @@ CWD = Path(__file__).parent
def main():
items = [
(gen_py_schema_exports.main, "schema exports"),
(gen_ts_types.main, "frontend types"),
(gen_ts_locales.main, "locales"),
(gen_py_pytest_data_paths.main, "test data paths"),
(gen_py_pytest_routes.main, "pytest routes"),
]
parser = argparse.ArgumentParser(description="Run code generators")
parser.add_argument(
"generators",
nargs="*",
help="Specific generators to run (schema, types, locales, data-paths, routes). If none specified, all will run.", # noqa: E501 - long line
)
args = parser.parse_args()
for func, name in items:
# Define all available generators
all_generators = {
"schema": (gen_py_schema_exports.main, "schema exports"),
"types": (gen_ts_types.main, "frontend types"),
"locales": (gen_ts_locales.main, "locales"),
"data-paths": (gen_py_pytest_data_paths.main, "test data paths"),
"routes": (gen_py_pytest_routes.main, "pytest routes"),
}
# Determine which generators to run
if args.generators:
# Validate requested generators
invalid_generators = [g for g in args.generators if g not in all_generators]
if invalid_generators:
log.error(f"Invalid generator(s): {', '.join(invalid_generators)}")
log.info(f"Available generators: {', '.join(all_generators.keys())}")
return
generators_to_run = [(all_generators[g][0], all_generators[g][1]) for g in args.generators]
else:
# Run all generators (default behavior)
generators_to_run = list(all_generators.values())
# Run the selected generators
for func, name in generators_to_run:
log.info(f"Generating {name}...")
func()

View File

@@ -4,4 +4,4 @@ CWD = Path(__file__).parent
{% for f in data.children %}
{{ f.var }} = CWD / "{{ f.path }}"
{% endfor %}
{% endfor %}

View File

@@ -1,10 +1,7 @@
import logging
import re
from dataclasses import dataclass
from pathlib import Path
import black
import isort
from jinja2 import Template
from rich.logging import RichHandler
@@ -23,10 +20,7 @@ def render_python_template(template_file: Path | str, dest: Path, data: dict):
text = tplt.render(data=data)
text = black.format_str(text, mode=black.FileMode())
dest.write_text(text)
isort.file(dest)
@dataclass
@@ -34,10 +28,10 @@ class CodeSlicer:
start: int
end: int
indentation: str
indentation: str | None
text: list[str]
_next_line = None
_next_line: int | None = None
def purge_lines(self) -> None:
start = self.start + 1
@@ -46,15 +40,24 @@ class CodeSlicer:
def push_line(self, string: str) -> None:
self._next_line = self._next_line or self.start + 1
self.text.insert(self._next_line, self.indentation + string + "\n")
self.text.insert(self._next_line, (self.indentation or "") + string + "\n")
self._next_line += 1
def get_indentation_of_string(line: str, comment_char: str = "//|#") -> str:
return re.sub(rf"{comment_char}.*", "", line).removesuffix("\n")
def get_indentation_of_string(line: str) -> str:
# Extract everything before the comment
if "//" in line:
indentation = line.split("//")[0]
elif "#" in line:
indentation = line.split("#")[0]
else:
indentation = line
# Keep only the whitespace, remove any non-whitespace characters
return "".join(c for c in indentation if c.isspace())
def find_start_end(file_text: list[str], gen_id: str) -> tuple[int, int, str]:
def find_start_end(file_text: list[str], gen_id: str) -> tuple[int, int, str | None]:
start = None
end = None
indentation = None

View File

@@ -1,24 +0,0 @@
![Recipe Image](../../images/{{ recipe.slug }}/original.jpg)
# {{ recipe.name }}
{{ recipe.description }}
## Ingredients
{% for ingredient in recipe.recipeIngredient %}
- [ ] {{ ingredient }} {% endfor %}
## Instructions
{% for step in recipe.recipeInstructions %}
- [ ] {{ step.text }} {% endfor %}
{% for note in recipe.notes %}
**{{ note.title }}:** {{ note.text }}
{% endfor %}
---
Tags: {{ recipe.tags }}
Categories: {{ recipe.categories }}
Original URL: {{ recipe.orgURL }}

View File

@@ -44,7 +44,6 @@ def recipe_data(name: str, slug: str, id: str, userId: str, groupId: str) -> dic
"note": "1 cup unsalted butter, cut into cubes",
"unit": None,
"food": None,
"disableAmount": True,
"quantity": 1,
"originalText": None,
"referenceId": "ea3b6702-9532-4fbc-a40b-f99917831c26",
@@ -54,7 +53,6 @@ def recipe_data(name: str, slug: str, id: str, userId: str, groupId: str) -> dic
"note": "1 cup light brown sugar",
"unit": None,
"food": None,
"disableAmount": True,
"quantity": 1,
"originalText": None,
"referenceId": "c5bbfefb-1e23-4ffd-af88-c0363a0fae82",
@@ -64,7 +62,6 @@ def recipe_data(name: str, slug: str, id: str, userId: str, groupId: str) -> dic
"note": "1/2 cup granulated white sugar",
"unit": None,
"food": None,
"disableAmount": True,
"quantity": 1,
"originalText": None,
"referenceId": "034f481b-c426-4a17-b983-5aea9be4974b",
@@ -74,7 +71,6 @@ def recipe_data(name: str, slug: str, id: str, userId: str, groupId: str) -> dic
"note": "2 large eggs",
"unit": None,
"food": None,
"disableAmount": True,
"quantity": 1,
"originalText": None,
"referenceId": "37c1f796-3bdb-4856-859f-dbec90bc27e4",
@@ -84,7 +80,6 @@ def recipe_data(name: str, slug: str, id: str, userId: str, groupId: str) -> dic
"note": "2 tsp vanilla extract",
"unit": None,
"food": None,
"disableAmount": True,
"quantity": 1,
"originalText": None,
"referenceId": "85561ace-f249-401d-834c-e600a2f6280e",
@@ -94,7 +89,6 @@ def recipe_data(name: str, slug: str, id: str, userId: str, groupId: str) -> dic
"note": "1/2 cup creamy peanut butter",
"unit": None,
"food": None,
"disableAmount": True,
"quantity": 1,
"originalText": None,
"referenceId": "ac91bda0-e8a8-491a-976a-ae4e72418cfd",
@@ -104,7 +98,6 @@ def recipe_data(name: str, slug: str, id: str, userId: str, groupId: str) -> dic
"note": "1 tsp cornstarch",
"unit": None,
"food": None,
"disableAmount": True,
"quantity": 1,
"originalText": None,
"referenceId": "4d1256b3-115e-4475-83cd-464fbc304cb0",
@@ -114,7 +107,6 @@ def recipe_data(name: str, slug: str, id: str, userId: str, groupId: str) -> dic
"note": "1 tsp baking soda",
"unit": None,
"food": None,
"disableAmount": True,
"quantity": 1,
"originalText": None,
"referenceId": "64627441-39f9-4ee3-8494-bafe36451d12",
@@ -124,7 +116,6 @@ def recipe_data(name: str, slug: str, id: str, userId: str, groupId: str) -> dic
"note": "1/2 tsp salt",
"unit": None,
"food": None,
"disableAmount": True,
"quantity": 1,
"originalText": None,
"referenceId": "7ae212d0-3cd1-44b0-899e-ec5bd91fd384",
@@ -134,7 +125,6 @@ def recipe_data(name: str, slug: str, id: str, userId: str, groupId: str) -> dic
"note": "1 cup cake flour",
"unit": None,
"food": None,
"disableAmount": True,
"quantity": 1,
"originalText": None,
"referenceId": "06967994-8548-4952-a8cc-16e8db228ebd",
@@ -144,7 +134,6 @@ def recipe_data(name: str, slug: str, id: str, userId: str, groupId: str) -> dic
"note": "2 cups all-purpose flour",
"unit": None,
"food": None,
"disableAmount": True,
"quantity": 1,
"originalText": None,
"referenceId": "bdb33b23-c767-4465-acf8-3b8e79eb5691",
@@ -154,7 +143,6 @@ def recipe_data(name: str, slug: str, id: str, userId: str, groupId: str) -> dic
"note": "2 cups peanut butter chips",
"unit": None,
"food": None,
"disableAmount": True,
"quantity": 1,
"originalText": None,
"referenceId": "12ba0af8-affd-4fb2-9cca-6f1b3e8d3aef",
@@ -164,7 +152,6 @@ def recipe_data(name: str, slug: str, id: str, userId: str, groupId: str) -> dic
"note": "1½ cups Reese's Pieces candies",
"unit": None,
"food": None,
"disableAmount": True,
"quantity": 1,
"originalText": None,
"referenceId": "4bdc0598-a3eb-41ee-8af0-4da9348fbfe2",
@@ -173,7 +160,7 @@ def recipe_data(name: str, slug: str, id: str, userId: str, groupId: str) -> dic
"dateAdded": "2022-09-03",
"dateUpdated": "2022-09-10T15:18:19.866085",
"createdAt": "2022-09-03T18:31:17.488118",
"updateAt": "2022-09-10T15:18:19.869630",
"updatedAt": "2022-09-10T15:18:19.869630",
"recipeInstructions": [
{
"id": "60ae53a3-b3ff-40ee-bae3-89fea0b1c637",
@@ -221,7 +208,6 @@ def recipe_data(name: str, slug: str, id: str, userId: str, groupId: str) -> dic
"showAssets": False,
"landscapeView": False,
"disableComments": False,
"disableAmount": True,
"locked": False,
},
"assets": [],

View File

@@ -0,0 +1,75 @@
import glob
import json
import pathlib
def get_seed_locale_names() -> set[str]:
"""Find all locales in the seed/resources/ folder
Returns:
A set of every file name where there's both a seed label and seed food file
"""
LABELS_PATH = "/workspaces/mealie/mealie/repos/seed/resources/labels/locales/"
FOODS_PATH = "/workspaces/mealie/mealie/repos/seed/resources/foods/locales/"
label_locales = glob.glob("*.json", root_dir=LABELS_PATH)
foods_locales = glob.glob("*.json", root_dir=FOODS_PATH)
# ensure that a locale has both a label and a food seed file
return set(label_locales).intersection(foods_locales)
def get_labels_from_file(locale: str) -> list[str]:
"""Query a locale to get all of the labels so that they can be added to the new foods seed format
Returns:
All of the labels found within the seed file for a given locale
"""
locale_path = pathlib.Path("/workspaces/mealie/mealie/repos/seed/resources/labels/locales/" + locale)
label_names = [label["name"] for label in json.loads(locale_path.read_text(encoding="utf-8"))]
return label_names
def transform_foods(locale: str):
"""
Convert the current food seed file for a locale into a new format which maps each food to a label
Existing format of foods seed file is a dictionary where each key is a food name and the values are a dictionary
of attributes such as name and plural_name
New format maps each food to a label. The top-level dictionary has each key as a label e.g. "Fruits".
Each label key as a value that is a dictionary with an element called "foods"
"Foods" is a dictionary of each food for that label, with a key of the english food name e.g. "baking-soda"
and a value of attributes, including the translated name of the item e.g. "bicarbonate of soda" for en-GB.
"""
locale_path = pathlib.Path("/workspaces/mealie/mealie/repos/seed/resources/foods/locales/" + locale)
with open(locale_path, encoding="utf-8") as infile:
data = json.load(infile)
first_value = next(iter(data.values()))
if isinstance(first_value, dict) and "foods" in first_value:
# Locale is already in the new format, skipping transformation
return
transformed_data = {"": {"foods": dict(data.items())}}
# Seeding for labels now pulls from the foods file and parses the labels from there (as top-level keys),
# thus we need to add all of the existing labels to the new food seed file and give them an empty foods dictionary
label_names = get_labels_from_file(locale)
for label in label_names:
transformed_data[label] = {"foods": {}}
with open(locale_path, "w", encoding="utf-8") as outfile:
json.dump(transformed_data, outfile, indent=4, ensure_ascii=False)
def main():
for locale in get_seed_locale_names():
transform_foods(locale)
if __name__ == "__main__":
main()

View File

@@ -1,8 +1,12 @@
FROM node:16 as builder
###############################################
# Frontend Build
###############################################
FROM node:24@sha256:20988bcdc6dc76690023eb2505dd273bdeefddcd0bde4bfd1efe4ebf8707f747 \
AS frontend-builder
WORKDIR /app
WORKDIR /frontend
COPY ./frontend .
COPY frontend .
RUN yarn install \
--prefer-offline \
@@ -17,7 +21,8 @@ RUN yarn generate
###############################################
# Base Image - Python
###############################################
FROM python:3.10-slim as python-base
FROM python:3.12-slim@sha256:2267adc248a477c1f1a852a07a5a224d42abe54c28aafa572efa157dfb001bba \
AS python-base
ENV MEALIE_HOME="/app"
@@ -26,14 +31,10 @@ ENV PYTHONUNBUFFERED=1 \
PIP_NO_CACHE_DIR=off \
PIP_DISABLE_PIP_VERSION_CHECK=on \
PIP_DEFAULT_TIMEOUT=100 \
POETRY_HOME="/opt/poetry" \
POETRY_VIRTUALENVS_IN_PROJECT=true \
POETRY_NO_INTERACTION=1 \
PYSETUP_PATH="/opt/pysetup" \
VENV_PATH="/opt/pysetup/.venv"
VENV_PATH="/opt/mealie"
# prepend poetry and venv to path
ENV PATH="$POETRY_HOME/bin:$VENV_PATH/bin:$PATH"
# prepend venv to path
ENV PATH="$VENV_PATH/bin:$PATH"
# create user account
RUN useradd -u 911 -U -d $MEALIE_HOME -s /bin/bash abc \
@@ -41,43 +42,76 @@ RUN useradd -u 911 -U -d $MEALIE_HOME -s /bin/bash abc \
&& mkdir $MEALIE_HOME
###############################################
# Builder Image
# Backend Package Build
###############################################
FROM python-base as builder-base
FROM python-base AS backend-builder
RUN apt-get update \
&& apt-get install --no-install-recommends -y \
curl \
&& rm -rf /var/lib/apt/lists/*
RUN pip install uv
WORKDIR /mealie
# copy project files here to ensure they will be cached.
COPY uv.lock pyproject.toml ./
COPY mealie ./mealie
# Copy frontend to package it into the wheel
COPY --from=frontend-builder /frontend/dist ./mealie/frontend
# Build the source and binary package
RUN uv build --out-dir dist
# Create the requirements file, which is used to install the built package and
# its pinned dependencies later. mealie is included to ensure the built one is
# what's installed.
RUN uv export --no-editable --no-emit-project --extra pgsql --format requirements-txt --output-file dist/requirements.txt \
&& MEALIE_VERSION=$(python -c "import tomllib; print(tomllib.load(open('pyproject.toml', 'rb'))['project']['version'])") \
&& echo "mealie[pgsql]==${MEALIE_VERSION} \\" >> dist/requirements.txt \
&& pip hash dist/mealie-${MEALIE_VERSION}-py3-none-any.whl | tail -n1 | tr -d '\n' >> dist/requirements.txt \
&& echo " \\" >> dist/requirements.txt \
&& pip hash dist/mealie-${MEALIE_VERSION}.tar.gz | tail -n1 >> dist/requirements.txt
###############################################
# Package Container
# Only role is to hold the packages, or be overriden by a --build-context flag.
###############################################
FROM scratch AS packages
COPY --from=backend-builder /mealie/dist /
###############################################
# Python Virtual Environment Build
###############################################
# Install packages required to build the venv, in parallel to building the wheel
FROM python-base AS venv-builder-base
RUN apt-get update \
&& apt-get install --no-install-recommends -y \
build-essential \
libpq-dev \
libwebp-dev \
# LDAP Dependencies
libsasl2-dev libldap2-dev libssl-dev \
gnupg gnupg2 gnupg1 \
&& rm -rf /var/lib/apt/lists/* \
&& pip install -U --no-cache-dir pip
&& rm -rf /var/lib/apt/lists/*
RUN python3 -m venv --upgrade-deps $VENV_PATH
# install poetry - respects $POETRY_VERSION & $POETRY_HOME
ENV POETRY_VERSION=1.3.1
RUN curl -sSL https://install.python-poetry.org | python3 -
# Install the wheel and all dependencies into the venv
FROM venv-builder-base AS venv-builder
# copy project requirement files here to ensure they will be cached.
WORKDIR $PYSETUP_PATH
COPY ./poetry.lock ./pyproject.toml ./
# Copy built package (wheel) and its dependency requirements
COPY --from=packages * /dist/
# install runtime deps - uses $POETRY_VIRTUALENVS_IN_PROJECT internally
RUN poetry install -E pgsql --only main
###############################################
# CRFPP Image
###############################################
FROM hkotel/crfpp as crfpp
RUN echo "crfpp-container"
# Install the wheel with exact versions of dependencies into the venv
RUN . $VENV_PATH/bin/activate \
&& pip install --require-hashes -r /dist/requirements.txt --find-links /dist
###############################################
# Production Image
###############################################
FROM python-base as production
FROM python-base AS production
LABEL org.opencontainers.image.source="https://github.com/mealie-recipes/mealie"
ENV PRODUCTION=true
ENV TESTING=false
@@ -89,48 +123,26 @@ RUN apt-get update \
gosu \
iproute2 \
libldap-common \
libldap-2.5 \
libldap2 \
&& rm -rf /var/lib/apt/lists/*
# copying poetry and venv into image
COPY --from=builder-base $POETRY_HOME $POETRY_HOME
COPY --from=builder-base $PYSETUP_PATH $PYSETUP_PATH
# create directory used for Docker Secrets
RUN mkdir -p /run/secrets
ENV LD_LIBRARY_PATH=/usr/local/lib
COPY --from=crfpp /usr/local/lib/ /usr/local/lib
COPY --from=crfpp /usr/local/bin/crf_learn /usr/local/bin/crf_learn
COPY --from=crfpp /usr/local/bin/crf_test /usr/local/bin/crf_test
# Copy venv into image. It contains a fully-installed mealie backend and frontend.
COPY --from=venv-builder $VENV_PATH $VENV_PATH
# copy backend
COPY ./mealie $MEALIE_HOME/mealie
COPY ./poetry.lock ./pyproject.toml $MEALIE_HOME/
COPY ./gunicorn_conf.py $MEALIE_HOME
# Alembic
COPY ./alembic $MEALIE_HOME/alembic
COPY ./alembic.ini $MEALIE_HOME/
# venv already has runtime deps installed we get a quicker install
WORKDIR $MEALIE_HOME
RUN . $VENV_PATH/bin/activate && poetry install -E pgsql --only main
WORKDIR /
# Grab CRF++ Model Release
RUN python $MEALIE_HOME/mealie/scripts/install_model.py
# install nltk data for the ingredient parser
ENV NLTK_DATA="/nltk_data/"
RUN mkdir -p $NLTK_DATA
RUN python -m nltk.downloader -d $NLTK_DATA averaged_perceptron_tagger_eng
VOLUME [ "$MEALIE_HOME/data/" ]
ENV APP_PORT=9000
EXPOSE ${APP_PORT}
HEALTHCHECK CMD python $MEALIE_HOME/mealie/scripts/healthcheck.py || exit 1
# ----------------------------------
# Copy Frontend
# copying caddy into image
ENV STATIC_FILES=/spa/static
COPY --from=builder /app/dist ${STATIC_FILES}
HEALTHCHECK CMD python -m mealie.scripts.healthcheck || exit 1
ENV HOST 0.0.0.0

View File

@@ -1,4 +1,3 @@
version: "3.4"
services:
mailpit:
image: axllent/mailpit:latest

View File

@@ -1,4 +1,3 @@
version: "3.4"
services:
mealie:
container_name: mealie
@@ -14,6 +13,7 @@ services:
- 9091:9000
environment:
ALLOW_SIGNUP: "false"
LOG_LEVEL: "DEBUG"
DB_ENGINE: sqlite # Optional: 'sqlite', 'postgres'
# =====================================
@@ -23,13 +23,6 @@ services:
POSTGRES_SERVER: postgres
POSTGRES_PORT: 5432
POSTGRES_DB: mealie
# =====================================
# Web Concurrency
WEB_GUNICORN: "false"
WORKERS_PER_CORE: 0.5
MAX_WORKERS: 1
WEB_CONCURRENCY: 1
# =====================================
# Email Configuration
# SMTP_HOST=

View File

@@ -32,21 +32,51 @@ init() {
cd /app
# Activate our virtual environment here
. /opt/pysetup/.venv/bin/activate
. /opt/mealie/bin/activate
}
# Initialize Database Prerun
poetry run python /app/mealie/db/init_db.py
load_secrets() {
# Each of these environment variables will support a `_FILE` suffix that allows
# for setting the environment variable through the Docker Compose secret
# pattern.
local -a secret_supported_vars=(
"POSTGRES_USER"
"POSTGRES_PASSWORD"
"POSTGRES_SERVER"
"POSTGRES_PORT"
"POSTGRES_DB"
"POSTGRES_URL_OVERRIDE"
"SMTP_HOST"
"SMTP_PORT"
"SMTP_USER"
"SMTP_PASSWORD"
"LDAP_SERVER_URL"
"LDAP_QUERY_PASSWORD"
"OIDC_CONFIGURATION_URL"
"OIDC_CLIENT_ID"
"OIDC_CLIENT_SECRET"
"OPENAI_BASE_URL"
"OPENAI_API_KEY"
)
# If any secrets are set, prefer them over base environment variables.
for var in "${secret_supported_vars[@]}"; do
file_var="${var}_FILE"
if [ -n "${!file_var}" ]; then
export "$var=$(<"${!file_var}")"
fi
done
}
change_user
init
GUNICORN_PORT=${API_PORT:-9000}
load_secrets
# Start API
hostip=`/sbin/ip route|awk '/default/ { print $3 }'`
if [ "$WEB_GUNICORN" = 'true' ]; then
echo "Starting Gunicorn"
exec gunicorn mealie.app:app -b 0.0.0.0:$GUNICORN_PORT --forwarded-allow-ips=$hostip -k uvicorn.workers.UvicornWorker -c /app/gunicorn_conf.py --preload
else
exec uvicorn mealie.app:app --host 0.0.0.0 --forwarded-allow-ips=$hostip --port $GUNICORN_PORT
fi
HOST_IP=`/sbin/ip route|awk '/default/ { print $3 }'`
exec mealie

View File

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

View File

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

View File

Binary file not shown.

After

Width:  |  Height:  |  Size: 105 KiB

View File

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

View File

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

View File

@@ -0,0 +1,386 @@
{
"name": "Mealie Backup",
"nodes": [
{
"parameters": {
"rule": {
"interval": [
{}
]
}
},
"id": "2ec440b4-0668-4bc0-aa66-4023d6379f28",
"name": "Schedule Trigger",
"type": "n8n-nodes-base.scheduleTrigger",
"typeVersion": 1.1,
"position": [
240,
660
]
},
{
"parameters": {
"method": "POST",
"url": "https://mealie.example/api/admin/backups",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"options": {}
},
"id": "235f26f7-0f45-479e-a7e3-bf8cda7c8426",
"name": "Run Backup ",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.1,
"position": [
520,
520
],
"notesInFlow": false,
"credentials": {
"httpHeaderAuth": {
"id": "GSL12tNi3MPvTZux",
"name": "Mealie API"
}
},
"notes": "Send an API call to run the backup"
},
{
"parameters": {
"method": "POST",
"url": "https://ntfy.example/backups",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "Title",
"value": "Meale Backup Failure"
},
{
"name": "Priority",
"value": "urgent"
},
{
"name": "Tags",
"value": "warning"
},
{
"name": "Actions",
"value": "view, Open Mealie, https://mealie.example/admin/backups; view, Open n8n, https://n8n.example"
}
]
},
"sendBody": true,
"contentType": "raw",
"body": "\"Full Panic!\"",
"options": {}
},
"id": "40ba81a5-5741-4b15-98af-1a9e6b34f997",
"name": "Ntfy Warning",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.1,
"position": [
1000,
520
],
"onError": "continueRegularOutput"
},
{
"parameters": {
"url": "https://mealie.example/api/admin/backups",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"options": {}
},
"id": "b75571d0-d926-440c-897f-55b89c6a5080",
"name": "Get all backups",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.1,
"position": [
520,
820
],
"credentials": {
"httpHeaderAuth": {
"id": "GSL12tNi3MPvTZux",
"name": "Mealie API"
}
}
},
{
"parameters": {
"fieldToSplitOut": "imports",
"options": {}
},
"id": "943d0e83-682b-4500-9faf-53284cfb02c6",
"name": "Split Out",
"type": "n8n-nodes-base.splitOut",
"typeVersion": 1,
"position": [
720,
820
]
},
{
"parameters": {
"jsCode": "// Get input data\nconst inputData = items.map(item => item.json);\n\n// Sort the data based on the 'date' field in descending order\ninputData.sort((a, b) => new Date(b.date) - new Date(a.date));\n\n// Get all records except the latest 7\nconst allExceptLatest7 = inputData.slice(7);\n\n// Map the output data back to the required format\nreturn allExceptLatest7.map(record => ({ json: record }));\n"
},
"id": "64eae81d-fdb6-44f7-9a2d-eff8d1763281",
"name": "Code",
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
860,
820
]
},
{
"parameters": {
"method": "DELETE",
"url": "=https://mealie.example/api/admin/backups/{{ $json.name }}",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"options": {}
},
"id": "1148eeb8-4860-46df-8f61-0e85ea1e0e89",
"name": "Delete Oldies",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.1,
"position": [
1040,
820
],
"credentials": {
"httpHeaderAuth": {
"id": "GSL12tNi3MPvTZux",
"name": "Mealie API"
}
}
},
{
"parameters": {
"content": "Sends API Call to run backup",
"height": 225,
"width": 226,
"color": 4
},
"id": "cd2cb5db-87c1-40d8-a746-e61ace231987",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
460,
460
]
},
{
"parameters": {
"content": "Is there an error?",
"height": 225,
"width": 231,
"color": 3
},
"id": "0bebecbe-903e-4a69-bb1a-35619e68b540",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
700,
460
]
},
{
"parameters": {
"content": "Send alert to NTFY",
"height": 225,
"width": 229
},
"id": "0b732adb-8a84-456d-b26d-5fc5ee5a4cae",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
940,
460
]
},
{
"parameters": {
"content": "Gets all backups in Mealie",
"height": 225,
"width": 226,
"color": 4
},
"id": "99c6886b-6a07-4b51-b395-d4bbcbde7d18",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
460,
760
]
},
{
"parameters": {
"content": "Splits the data, and parses the output",
"height": 225,
"width": 281
},
"id": "549555f8-0aed-42c0-9693-9c0d93902796",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
700,
760
]
},
{
"parameters": {
"content": "Deletes all but the last 7 backups",
"height": 225,
"width": 229
},
"id": "bcc5f0ba-73e9-42d7-b01b-c32f9f69f2f7",
"name": "Sticky Note5",
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
1000,
760
]
},
{
"parameters": {
"content": "Run every day a 01:00",
"height": 225,
"width": 226,
"color": 4
},
"id": "ce797062-d727-43e3-a27f-e29b13ad3c9a",
"name": "Sticky Note6",
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
180,
600
]
},
{
"parameters": {
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict"
},
"conditions": [
{
"id": "8b00bb85-827f-4f2f-813e-db0d25e927d3",
"leftValue": "={{ $json.error }}",
"rightValue": "",
"operator": {
"type": "boolean",
"operation": "true",
"singleValue": true
}
}
],
"combinator": "and"
},
"options": {}
},
"id": "fefd3e8b-9b71-490a-82e3-25e5468a4135",
"name": "Error?",
"type": "n8n-nodes-base.filter",
"typeVersion": 2,
"position": [
760,
520
]
}
],
"pinData": {},
"connections": {
"Schedule Trigger": {
"main": [
[
{
"node": "Run Backup ",
"type": "main",
"index": 0
},
{
"node": "Get all backups",
"type": "main",
"index": 0
}
]
]
},
"Run Backup ": {
"main": [
[
{
"node": "Error?",
"type": "main",
"index": 0
}
]
]
},
"Get all backups": {
"main": [
[
{
"node": "Split Out",
"type": "main",
"index": 0
}
]
]
},
"Split Out": {
"main": [
[
{
"node": "Code",
"type": "main",
"index": 0
}
]
]
},
"Code": {
"main": [
[
{
"node": "Delete Oldies",
"type": "main",
"index": 0
}
]
]
},
"Error?": {
"main": [
[
{
"node": "Ntfy Warning",
"type": "main",
"index": 0
}
]
]
}
},
"active": false,
"settings": {
"executionOrder": "v1"
},
"versionId": "68e3e469-3ddb-4838-b09d-3c69fdd851f5",
"meta": {
"templateCredsSetupCompleted": true,
"instanceId": "630eefaa8c490b9c5221d83a182af6450c2c3efaf4b580b8ac348631abfe1aeb"
},
"id": "whloxeXkdBWWi2Uj",
"tags": []
}

View File

@@ -1,3 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24">
<path fill="rgb(229,131,37)" d="M14,3V5H17.59L7.76,14.83L9.17,16.24L19,6.41V10H21V3M19,19H5V5H12V3H5C3.89,3 3,3.9 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V12H19V19Z" />
</svg>
</svg>

Before

Width:  |  Height:  |  Size: 259 B

After

Width:  |  Height:  |  Size: 260 B

View File

@@ -1,88 +0,0 @@
# v0.1.0 - Initial Beta
### Bug Fixes
- Fixed Can't delete recipe after changing name - Closes Closes #67
- Fixed No image when added by URL, and can't add an image - Closes Closes #66
- Fixed Images saved with no way to delete when add recipe via URL fails - Closes Closes #43
### Features
- Additional Language Support
- Improved deployment documentation
- Additional database! SQlite is now supported! - Closes #48
- All site data is now backed up.
- Support for Prep Time, Total Time, and Cook Time field - Closes #63
- New backup import process with support for themes and site settings
- **BETA** ARM support! - Closes #69
### Code / Developer Improvements
- Unified Database Access Layers
- Poetry / pyproject.toml support over requirements.txt
- Local development without database is now possible!
- Local mkdocs server added to docker-compose.dev.yml
- Major code refactoring to support new database layer
- Global variable refactor
### Breaking Changes
- Internal docker port is now 80 instead of 9000. You MUST remap the internal port to connect to the UI.
!!! error "Breaking Changes"
As I've adopted the SQL database model I find that using 2 different types of databases will inevitably hinder development. As such after release v0.1.0 support for mongoDB will no longer be available. Prior to upgrading to v0.2.0 you will need to export your site and import after updating. This should be a painless process and require minimal intervention on the users part. Moving forward we will do our best to minimize changes that require user intervention like this and make updates a smooth process.
## v0.0.2 - Pre-release Second Patch
A quality update with major props to [zackbcom](https://github.com/zackbcom) for working hard on making the theming just that much better!
### Bug Fixes
- Fixed empty backup failure without markdown template
- Fixed opacity issues with marked steps - [mtoohey31](https://github.com/mtoohey31)
- Fixed hot-reloading development environment - [grssmnn](https://github.com/grssmnn)
- Fixed recipe not saving without image - Closes #7 + Closes #54
- Fixed parsing error on image property null - Closes #43
### General Improvements
- Added Confirmation component to deleting recipes - [zackbcom](https://github.com/zackbcom)
- Updated Theme backend - [zackbcom](https://github.com/zackbcom)
- Added Persistent storage to vuex - [zackbcom](https://github.com/zackbcom)
- General Color/Theme Improvements
- More consistent UI
- More minimalist coloring
- Added API key extras to Recipe Data - [See Documentation](/api/api-usage/)
- Users can now add custom json key/value pairs to all recipes via the editor for access in 3rd part applications. For example users can add a "message" field in the extras that can be accessed on API calls to play a message over google home.
- Improved image rendering (nearly x2 speed)
- Improved documentation + API Documentation
- Improved recipe parsing - Closes #51
- User feedback on backup importing
## v0.0.1 - Pre-release Patch
### General
- Updated Favicon
- Renamed Frontend Window
- Added Debug folder to dump scraper data prior to processing.
### Recipes
- Added user feedback on bad URL
- Better backend data validation for updating recipes, avoid small syntax errors corrupting database entry. [Closes #8](https://github.com/mealie-recipes/mealie/issues/8)
- Fixed spacing Closes while editing new recipes in JSON
## v0.0.0 - Initial Pre-release
The initial pre-release. It should be semi-functional but does not include a lot of user feedback You may notice errors that have no user feedback and have no idea what went wrong.
### Recipes
- Automatic web scrapping for common recipe platforms
- Interactive API Documentation thanks to [FastAPI](https://fastapi.tiangolo.com/) and [Swagger](https://petstore.swagger.io/)
- UI Recipe Editor
- JSON Recipe Editor in browser
- Custom tags and categories
- Rate recipes
- Add notes to recipes
- Migration From Other Platforms
- Chowdown
### Meal Planner
- Random Meal plan generation based off categories
- Expose notes in the API to allow external applications to access relevant information for meal plans
### Database Import / Export
- Easily Import / Export your recipes from the UI
- Export recipes in markdown format for universal access
- Use the default or a custom jinja2 template

View File

@@ -1,72 +0,0 @@
# v0.2.1 - Hot Fixes!
### Features and Improvements
- Fixes upload image error when no photo was scrapped
- Fixes no last_recipe.json not updating
- Added markdown rendering for notes
- New notifications
- Minor UI improvements
- Recipe editor refactor
- Settings/Theme models refactor
### Development / Misc
- Added async file response for images, downloading files.
- Breakup recipe view component
# v0.2.0 - Now with Test!
This is, what I think, is a big release! Tons of new features and some great quality of life improvements with some additional features. You may find that I made promises to include some fixes/features in v0.2.0. The short of is I greatly underestimated the work needed to refactor the database to a usable state and integrate categories in a way that is useful for users. This shouldn't be taken as a sign that I'm dropping those feature requests or ignoring them. I felt it was better to push a release in the current state rather than drag on development to try and fulfil all of the promises I made.
!!! warning "Upgrade Process"
Database Breaks! I have not yet implemented a database migration service. As such, upgrades cannot be done by simply pulling the image. You must first export your recipes, update your deployment, and then import your recipes. This pattern is likely to be how upgrades take place prior to v1.0. After v1.0 migrations will be done automatically.
### Bug Fixes
- Remove ability to save recipe with no name
- Fixed data validation error on missing parameters
- Fixed failed database initialization at startup - Closes #98
- Fixed misaligned text on various cards
- Fixed bug that blocked opening links in new tabs - Closes #122
- Fixed router link bugs - Closes #122
- Fixed navigation on keyboard selection - Closes #139
### Features and Improvements
- 🐳 Dockerfile now 1/5 of the size!
- 🌎 UI Language Selection + Additional Supported Language
- **Home Page**
- By default your homepage will display only the recently added recipes. You can configured sections to show on the home-screen based of categories on the settings page.
- A new sidebar is now shown on the main page that lists all the categories in the database. Clicking on them navigates into a page that shows only recipes.
- Basic Sort functionality has been added. More options are on the way!
- **Meal Planner**
- Improved Search (Fuzzy Search)
- New Scheduled card support
- **Recipe Editor**
- Ingredients are now sortable via drag-and-drop
- Known categories now show up in the dropdown - Closes 83
- Initial code for data validation to prevent errors
- **Migrations**
- Card based redesign
- Upload from the UI
- Unified Chowdown / Nextcloud import process. (Removed Git as a dependency)
- **API**
- Category and Tag endpoints added
- Major Endpoint refactor
- Improved API documentation
- Link to your Local API is now on your `/settings/site`. You can use it to explore your API.
- **Style**
- Continued work on button/style unification
- Adding icons to buttons
- New Color Theme Picker UI
### Development
- Fixed Vetur config file. Autocomplete in VSCode works!
- File/Folder restructuring
- Added Prettier config
- Fixed incorrect layout code
- FastAPI Route tests for major operations - WIP (shallow testing)
### Breaking Changes
!!! error "Breaking Changes"
- API endpoints have been refactored to adhere to a more consistent standard. This is a WIP and more changes are likely to occur.
- Officially Dropped MongoDB Support
- Database Breaks! We have not yet implemented a database migration service. As such, upgrades cannot be done by simply pulling the image. You must first export your recipes, update your deployment, and then import your recipes. This pattern is likely to be how upgrades take place prior to v1.0. After v1.0 migrations will be done automatically.

View File

@@ -1,29 +0,0 @@
# v0.3.0
### Bug Fixes
- Fixed open search on `/` when in input. - Closes #174
- Error when importing recipe: KeyError: '@type' - Closes #145
- Fixed Import Issue - bhg.com - Closes #138
- Scraper not working with recipe containing HowToSection - Closes #73
### Features and Improvements
- Improved Nextcloud Imports
- Improved Recipe Parser!
- Open search with `/` hotkey!
- Database and App version are now split
- Unified and improved snackbar notifications
- New Category/Tag endpoints to filter all recipes by Category or Tag
- Category sidebar now has show/hide behavior on mobile
- Settings menu on mobile is improved
- **Meal Planner**
- You can now restrict recipe categories used for random meal-plan creation in the settings menu
- Recipe picker dialog will now display recipes when the search bar is empty
- Minor UI improvements
- **Shopping lists!** Shopping list can now be generated from a meal plan. Currently ingredients are split by recipes or there is a beta feature that attempts to sort them by similarity.
- **Recipe Viewer**
- Categories, Tags, and Notes will now be displayed below the steps on smaller screens
- **Recipe Editor**
- Text areas now auto grow to fit content
- Description, Steps, and Notes support Markdown! This includes inline html in Markdown.
- **Imports**
- A revamped dialog has been created to provide more information on restoring backups. Exceptions on the backend are now sent to the frontend and are easily viewable to see what went wrong when you restored a backup. This functionality will be ported over to the migrations in a future release.

View File

@@ -1,86 +0,0 @@
# v0.4.0 Whoa, What a Release!
**App Version: v0.4.0**
**Database Version: v0.4.0**
## Breaking Changes
!!! error "Breaking Changes"
#### Database
A new database will be created. You must export your data and then import it after upgrading.
#### Site Settings
With the addition of group settings and a re-write of the database layer of the application backend, there is no migration path for your current site settings. Webhooks Settings, Meal Plan Categories are now managed by groups. Site settings, mainly homepage settings, are now site specific and managed by administrators. When upgrading be sure to uncheck the settings when importing your old data.
#### ENV Variables
Names have been changed to be more consistent with industry standards. See the [Installation Page](/mealie/getting-started/install/) for new parameters.
## Bug Fixes
- Fixed Search Results Limited to 100 - #198
- Fixed recipes from marmiton.org not fully scrapped - #196
- Fixed Unable to get a page to load - #194
- Fixed Recipe's from Epicurious don't upload. - #193
- Fixed Edited blank recipe in meal plan is not saved - #184
- Fixed Create a new meal plan allows selection of an end date that is prior to the start date - #183
- Fixed Original URL not saved to imported recipe in 0.3.0-dev - #183
- Fixed "IndexError: list index out of range" when viewing shopping list for meal plan containing days without a recipe selected - #178
## Features and Improvements
### General
- Documentation Rewrite
- [New Demo Site!](https://mealie-demo.hay-kot.dev/)
- New Documentation
- Landing Page
- Custom Caddy Configuration
- User Management
- Introduction
- Updated Documentation
- Everything!
- The API Reference is now better embedded inside of the docs
- New default external port in documentation (Port 9000 -> 9925). This is only the port exposed by the host to the docker image. It doesn't change any existing functionality.
### User Authentication
- Authentication! Tons of stuff went into creating a flexible authentication platform for a lot of different use cases. Review the documentation for more information on how to use the authentication, and how everything works together. More complex management of recipes and user restrictions are in the works, but this is a great start! Some key features include
- Sign Up Links
- Admin and User Roles
- Password Change
- Group Management
- Create/Edit/Delete Restrictions
### Custom Pages
- You can now create custom pages that are displayed on the homepage sidebar to organize categories of recipes into pages. For example, if you have several categories that encompass "Entrée" you can group all those categories together under the "Entrée" page. See [Building Pages](/mealie/site-administration/building-pages/) for more information.
!!! tip
Note that this replaces the behavior of automatically adding categories to the sidebar.
### UI Improvements
- Completed Redesign of the Admin Panel
- Profile Pages
- Side Panel Menu
- Improved UI for Recipe Search
- Language selector is now displayed on all pages and does not require an account
### Recipe Data
- Recipe Database Refactoring. Tons of new information is now stored for recipes in the database. Not all is accessible via the UI, but it's coming.
- Nutrition Information
- calories
- fatContent
- fiberContent
- proteinContent
- sodiumContent
- sugarContent
- recipeCuisine has been added
- "categories" has been migrated to "recipeCategory" to adhere closer to the standard schema
- "tool" - a list of tools used for the recipe
### Behind the Scenes
- Removed CDN dependencies
- Database Model Refactoring
- Import/Export refactoring
- File/Folder Name Refactoring
- Development is now easier with a makefile
- Mealie is now a proper package using poetry
- Test refactoring
- Test Coverage 83% up from 75%!

View File

@@ -1,35 +0,0 @@
# v0.4.1
**App Version: v0.4.1**
**Database Version: v0.4.0**
!!! error "Breaking Changes"
#### Recipe Images
While it *shouldn't* be a breaking change, I feel it is important to note that you may experience issues with the new image migration. Recipe images are now minified, this is done on start-up, import, migration, and when a new recipe is created. The initial boot or load may be a bit slow if you have lots of recipes but you likely won't notice. What you may notice is that if your recipe slug and the image name do not match, you will encounter issues with your images showing up. This can be resolved by finding the image directory and rename it to the appropriate slug. I did fix multiple edge cases, but it is likely more exists. As always make a backup before you update!
On the plus side, this comes with a huge performance increase! 🎉
- Add markdown support for ingredients - Resolves #32
- Ingredients editor improvements
- Fix Tags/Categories render problems on recipes
- Tags redirect to new tag pages
- Categories redirect to category pages
- Fix Backup download blocked by authentication
- Random meal-planner will no longer duplicate recipes unless no other options
- New Quick Week button to generate next 5 day week of recipe slots.
- Minor UI tweaks
- Recipe Cards now display 2 recipe tags
- Recipe images are now minified. This comes with a serious performance improvement. On initial startup you may experience some delays. Images are migrated to the new structure on startup, depending on the size of your database this can take some time.
- Note that original images are still kept for large displays like on the individual recipe pages.
- A smaller image is used for recipe cards
- A 'tiny' image is used for search images.
- Advanced Search Page. You can now use the search page to filter recipes to include/exclude tags and categories as well as select And/Or matching criteria.
- Added link to advanced search on quick search
- Better support for NextCloud imports
- Translate keywords to tags
- Fix rollback on failure
- Recipe Tag/Category Input components have been unified and now share a single way to interact. To add a new category in the recipe editor you need to click to '+' icon next to the input and fill out the form. This is the same for adding a Tag.

View File

@@ -1,34 +0,0 @@
# v0.4.2
**App Version: v0.4.2**
**Database Version: v0.4.0**
!!! error "Breaking Changes"
1. With a recent refactor some users been experiencing issues with an environmental variable not being set correct. If you are experiencing issues, please provide your comments [Here](https://github.com/mealie-recipes/mealie/issues/281).
2. If you are a developer, you may experience issues with development as a new environmental variable has been introduced. Setting `PRODUCTION=false` will allow you to develop as normal.
## Bug Fixes
- Fixed Initialization script (v0.4.1a Hot Fix) - Closes #274
- Fixed nested list error on recipe scrape - Closes #306
- Fixed ingredient checkboxes - Closes #304
- Removed link on recent - Closes #297
- Categories sidebar is auto generated if no pages are created - Closes #291
- Fix tag issues on creating custom pages - Closes #290
- Validate paths on export - Closes #275
- Walk Nextcloud import directory - Closes #254
## General Improvements
- Improved Nextcloud Migration. Mealie will now walk the directories in a zip file looking for directories that match the pattern of a Nextcloud Recipe. Closes #254
- Rewrite Keywords to Tag Fields
- Rewrite url to orgURL
- Improved Chowdown Migration
- Migration report is now similar to the Backup report
- Tags/Categories are now title cased on import "dinner" -> "Dinner"
- Depreciate `ENV` variable to `PRODUCTION`
- Set `PRODUCTION` env variable to default to true
- Unify Logger across the backend
- mealie.log and last_recipe.json are now downloadable from the frontend from the /admin/about
- New download schema where you request a token and then use that token to hit a single endpoint to download a file. This is a notable change if you are using the API to download backups.
- Recipe images can now be added directly from a URL - [See #117 for details](https://github.com/mealie-recipes/mealie/issues/117)

View File

@@ -1,14 +0,0 @@
# v0.4.3
**App Version: v0.4.3**
**Database Version: v0.4.0**
## Bug Fixes
- Fix Upload error for Migrations
- Fixes #315 - Cannot select another language
- Fixes #314 - case-sensitive emails
- Fixes #312 - Profile Image Reload
## Improvements
- New TOKEN_TIME and DEFAULT_EMAIL env variables

View File

@@ -1,129 +0,0 @@
# v0.5.0 Too Many Changes!
**App Version: v0.5.0**
**Database Version: v0.5.0**
## Breaking Changes
!!! error "Breaking Changes"
#### Database
Database version has been bumped from v0.4.x -> v0.5.0. You will need to export and import your data. Moving forward, we will be using database migrations (BETA) to do this automatically. Note that you still must backup your data. If you don't, it's entirely possible something may go wrong and you could lose your data on upgrade.
#### Image Directory
the /data/img directory has been depreciated. All images are now stored in the /recipes/{slug}/image directory. Images should be migrated automatically, but you may experience issues related to this change.
#### API Usage
If you have been using the API directly, many of the routes and status codes have changed. You may experience issues with directly consuming the API.
#### Arm/v7 Support
Mealie will no longer build in CI/CD due to a issue with the rust compiler on 32 bit devices. You can reference [this issue on the matrix-org/synapse](https://github.com/matrix-org/synapse/issues/9403) Github page that are facing a similar issue. You may still be able to build the docker image you-self.
!!! warning "Potential Data Loss"
With this release comes a major rework of how files are stored on disk and where things belong. Migration of files should be done automatically. We have tested extensively with many different backups and user bases and have found that no one experienced data-loss. HOWEVER, with all the major changes that have occurred, it is vital that to prevent any data-loss you must create a backup and store that backup outside of your mealie instance. If you do not do this, you may lose your data.
## Bug Fixes
- Fixed #25 - Allow changing rating without going into edit
- Fixed #475 - trim whitespace on login
- Fixes #435 - Better Email Regex
- Fixed #428 - Meal Planner now works on iOS devices
- Fixed #419 - Typos
- Fixed #418 - You can now "export" shopping lists
- Fixed #356 - Shopping List items are now grouped
- Fixed #329 - Fixed profile image not loading
- Fixed #461 - Proper JSON serialization on webhooks
- Fixed #332 - Language settings are saved for one browser
- Fixes #281 - Slow Handling of Large Sets of Recipes
- Fixed #356 - Shopping lists generate duplicate items
- Fixed #271 - Slow handling of larger data sets
- Fixed #472, #469, #458, #456 - Improve Recipe Parser
## Features and Improvements
### Highlights
- Recipe Parser
- Recipes can now be imported with a bookmarklet!
- Significant improvement in supported sites with the new [Recipe Scraper Library](https://github.com/hhursev/recipe-scrapers)
- UI Debugging now available at `/recipes/debugger`
- Better error messages on failure
- ⚠️ last_recipe.json is now depreciated
- Beta Support for Postgres! 🎉 See the getting started page for details
- Recipe Features
- New button bar for editors with improved accessibility and performance
- Step Sections now supported
- Recipe Assets
- Add Asset image to recipe step
- Additional View Settings.
- Better print support
- New Toolbox Page!
- Bulk assign categories and tags by keyword search
- Title case all Categories or Tags with 1 click
- Create/Rename/Delete Operations for Tags/Categories
- Remove Unused Categories or Tags with 1 click
- Recipe Cards now have a menu button for quick actions!
- Edit
- Delete
- Integrated Share with supported OS/Browsers
- Print
- New Profile Dashboard!
- Edit Your Profile
- Create/Edit Themes
- View other users in your Group
- See what's for dinner
- Manage Long Live API Tokens (New)
- New Admin Dashboard! 🎉
- Now you can get some insight on your application with application statistics and events.
- See uncategorized/untagged recipes and organize them!
- Backup/Restore right from your dashboard
- See server side events. Now you can know who deleted your favorite recipe!
- New Event Notifications through the Apprise Library
- Get notified when specific server side events occur
### Meal Planner
- Multiple Recipes per day
- Supports meals without recipes (Enter title and description)
- Generate share-link from created meal-planners
- Shopping lists can be directly generated from the meal plan
### General
- User can now favorite recipes
- New 'Dark' Color Theme Packaged with Mealie
- Updated Recipe Card Sections Toolbar
- New Sort Options (They work this time!)
- Alphabetical
- Rating
- Created Date
- Updated Date
- Shuffle (Random Sort)
- New 'Random' Recipe button on recipe sections. Random recipes are selected from the filtered results below. For example, on the "Cakes" category page, you will only get recipes in the "Cakes" category.
- Rating can be updated without entering the editor - Closes #25
- Updated recipe editor styles and moved notes to below the steps.
- Redesigned search bar
- 'Dinner this week' shows a warning when no meal is planned yet
- 'Dinner today' shows a warning when no meal is planned yet
- More localization
- Start date for Week is now selectable
- Languages are now managed through Crowdin
- Application Bar was Rewritten
- Sidebar can now be toggled everywhere.
- New and improved mobile friendly bottom bar
- Improved styling for search bar in desktop
- Improved search layout on mobile
- Profile image now shown on all sidebars
- Switched from Flash Messages to Snackbar (Removed dependency)
### Performance
- Images are now served up by the Caddy increase performance and offloading some loads from the API server
- Requesting all recipes from the server has been rewritten to refresh less often and manage client side data better.
- All images are now converted to .webp for better compression
### Behind the Scenes
- The database layer has been added for future recipe scaling.
- Black and Flake8 now run as CI/CD checks
- New debian based docker image
- Unified Sidebar Components
- Refactor UI components to fit Vue best practices (WIP)
- The API returns more consistent status codes
- The API returns error code instead of error text when appropriate
- ⚠️ May cause side-effects if you were directly consuming the API

View File

@@ -1,11 +0,0 @@
# v0.5.1
**App Version: v0.5.1**
**Database Version: v0.5.0**
## Bug Fixes
- Fixed #538 - Missing Ingredients on Editor
- Fixed error on webhooks for new groups
- Fixed various icons references

View File

@@ -1,65 +0,0 @@
# v0.5.2 - DRAFT
**App Version: v0.5.2**
**Database Version: v0.5.0**
## Bug Fixes
- Fixed #617 - Section behavior when adding a step
- Fixed #615 - Recipe Settings are not available when creating new recipe
- Fixed #625 - API of today's image returns strange characters
- Fixed [#590](https://github.com/mealie-recipes/mealie/issues/590) - Duplicate Events when using Gunicorn Workers
## Features and Improvements
### General
- Recipe Instructions now collapse when checked
- Default recipe settings can be set through ENV variables
- Recipe Ingredient lists can now container ingredient sections.
- You can now download and upload individual recipes
### Localization
Huge thanks to [@sephrat](https://github.com/sephrat) for all his work on the project. He's very consistent in his contributions to the project and nearly every release has had some of his code in it! Here's some highlights from this release
- Lazy Load Translations (Huge Performance Increase!)
- Tons of localization additions all around the site.
- All of the work that goes into managing and making Crowdin a great feature the application
#### Here a list of contributors on Crowding who make Mealie possible in different locals
| Name | Languages | Translated (Words) | Target Words |
| ---------------------------- | ------------------ | :----------------: | :----------: |
| retmas-gh | Polish | 550 | 625 |
| startos | Italian | 310 | 322 |
| CMBoii | Spanish | 256 | 291 |
| sephrat | French | 255 | 296 |
| Daniel Tildeman (tildeman) | Swedish | 233 | 228 |
| Rourke | Dutch | 216 | 214 |
| Andreas Waschinski (Wascha) | German | 207 | 202 |
| wengtad | Chinese Simplified | 176 | 343 |
| Matthias Borremans (MrBorri) | Dutch | 96 | 89 |
| Adam Syndoman (pypckompsite) | Polish | 68 | 65 |
| JonasSchubert | German | 22 | 23 |
| ThrawnJL | Danish | 7 | 7 |
| NicholasBrody | Dutch | 7 | 7 |
| Giel Janssens (gieljnssns) | Dutch | 4 | 4 |
| kentora | Danish | 3 | 2 |
### Docker
#### Huge thanks to [@wengtad](https://github.com/wengtad) for all his work on improving the deployment with docker.
- Optimize Docker Dev Size (Frontend: from ~1.52GB to ~429MB | API: from ~657MB to ~380MB)
- Optimize Docker Prod Size (from ~542MB to ~373MB)
- Add Gunicorn
- Add Gunicorn and Webworkers to Dockerfile #550
- Add Docs for Gunicorn
- Add PUID/PGID to Docker. Fixes Initialization scripts fail to run when not executing as root user inside container #350,
- Not able to run correctly in docker if user permissions are specified #429
- Merge Dockerfile.dev into Dockerfile (dev shared same base together with prod)
- Add Docs for PUID/PGID
- Add Docker healthcheck (for this is not necessary, I could remove if you want)

View File

@@ -1,178 +0,0 @@
## v1.0.0b - 2022-05-22
- Bump Dependencies
- Recipe Scrapers to 13.28
- Jinja2 to 3.1.2
- FastAPI to 0.78.0
- Recipe Ingredient Editor
- [#1140](https://github.com/mealie-recipes/mealie/issues/1140) - Error in processing the quantity of ingredients #1140 - UI Now prevents entering not-allowed characters in quantity field
- UI now allows no value to be set in addition to a zero (0) value.
- [#1237](https://github.com/mealie-recipes/mealie/issues/1237) - UI: Saving a 0 quantity ingredient displays 0 until the page is refreshed #1237 - UI Now properly reacts to changes in the quantity field.
- Fix Mealie v0.5.x migration issue [#1183](https://github.com/mealie-recipes/mealie/issues/1183)
- Consolidated Frontend Types thanks to [@PFischbeck](https://github.com/Fischbeck)
- Added support for SSL/No Auth Email [@nkringle](https://github.com/nkringle)
- [Implement several notifications for server actions ](https://github.com/mealie-recipes/mealie/pull/1234)[@miroito](https://github.com/Miroito)
- Fix display issue for shared recipe rendering on server [@PFischbeck](https://github.com/Fischbeck)
## v1.0.0b - 2022-05-09
- Change MIT license to AGPLv3
## v1.0.0b - 2022-05-08
- Rewrote the registration flow for new users.
- Added support for seed data at anytime through the user interface.
- Improved security for sanitizing HTML inputs for user input.
- Added support for importing keywords as tags during scraping - [@miroito](https://github.com/Miroito)
- Changed default recipe settings to "disable_amount=True" for new groups.
- Add support for merging food, and units.
- Allow tags, category, and tool creation - [@miroito](https://github.com/Miroito)
- Added additional and more comprehensive filter options for cookbooks
- Fixed bookmarklets error
## v1.0.0b - 2022-03-29
- Mealie now stores the original text from parsed ingredients, with the ability to peak at the original text from a recipe. [@miroito](https://github.com/Miroito)
- Added some management / utility functions for administrators to manage data and cleanup artifacts from the file system.
- Fix clear url action in recipe creation [#1101](https://github.com/mealie-recipes/mealie/pull/1101) [@miroito](https://github.com/Miroito)
- Add group statistics calculations and data storage measurements
- No hard limits are currently imposed on groups - though this may be implemented in the future.
## v1.0.0b - 2022-03-25
- Mealie now packages the last git commit as the build ID
- Admin section now has a "Maintenance" page where you can check some health metrics like data directory size, logs file size, and if there are some non compliant directories or images. You can also perform clean-up operations to resolve some of these issues.
- Dropped 2 dependencies and moved to using our own base model within the project
- Removed lots of dead backup code
- Recipe names will now be auto-incremented when a conflict is found. So if you're adding a recipe named "Tomato Soup" and that recipe name already exists in your database one will be created with the name "Tomato Soup (1)". Currently this is done in a loop until a suitable name is found, however it will error out after 10 attempts so it's best to find a more descriptive name for your recipe.
- Fixed broken PWA where it wouldn't render any content
- Added database connection retry loop to ensure that the database is available prior to starting
- Reorganized group routes to be more consistent with the rest of the application
## v1.0.0b Beta Release!
!!! error "Breaking Changes"
As you may have guessed, this release comes with some breaking changes. If you are/were consuming the API you will need to validate all endpoints as nearly all of them have changed.
To import your data into Mealie v1 from the most recent previous release, you'll need to export and import your data using the built in method. **Note that only your recipes will be usable in the migration**.
### ✨ What's New (What isn't?!?!)
#### 🥳 General
- Mealie will by default only be accessible to users. Future plans are to create spaces for non-users to access a specific group.
- Mealie has gone through a big redesign and has tried to standardize it's look a feel a bit more across the board.
- User/Group settings are now completely separated from the Administration page.
- All settings and configurations pages now have some sort of self-documenting help text. Additional text or descriptions are welcome from PRs
- New experimental banner for the site to give users a sense of what features are still "in development" and provide a link to a github issue that provides additional context.
- Groups now offer full multi-tenant support so you can all groups have their own set of data.
##### ⚙️ Site Settings Page
- Site Settings has been completely revamped. All site-wide settings at defined on the server as ENV variables. The site settings page now only shows you the non-secret values for reference. It also has some helpers to let you know if something isn't configured correctly.
- Server Side Bare URL will let you know if the BASE_URL env variable has been set
- Secure Site let's you know if you're serving via HTTPS or accessing by localhost. Accessing without a secure site will render some of the features unusable.
- Email Configuration Status will let you know if all the email settings have been provided and offer a way to send test emails.
#### 👨‍👩‍👧‍👦 Users and Groups
- All members of a group can generate invitation tokens for other users to join their group
- Users now a have "Advanced" setting to enable/disable features like Webhooks and API tokens. This will also apply to future features that are deemed as advanced.
- "Pages" have been dropped in favor of Cookbooks which are now group specific so each group can have it's own set of cookbooks
- Default recipe settings can now be set by the group instead of environmental variables.
- Password reset via email
- Invitation to group by email
- Manage group member permissions
#### 📦 Data Migrations
- Migrations have been moved from the Admin Page to a Group Migration page. Migrations from applications (or previous versions of Mealie) can now be imported into Mealie via the Group Migration pages where all recipes will be imported into the group.
- **Supported Migrations**
- Mealie Pre v1.0.0
- Nextcloud Recipes
- Chowdown
#### 🛒 Shopping Lists
- Shopping Lists has been completely revamped to be more flexible and user friendly.
- Add recipe ingredients to a shopping list
- Manually add item/ingredient to shopping list
- Copy as markdown or plain text
- Sort by food/item Labels
- Checked items are now hidden
- Uncheck all Items
- Delete all checked items
#### 📢 Apprise Integration
- Server based Apprise notifications have been deprecated. An effort has been made to improve logging overall in the application and make it easier to monitor/debug through the logs.
- The Apprise integration has been updated to the latest version and is now used asynchronously.
- Notifiers now support a wider variety of events.
- Notifiers can now be managed by-group instead of by the server.
#### 🗓 Meal Plans
- Meal plans have been completely redesigned to use a calendar approach so you'll be able to see what meals you have planned in a more traditional view
- Drag and Drop meals between days
- Add Recipes or Notes to a specific day
- New context menu action for recipes to add a recipe to a specific day on the meal-plan
- New rule based meal plan generator/selector. You can now create rules to restrict the addition of recipes for specific days or meal types (breakfast, lunch, dinner, side). You can also create rules that match against "all" days or "all" meal types to create global rules based around tags and categories. This gives you the most flexibility in creating meal plans.
#### 🥙 Recipes
##### 🔍 Search
- Search now includes the ability to fuzzy search ingredients
- Search now includes an additional filter for "Foods" which will filter (Include/Exclude) matches based on your selection.
##### 🍴 Recipe General
- Recipe Pages now implement a screen lock on supported devices to keep the screen from going to sleep.
- Recipes are now only viewable by group members
- Recipes can be shared with share links
- Shared recipes can now render previews for the recipe on sites like Twitter, Facebook, and Discord.
- Recipes now have a `tools` attribute that contains a list of required tools/equipment for the recipe. Tools can be set with a state to determine if you have that tool or not. If it's marked as on hand it will show checked by default.
- Recipe Extras now only show when advanced mode is toggled on
- You can now import multiple URLs at a time pre-tagged using the bulk importer. This task runs in the background so no need to wait for it to finish.
- Foods/Units for Ingredients are now supported (toggle inside your recipe settings)
- Common Food and Units come pre-packaged with Mealie
- Landscape and Portrait views are now available
- Users with the advanced flag turned on will now be able to manage recipe data in bulk and perform the following actions:
- Set Categories
- Set Tags
- Delete Recipes
- Export Recipes
- Recipes now have a `/cook` page for a simple view of the recipe where you can click through each step of a recipe and it's associated ingredients.
- The Bulk Importer has received many additional upgrades.
- Trim Whitespace: automatically removes leading and trailing whitespace
- Trim Prefix: Removes the first character of each line. Useful for when you paste in a list of ingredients or instructions that have 1. or 2. in front of them.
- Split By Numbered Line: Attempts to split a paragraph into multiple lines based on the patterns matching '1.', '1:' or '1)'.
##### 🍞 Recipe Ingredients
- Recipe ingredients can now be scaled when the food/unit is defined
- Recipe ingredients can now be copied as markdown lists
- example `- [ ] 1 cup of flour`
- You can now use Natural Language Processing (NLP) to process ingredients and attempt to parse them into amounts, units, and foods. There is an additional "Brute Force" processor that can be used as pattern matching parser to try and determine ingredients. **Note** if you are processing a Non-English language you will have terrible results with the NLP and will likely need to use the Bruce Force processor.
##### 📜 Recipe Instructions
- Can now be merged with the above step automatically through the action menu
- Recipe Ingredients can be linked directly to recipe instructions for improved display
- There is an option in the linking dialog to automatically link ingredients. This works by using a key-word matching algorithm to find the ingredients. It's not perfect so you'll need to verify the links after use, additionally you will find that it doesn't work for non-english languages.
- Recipe Instructions now have a preview tab to show the rendered markdown before saving.
#### ⚠️ Other things to know...
- Themes have been deprecated for specific users. You can still set specific themes for your site through ENV variables. This approach should yield much better results for performance and some weirdness users have experienced.
- If you've experienced slowness in the past, you may notice a significant improvement in the "All Recipes" and "Search" pages, or wherever large payloads of recipes are being displayed. This is due to not validating responses from the database, as such if you are consuming these API's you may get extra values that are unexpected.
#### 👨‍💻 Backend/Development Goodies
- Codebase is significantly more organized both Frontend and Backend
- We've moved to Nuxt for SSR and Typescript for better type safety and less bugs 🎉
- Backend now using a Class based architecture to maximize code reuse
- Tons of performance improvements across the board
- Significant work was done by [@PFischbeck](https://github.com/PFischbeck) to improve type safety on the frontend server and fix many type related errors/bugs!

View File

@@ -1,29 +0,0 @@
### Bug Fixes
- Bump isomorphic-dompurify from 0.18.0 to 0.19.0 in /frontend ([#1257](https://github.com/mealie-recipes/mealie/issues/1257))
- Bump @nuxtjs/auth-next in /frontend ([#1265](https://github.com/mealie-recipes/mealie/issues/1265))
- Bad dev dependency ([#1281](https://github.com/mealie-recipes/mealie/issues/1281))
- Add touch support for mealplanner delete ([#1298](https://github.com/mealie-recipes/mealie/issues/1298))
### Documentation
- Add references for VSCode dev containers ([#1299](https://github.com/mealie-recipes/mealie/issues/1299))
- Docker-compose.dev.yml is currently not functional ([#1300](https://github.com/mealie-recipes/mealie/issues/1300))
### Features
- Add reports to bulk recipe import (url) ([#1294](https://github.com/mealie-recipes/mealie/issues/1294))
- Rewrite print implementation to support new ing ([#1305](https://github.com/mealie-recipes/mealie/issues/1305))
### Miscellaneous Tasks
- Github stalebot changes ([#1271](https://github.com/mealie-recipes/mealie/issues/1271))
- Bump eslint-plugin-nuxt in /frontend ([#1258](https://github.com/mealie-recipes/mealie/issues/1258))
- Bump @vue/runtime-dom in /frontend ([#1259](https://github.com/mealie-recipes/mealie/issues/1259))
- Bump nuxt-vite from 0.1.3 to 0.3.5 in /frontend ([#1260](https://github.com/mealie-recipes/mealie/issues/1260))
- Bump vue2-script-setup-transform in /frontend ([#1263](https://github.com/mealie-recipes/mealie/issues/1263))
- Update dev dependencies ([#1282](https://github.com/mealie-recipes/mealie/issues/1282))
### Refactor
- Split up recipe create page ([#1283](https://github.com/mealie-recipes/mealie/issues/1283))

View File

@@ -1,36 +0,0 @@
### Bug Fixes
- Update issue links in v1.0.0beta-2 changelog ([#1312](https://github.com/mealie-recipes/mealie/issues/1312))
- Bad import path ([#1313](https://github.com/mealie-recipes/mealie/issues/1313))
- Printer page refs ([#1314](https://github.com/mealie-recipes/mealie/issues/1314))
- Consolidate stores to fix mismatched state
- Bump @vue/composition-api from 1.6.1 to 1.6.2 in /frontend ([#1275](https://github.com/mealie-recipes/mealie/issues/1275))
- Shopping list label editor ([#1333](https://github.com/mealie-recipes/mealie/issues/1333))
### Features
- Default unit fractions to True
- Add unit abbreviation support ([#1332](https://github.com/mealie-recipes/mealie/issues/1332))
- Attached images by drag and drop for recipe steps ([#1341](https://github.com/mealie-recipes/mealie/issues/1341))
### Docs
- Render homepage social media link images at 32x32 size ([#1310](https://github.com/mealie-recipes/mealie/issues/1310))
### Miscellaneous Tasks
- Init git-cliff config
- Bump @types/sortablejs in /frontend ([#1287](https://github.com/mealie-recipes/mealie/issues/1287))
- Bump @babel/eslint-parser in /frontend ([#1290](https://github.com/mealie-recipes/mealie/issues/1290))
### Refactor
- Unify recipe-organizer components ([#1340](https://github.com/mealie-recipes/mealie/issues/1340))
### Security
- Delay server response whenever username is non existing ([#1338](https://github.com/mealie-recipes/mealie/issues/1338))
### Wip
- Pagination-repository ([#1316](https://github.com/mealie-recipes/mealie/issues/1316))

View File

@@ -1,126 +0,0 @@
### Security
#### v1.0.0beta-3 and Under - Recipe Scraper: Server Side Request Forgery Lead To Denial Of Service
!!! error "CWE-918: Server-Side Request Forgery (SSRF)"
In this case if a attacker try to load a huge file then server will try to load the file and eventually server use its all memory which will dos the server
##### Mitigation
HTML is now scraped via a Stream and canceled after a 15 second timeout to prevent arbitrary data from being loaded into the server.
#### v1.0.0beta-3 and Under - Recipe Assets: Remote Code Execution
!!! error "CWE-1336: Improper Neutralization of Special Elements Used in a Template Engine"
As a low privileged user, Create a new recipe and click on the "+" to add a New Asset.
Select a file, then proxy the request that will create the asset.
Since mealie/routes/recipe/recipe_crud_routes.py:306 is calling slugify on the name POST parameter, we use $ which slugify() will remove completely.
Since mealie/routes/recipe/recipe_crud_routes.py:306 is concatenating raw user input from the extension POST parameter into the variable file_name, which ultimately gets used when writing to disk, we can use a directory traversal attack in the extension (e.g. ./../../../tmp/pwn.txt) to write the file to arbitrary location on the server.
As an attacker, now that we have a strong attack primitive, we can start getting creative to get RCE. Since the files were being created by root, we could add an entry to /etc/passwd, create a crontab, etc. but since there was templating functionality in the application that peaked my interest. The PoC in the HTTP request above creates a Jinja2 template at /app/data/template/pwn.html. Since Jinja2 templates execute Python code when rendered, all we have to do now to get code execution is render the malicious template. This was easy enough.
##### Mitigation
We've added proper path sanitization to ensure that the user is not allowed to write to arbitrary locations on the server.
!!! warning "Breaking Change Incoming"
As this has shown a significant area of exposure in the templates that Mealie was provided for exporting recipes, we'll be removing this feature in the next Beta release and will instead rely on the community to provide tooling around transforming recipes using templates. This will significantly limit the possible exposure of users injecting malicious templates into the application. The template functionality will be completely removed in the next beta release v1.0.0beta-5
#### All version Markdown Editor: Cross Site Scripting
!!! error "CWE-79: Cross-site Scripting (XSS) - Stored"
A low privilege user can insert malicious JavaScript code into the Recipe Instructions which will execute in another person's browser that visits the recipe.
`<img src=x onerror=alert(document.domain)>`
##### Mitigation
This issues is present on all pages that allow markdown input. This error has been mitigated by wrapping the 3rd Party Markdown component and using the `domPurify` library to strip out the dangerous HTML.
#### v1.0.0beta-3 and Under - Image Scraper: Server-Side Request Forgery
!!! error "CWE-918: Server-Side Request Forgery (SSRF)"
In the recipe edit page, is possible to upload an image directly or via an URL provided by the user. The function that handles the fetching and saving of the image via the URL doesn't have any URL verification, which allows to fetch internal services.
Furthermore, after the resource is fetch, there is no MIME type validation, which would ensure that the resource is indeed an image. After this, because there is no extension in the provided URL, the application will fallback to jpg, and original for the image name.
Then the result is saved to disk with the original.jpg name, that can be retrieved from the following URL: http://<domain>/api/media/recipes/<recipe-uid>/images/original.jpg. This file will contain the full response of the provided URL.
**Impact**
An attacker can get sensitive information of any internal-only services running. For example, if the application is hosted on Amazon Web Services (AWS) platform, its possible to fetch the AWS API endpoint, https://169.254.169.254, which returns API keys and other sensitive metadata.
##### Mitigation
Two actions were taken to reduce exposure to SSRF in this case.
1. The application will not prevent requests being made to local resources by checking for localhost or 127.0.0.1 domain names.
2. The mime-type of the response is now checked prior to writing to disk.
If either of the above actions prevent the user from uploading images, the application will alert the user of what error occurred.
### Bug Fixes
- For erroneously-translated datetime config ([#1362](https://github.com/mealie-recipes/mealie/issues/1362))
- Fixed text color on RecipeCard in RecipePrintView and implemented ingredient sections ([#1351](https://github.com/mealie-recipes/mealie/issues/1351))
- Ingredient sections lost after parsing ([#1368](https://github.com/mealie-recipes/mealie/issues/1368))
- Increased float rounding precision for CRF parser ([#1369](https://github.com/mealie-recipes/mealie/issues/1369))
- Infinite scroll bug on all recipes page ([#1393](https://github.com/mealie-recipes/mealie/issues/1393))
- Fast fail of bulk importer ([#1394](https://github.com/mealie-recipes/mealie/issues/1394))
- Bump @mdi/js from 5.9.55 to 6.7.96 in /frontend ([#1279](https://github.com/mealie-recipes/mealie/issues/1279))
- Bump @nuxtjs/i18n from 7.0.3 to 7.2.2 in /frontend ([#1288](https://github.com/mealie-recipes/mealie/issues/1288))
- Bump date-fns from 2.23.0 to 2.28.0 in /frontend ([#1293](https://github.com/mealie-recipes/mealie/issues/1293))
- Bump fuse.js from 6.5.3 to 6.6.2 in /frontend ([#1325](https://github.com/mealie-recipes/mealie/issues/1325))
- Bump core-js from 3.17.2 to 3.23.1 in /frontend ([#1383](https://github.com/mealie-recipes/mealie/issues/1383))
- All-recipes page now sorts alphabetically ([#1405](https://github.com/mealie-recipes/mealie/issues/1405))
- Sort recent recipes by created_at instead of date_added ([#1417](https://github.com/mealie-recipes/mealie/issues/1417))
- Only show scaler when ingredients amounts enabled ([#1426](https://github.com/mealie-recipes/mealie/issues/1426))
- Add missing types for API token deletion ([#1428](https://github.com/mealie-recipes/mealie/issues/1428))
- Entry nutrition checker ([#1448](https://github.com/mealie-recipes/mealie/issues/1448))
- Use == operator instead of is_ for sql queries ([#1453](https://github.com/mealie-recipes/mealie/issues/1453))
- Use `mtime` instead of `ctime` for backup dates ([#1461](https://github.com/mealie-recipes/mealie/issues/1461))
- Mealplan pagination ([#1464](https://github.com/mealie-recipes/mealie/issues/1464))
- Properly use pagination for group event notifies ([#1512](https://github.com/mealie-recipes/mealie/pull/1512))
### Documentation
- Add go bulk import example ([#1388](https://github.com/mealie-recipes/mealie/issues/1388))
- Fix old link
- Pagination and filtering, and fixed a few broken links ([#1488](https://github.com/mealie-recipes/mealie/issues/1488))
### Features
- Toggle display of ingredient references in recipe instructions ([#1268](https://github.com/mealie-recipes/mealie/issues/1268))
- Add custom scaling option ([#1345](https://github.com/mealie-recipes/mealie/issues/1345))
- Implemented "order by" API parameters for recipe, food, and unit queries ([#1356](https://github.com/mealie-recipes/mealie/issues/1356))
- Implement user favorites page ([#1376](https://github.com/mealie-recipes/mealie/issues/1376))
- Extend Apprise JSON notification functionality with programmatic data ([#1355](https://github.com/mealie-recipes/mealie/issues/1355))
- Mealplan-webhooks ([#1403](https://github.com/mealie-recipes/mealie/issues/1403))
- Added "last-modified" header to supported record types ([#1379](https://github.com/mealie-recipes/mealie/issues/1379))
- Re-write get all routes to use pagination ([#1424](https://github.com/mealie-recipes/mealie/issues/1424))
- Advanced filtering API ([#1468](https://github.com/mealie-recipes/mealie/issues/1468))
- Restore frontend sorting for all recipes ([#1497](https://github.com/mealie-recipes/mealie/issues/1497))
- Implemented local storage for sorting and dynamic sort icons on the new recipe sort card ([1506](https://github.com/mealie-recipes/mealie/pull/1506))
- create new foods and units from their Data Management pages ([#1511](https://github.com/mealie-recipes/mealie/pull/1511))
### Miscellaneous Tasks
- Bump dev deps ([#1418](https://github.com/mealie-recipes/mealie/issues/1418))
- Bump @vue/runtime-dom in /frontend ([#1423](https://github.com/mealie-recipes/mealie/issues/1423))
- Backend page_all route cleanup ([#1483](https://github.com/mealie-recipes/mealie/issues/1483))
### Refactor
- Remove depreciated repo call ([#1370](https://github.com/mealie-recipes/mealie/issues/1370))
### Hotfix
- Tame typescript beast
### UI
- Improve parser ui text display ([#1437](https://github.com/mealie-recipes/mealie/issues/1437))
<!-- generated by git-cliff -->

View File

@@ -1,3 +0,0 @@
### NOTICE:
Release changelogs are now published on github releases. This file is kept for historical purposes.

View File

@@ -0,0 +1,40 @@
# Building Packages
Released packages are [built and published via GitHub actions](maintainers.md#drafting-releases).
## Python packages
To build Python packages locally for testing, use [`task`](starting-dev-server.md#without-dev-containers). After installing `task`, run `task py:package` to perform all the steps needed to build the package and a requirements file. To do it manually, run:
```sh
pushd frontend
yarnpkg install
yarnpkg generate
popd
rm -r mealie/frontend
cp -a frontend/dist mealie/frontend
uv build --out-dir dist
uv export --no-editable --no-emit-project --extra pgsql --format requirements-txt --output-file dist/requirements.txt
MEALIE_VERSION=$(python -c "import tomllib; print(tomllib.load(open('pyproject.toml', 'rb'))['project']['version'])")
echo "mealie[pgsql]==${MEALIE_VERSION} \\" >> dist/requirements.txt
pip hash dist/mealie-${MEALIE_VERSION}-py3-none-any.whl | tail -n1 | tr -d '\n' >> dist/requirements.txt
echo " \\" >> dist/requirements.txt
pip hash dist/mealie-${MEALIE_VERSION}.tar.gz | tail -n1 >> dist/requirements.txt
```
The Python package can be installed with all of its dependencies pinned to the versions tested by the developers with:
```sh
pip3 install -r dist/requirements.txt --find-links dist
```
To install with the latest but still compatible dependency versions, instead run `pip3 install dist/mealie-$VERSION-py3-none-any.whl` (where `$VERSION` is the version of mealie to install).
## Docker image
One way to build the Docker image is to run the following command in the project root directory:
```sh
docker build --tag mealie:dev --file docker/Dockerfile --build-arg COMMIT=$(git rev-parse HEAD) .
```
The Docker image can be built from the pre-built Python packages with the task command `task docker:build-from-package`. This is equivalent to:
```sh
docker build --tag mealie:dev --file docker/Dockerfile --build-arg COMMIT=$(git rev-parse HEAD) --build-context packages=dist .
```

View File

@@ -2,11 +2,11 @@
[Please Join the Discord](https://discord.gg/QuStdQGSGK). We are building a community of developers working on the project.
## We Develop with Github
We use github to host code, to track issues and feature requests, as well as accept pull requests.
## We Develop with GitHub
We use GitHub to host code, to track issues and feature requests, as well as accept pull requests.
## We Use [Github Flow](https://docs.github.com/en/get-started/using-github/github-flow), So All Code Changes Happen Through Pull Requests
Pull requests are the best way to propose changes to the codebase (we use [Github Flow](https://docs.github.com/en/get-started/using-github/github-flow)). We actively welcome your pull requests:
## We Use [GitHub Flow](https://docs.github.com/en/get-started/using-github/github-flow), So All Code Changes Happen Through Pull Requests
Pull requests are the best way to propose changes to the codebase (we use [GitHub Flow](https://docs.github.com/en/get-started/using-github/github-flow)). We actively welcome your pull requests:
1. Fork the repo and create your branch from `mealie-next`.
2. Checkout the Discord, the PRs page, or the Projects page to get an idea of what's already being worked on.
@@ -14,13 +14,13 @@ Pull requests are the best way to propose changes to the codebase (we use [Githu
4. Once you've got an idea of what changes you want to make, create a draft PR as soon as you can to let us know what you're working on and how we can help!
5. If you've changed APIs, update the documentation.
6. Run tests, including `task py:check`.
6. Issue that pull request! First make a draft PR, make sure that the automated github tests all pass, then mark as ready for review.
7. Be sure to add release notes to the pull request.
7. Issue that pull request! First make a draft PR, make sure that the automated GitHub tests all pass, then mark as ready for review. We follow Conventional Commits syntax; please title your PR as described in the PR template.
8. Be sure to add release notes to the pull request.
## Any contributions you make will be under the AGPL Software License
In short, when you submit code changes, your submissions are understood to be under the same [AGPL License](https://choosealicense.com/licenses/agpl-3.0/) that covers the project. Feel free to contact the maintainers if that's a concern.
## Report bugs using Github's [issues](https://github.com/mealie-recipes/mealie/issues)
## Report bugs using GitHub's [issues](https://github.com/mealie-recipes/mealie/issues)
We use GitHub issues to track public bugs. Report a bug by [opening a new issue](https://github.com/mealie-recipes/mealie/issues/new); it's that easy!
## Write bug reports with detail, background, and sample code

View File

@@ -0,0 +1,15 @@
# Development: Database Changes
This document is open to improvement; please share any insights you have/develop.
## Overview
When modifying the database, you will most likely need to change the files under `/mealie/db/models/`.
How exactly you need to modify it is of course highly contextual to the change you're making.
## Using Alembic to generate upgrade script
In your dev container you can run something like (change the message) `task py:migrate -- "Add creation tag to group preferences"` to have Alembic generate an upgrade script for you.
Alembic's script migration isn't perfect, so you will need to review which changes are generated. You will also need to make sure any custom operations work on both SQLite and Postgres.
There are some known limitations with our migrations and Alembic's auto-generation, which is accounted for in `/alembic/env.py`. If any of your migrations overlap with the columns in `include_object`, you may need to manually adjust the migration.

View File

@@ -6,7 +6,7 @@ This is the start of the maintainers guide for Mealie developers. Those who have
If you are working on issues, it can be helpful to understand the workflow for our repository. When an issue comes in it is tagged with the `bug` and `triage` flags. This is to indicate that they need to be reviewed by a maintainer to determine validity.
After you've reviered an issue it will generally move into one of two states:
After you've reviewed an issue it will generally move into one of two states:
`bug:confirmed`
: Your were able to verify the issue and we determined we need to fix it

View File

@@ -0,0 +1,59 @@
# Migration Guide
This guide is a reference for developers maintaining custom integrations with Mealie. While we aim to keep breaking changes to a minimum, major versions are likely to contain at least *some* breaking changes. To clarify: *most users do not need to worry about this, this is **only** for those maintaining integrations and/or leveraging the API*.
While this guide aims to simplify the migration process for developers, it's not necessarily a comprehensive list of breaking changes. Starting with v2, a comprehensive list of breaking changes are highlighted in the release notes.
## V1 → V2
The biggest change between V1 and V2 is the introduction of Households. For more information on how households work in relation to groups/users, check out the [Groups and Households](./features.md#groups-and-households) section in the Features guide.
### `updateAt` is now `updatedAt`
We have renamed the `updateAt` field to `updatedAt`. While the API will still accept `updateAt` as an alias, the API will return it as `updatedAt`. The field's behavior has otherwise been unchanged.
### Backend Endpoint Changes
These endpoints have moved, but are otherwise unchanged:
- `/recipes/create-url` -> `/recipes/create/url`
- `/recipes/create-url/bulk` -> `/recipes/create/url/bulk`
- `/recipes/create-from-zip` -> `/recipes/create/zip`
- `/recipes/create-from-image` -> `/recipes/create/image`
- `/groups/webhooks` -> `/households/webhooks`
- `/groups/shopping/items` -> `/households/shopping/items`
- `/groups/shopping/lists` -> `/households/shopping/lists`
- `/groups/mealplans` -> `/households/mealplans`
- `/groups/mealplans/rules` -> `/households/mealplans/rules`
- `/groups/invitations` -> `/households/invitations`
- `/groups/recipe-actions` -> `/households/recipe-actions`
- `/groups/events/notifications` -> `/households/events/notifications`
- `/groups/cookbooks` -> `/households/cookbooks`
- `/explore/foods/{group_slug}` -> `/explore/groups/{group_slug}/foods`
- `/explore/organizers/{group_slug}/categories` -> `/explore/groups/{group_slug}/categories`
- `/explore/organizers/{group_slug}/tags` -> `/explore/groups/{group_slug}/tags`
- `/explore/organizers/{group_slug}/tools` -> `/explore/groups/{group_slug}/tools`
- `/explore/cookbooks/{group_slug}` -> `/explore/groups/{group_slug}/cookbooks`
- `/explore/recipes/{group_slug}` -> `/explore/groups/{group_slug}/recipes`
`/groups/members` previously returned a `UserOut` object, but now returns a `UserSummary`. Should you need the full user information (username, email, etc.), rather than just the summary, see `/households/members` instead for the household members.
`/groups/members` previously returned a list of users, but now returns paginated users (similar to all other list endpoints).
These endpoints have been completely removed:
- `/admin/analytics` (no longer used)
- `/groups/permissions` (see household permissions)
- `/groups/statistics` (see household statistics)
- `/groups/categories` (see organizer endpoints)
- `/recipes/summary/untagged` (no longer used)
- `/recipes/summary/uncategorized` (no longer used)
- `/users/group-users` (see `/groups/members` and `/households/members`)
### Frontend Links
These frontend pages have moved:
- `/group/mealplan/...` -> `/household/mealplan/...`
- `/group/members` -> `/household/members`
- `/group/notifiers` -> `/household/notifiers`
- `/group/webhooks` -> `/household/webhooks`

View File

@@ -32,9 +32,9 @@ Make sure the VSCode Dev Containers extension is installed, then select "Dev Con
### Prerequisites
- [Python 3.10](https://www.python.org/downloads/)
- [Poetry](https://python-poetry.org/docs/#installation)
- [Node v16.x](https://nodejs.org/en/)
- [Python 3.12](https://www.python.org/downloads/)
- [uv](https://docs.astral.sh/uv/)
- [Node](https://nodejs.org/en/)
- [yarn](https://classic.yarnpkg.com/lang/en/docs/install/#mac-stable)
- [task](https://taskfile.dev/#/installation)
@@ -45,7 +45,7 @@ Once the prerequisites are installed you can cd into the project base directory
=== "Linux / macOS"
```bash
# Naviate To The Root Directory
# Navigate To The Root Directory
cd /path/to/project
# Utilize the Taskfile to Install Dependencies

View File

@@ -1,20 +1,19 @@
# Improving the Ingredient Parser
Mealie uses Conditional Random Fields (CRFs) for parsing and processing ingredients. The model used for ingredients is based off a data set of over 100,000 ingredients from a dataset compiled by the New York Times. I believe that the model used is sufficient enough to handle most of the ingredients, therefore, more data to train the model won't necessarily help improve the model.
Mealie uses Conditional Random Fields (CRFs) for parsing and processing ingredients. The model used for ingredients is based off a data set of over 100,000 ingredients from a dataset compiled by the New York Times. I believe that the model used is sufficient enough to handle most of the ingredients, therefore, more data to train the model won't necessarily help improve the model.
## Improving The CRF Parser
To improve results with the model, you'll likely need to focus on improving the tokenization and parsing of the original string to aid the model in determine what the ingredient is. Data science is not my forte, but I have done some tokenization to improve the model. You can find that code under `/mealie/services/parser_services/crfpp` along with some other utility functions to aid in the tokenization and processing of ingredient strings.
To improve results with the model, you'll likely need to focus on improving the tokenization and parsing of the original string to aid the model in determine what the ingredient is. Data science is not my forte, but I have done some tokenization to improve the model. You can find that code under `/mealie/services/parser_services/crfpp` along with some other utility functions to aid in the tokenization and processing of ingredient strings.
The best way to test on improving the parser is to register additional test cases in `/mealie/tests/unit_tests/test_crfpp_parser.py` and run the test after making changes to the tokenizer. Note that the test cases DO NOT run in the CI environment, therefore you will need to have CRF++ installed on your machine. If you're using a Mac the easiest way to do this is through brew.
When submitting a PR to improve the parser it is important to provide your test cases, the problem you were trying to solve, and the results of the changes you made. As the tests don't run in CI, not providing these details may delay your PR from being merged.
When submitting a PR to improve the parser it is important to provide your test cases, the problem you were trying to solve, and the results of the changes you made. As the tests don't run in CI, not providing these details may delay your PR from being merged.
## Alternative Parsers
Alternatively, you can register a new parser by fulfilling the `ABCIngredientParser` interface. Satisfying this single method interface allows us to register additional parsing strategies at runtime and gives the user several options when trying to parse a recipe.
Alternatively, you can register a new parser by fulfilling the `ABCIngredientParser` interface. Satisfying this single method interface allows us to register additional parsing strategies at runtime and gives the user several options when trying to parse a recipe.
## Links
- [Pretrained Model](https://github.com/mealie-recipes/mealie-nlp-model)
- [CRF++ (Forked)](https://github.com/hay-kot/crfpp)

View File

@@ -9,8 +9,8 @@ We love your input! We want to make contributing to this project as easy and tra
- Becoming a maintainer
- Help translate to a new language or improve current translations
[Remember to join the Discord and stay in touch with other developers working on the project](https://discord.gg/QuStdQGSGK)!
[Remember to join the Discord and stay in touch with other developers working on the project](https://discord.gg/QuStdQGSGK)!
Additionally, you can buy me a coffee and support the project. When I get financial support it helps me know that there's real interest in the project and that it's worth the time to keep developing.
Additionally, you can buy me a coffee and support the project. When I get financial support it helps me know that there's real interest in the project and that it's worth the time to keep developing.
<a href="https://www.buymeacoffee.com/haykot" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/v2/default-green.png" alt="Buy Me A Coffee" style="height: 60px !important;width: 217px !important;" ></a>
<a href="https://www.buymeacoffee.com/haykot" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/v2/default-green.png" alt="Buy Me A Coffee" style="height: 60px !important;width: 217px !important;" ></a>

View File

@@ -0,0 +1,8 @@
!!! info
This guide was submitted by a community member. Find something wrong? Submit a PR to get it fixed!
Mealie supports adding the ingredients of a recipe to your [Bring](https://www.getbring.com/) shopping list, as you can
see [here](https://docs.mealie.io/documentation/getting-started/features/#recipe-actions).
However, for this to work, your Mealie instance needs to be exposed to the open Internet so that the Bring servers can access its information. If you don't want your server to be publicly accessible for security reasons, you can use the [Mealie-Bring-API](https://github.com/felixschndr/mealie-bring-api) written by a community member. This integration is entirely local and does not require any service to be exposed to the Internet.
This is a small web server that runs locally next to your Mealie instance, and instead of Bring pulling the data from you, it pushes the data to Bring. [Check out the project](https://github.com/felixschndr/mealie-bring-api) for more information and installation instructions.

View File

@@ -23,7 +23,7 @@ function import_from_file () {
do
echo $line
curl -X 'POST' \
"$3/api/recipes/create-url" \
"$3/api/recipes/create/url" \
-H "Authorization: Bearer $2" \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
@@ -81,7 +81,7 @@ def import_from_file(input_file, token, mealie_url):
data = {
'url': line
}
response = requests.post(mealie_url + "/api/recipes/create-url", headers=headers, json=data)
response = requests.post(mealie_url + "/api/recipes/create/url", headers=headers, json=data)
print(response.text)
input_file="list"
@@ -93,4 +93,3 @@ mealie_url="http://localhost:9000"
token = authentication(mail, password, mealie_url)
import_from_file(input_file, token, mealie_url)
```

View File

@@ -1,52 +1,46 @@
!!! info
This guide was submitted by a community member. Find something wrong? Submit a PR to get it fixed!
This guide was submitted by a community member. Find something wrong? Submit a PR to get it fixed!
In a lot of ways, Home Assistant is why this project exists! Since Mealie has a robust API it makes it a great fit for interacting with Home Assistant and pulling information into your dashboard.
### Display Today's Meal in Lovelace
## Display Today's Meal in Lovelace
You can use the Mealie API to get access to meal plans in Home Assistant like in the image below.
![api-extras-gif](../../assets/img/home-assistant-card.png)
Steps:
## Steps:
#### 1. Get your API Token
### 1. Get your API Token
Create an API token from Mealie's User Settings page (https://hay-kot.github.io/mealie/documentation/users-groups/user-settings/#api-key-generation)
Create an API token from Mealie's User Settings page (see [this page](https://docs.mealie.io/documentation/getting-started/api-usage/#getting-a-token) to learn how).
#### 2. Create Home Assistant Sensors
### 2. Create Home Assistant Sensors
Create REST sensors in home assistant to get the details of today's meal.
We will create sensors to get the name and ID of the first meal in today's meal plan (note that this may not be what is wanted if there is more than one meal planned for the day). We need the ID as well as the name to be able to retreive the image for the meal.
We will create sensors to get the name and ID of the first meal in today's meal plan (note that this may not be what is wanted if there is more than one meal planned for the day). We need the ID as well as the name to be able to retrieve the image for the meal.
Make sure the url and port (`http://mealie:9000` ) matches your installation's address and _API_ port.
Make sure the url and port (`http://mealie:9000`) matches your installation's address and _API_ port.
```yaml
- platform: rest
resource: "http://mealie:9000/api/groups/mealplans/today"
method: GET
name: Mealie todays meal
headers:
Authorization: Bearer <<API_TOKEN>>
value_template: "{{ value_json[0].recipe.name }}"
force_update: true
scan_interval: 30
rest:
- resource: "http://mealie:9000/api/households/mealplans/today"
method: GET
headers:
Authorization: Bearer <<API_TOKEN>>
scan_interval: 3600
sensor:
- name: Mealie todays meal
value_template: "{{ value_json[0]['recipe']['name'] }}"
force_update: true
unique_id: mealie_todays_meal
- name: Mealie todays meal ID
value_template: "{{ value_json[0]['recipe']['id'] }}"
force_update: true
unique_id: mealie_todays_meal_id
```
```yaml
- platform: rest
resource: "http://mealie:9000/api/groups/mealplans/today"
method: GET
name: Mealie todays meal ID
headers:
Authorization: Bearer <<API_TOKEN>>
value_template: "{{ value_json[0].recipe.id }}"
force_update: true
scan_interval: 30
```
#### 3. Create a Camera Entity
### 3. Create a Camera Entity
We will create a camera entity to display the image of today's meal in Lovelace.
@@ -58,7 +52,7 @@ In the still image url field put in:
Under the entity page for the new camera, rename it.
e.g. `camera.mealie_todays_meal_image`
#### 4. Create a Lovelace Card
### 4. Create a Lovelace Card
Create a picture entity card and set the entity to `mealie_todays_meal` and the camera entity to `camera.mealie_todays_meal_image` or set in the yaml directly.
@@ -82,4 +76,4 @@ card_mod:
```
!!! tip
Due to how Home Assistant works with images, I had to include the additional styling to get the images to not appear distorted. This requires an [additional installation](https://github.com/thomasloven/lovelace-card-mod) from HACS.
Due to how Home Assistant works with images, I had to include the additional styling to get the images to not appear distorted. This requires an [additional installation](https://github.com/thomasloven/lovelace-card-mod) from HACS.

View File

@@ -7,15 +7,15 @@ You can use bookmarklets to generate a bookmark that will take your current loca
You can use a [bookmarklet generator site](https://caiorss.github.io/bookmarklet-maker/) and the code below to generate a bookmark for your site. Just change the `http://localhost:8080` to your sites web address and follow the instructions.
```js
var url = document.URL;
var url = document.URL.endsWith('/') ?
document.URL.slice(0, -1) :
document.URL;
var mealie = "http://localhost:8080";
var group_slug = "home" // Change this to your group slug. You can obtain this from your URL after logging-in to Mealie
var use_keywords= "&use_keywords=1" // Optional - use keywords from recipe - update to "" if you don't want that
var edity = "&edit=1" // Optional - keep in edit mode - update to "" if you don't want that
if (mealie.slice(-1) === "/") {
mealie = mealie.slice(0, -1)
}
var dest = mealie + "/g/" + group_slug + "/r/create/url?recipe_import_url=" + url + use_keywords + edity;
var dest = mealie + "/g/" + group_slug + "/r/create/url?recipe_import_url=" + url;
window.open(dest, "_blank");
```

View File

@@ -0,0 +1,29 @@
!!! info
This guide was submitted by a community member. Find something wrong? Submit a PR to get it fixed!
An easy way to add recipes to Mealie from an Apple device is via an Apple Shortcut. This is a short guide to install an configure a shortcut able to add recipes via a link or image(s).
!!! note
If adding via images make sure to enable [Mealie's OpenAI Integration](https://docs.mealie.io/documentation/getting-started/installation/open-ai/)
## Javascript can only be run via Shortcuts on the Safari browser on MacOS and iOS. If you do not use Safari you may skip this section
Some sites have begun blocking AI scraping bots, inadvertently blocking the recipe scraping library Mealie uses as well. To circumvent this, the shortcut uses javascript to capture the raw html loaded in the browser and sends that to mealie when possible.
**iOS**
Settings app -> apps -> Shortcuts -> Advanced -> Allow Running Scripts
**MacOS**
Shortcuts app -> Settings (CMD ,) -> Advanced -> Allow Running Scripts
## Initial Setup
An API key is needed to authenticate with mealie. To create an api key for a user, navigate to http://YOUR_MEALIE_URL/user/profile/api-tokens. Alternatively you can create a key via the mealie home page by clicking the user's profile pic in the top left -> Api Tokens
The shortcut can be installed via **[This link](https://www.icloud.com/shortcuts/52834724050b42aebe0f2efd8d067360)**. Upon install, replace "MEALIE_API_KEY" with the API key generated previously and "MEALIE_URI" with the full URL used to access your mealie instance e.g. "http://10.0.0.5:9000" or "https://mealie.domain.com".
## Using the Shortcut
Once installed, the shortcut will automatically appear as an option when sharing an image or webpage. It can also be useful to add the shortcut to the home screen of your device. If selected from the home screen or shortcuts app, a menu will appear with prompts to import via **taking photo(s)**, **selecting photo(s)**, **scanning a URL**, or **pasting a URL**.
!!! note
Despite the Mealie API being able to accept multiple recipe images for import it is currently impossible to send multiple files in 1 web request via Shortcuts. Instead, the shortcut combines the images into a singular, vertically-concatenated image to send to mealie. This can result in slightly less-accurate text recognition.

View File

@@ -1,82 +0,0 @@
# Using iOS Shortcuts with Mealie
!!! info
This guide was submitted by a community member. Find something wrong? Submit a PR to get it fixed!
Don't know what an iOS shortcut is? Neither did I! Experienced iOS users may already be familiar with this utility but for the uninitiated, here is the official Apple explanation:
> A shortcut is a quick way to get one or more tasks done with your apps. The Shortcuts app lets you create your own shortcuts with multiple steps. For example, build a “Surf Time” shortcut that grabs the surf report, gives an ETA to the beach, and launches your surf music playlist.
Basically it is a visual scripting language that lets a user build an automation in a guided fashion. The automation can be [shared with anyone](https://www.icloud.com/shortcuts/94aa272af5ff4d2c8fe5e13a946f89a9) but if it is a user creation, you'll have to jump through a few hoops to make an untrusted automation work on your device.
## Setup Video
The following YouTube video walks through setting up the shortcut in 3 minutes for those who prefer following along visually.
<iframe width="560" height="315" src="https://www.youtube.com/embed/XZk6S1MVUrE?si=HGH07RbK-Ip_1qFz" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
## Guide
### Prerequisites
Before setting up the shortcut, make sure you have the following information ready and easily accessable on your Apple device.
1. The URL of your Mealie instance
2. An API Key for your user
3. A Gemini API Key from [Google AI Studio](https://makersuite.google.com)
!!! note
A Gemini API Key is not required for importing URLs from Safari or your Camera, however you will not be able to take a photo of a recipe and import it without a Gemini key.
Google AI Studio is currently only available in [certain countries and languages](https://ai.google.dev/available_regions). Most notably it is not currently available in Europe.
### Setup
On the Apple device you wish to add the shortcut to, click on [this link](https://www.icloud.com/shortcuts/94aa272af5ff4d2c8fe5e13a946f89a9) to begin the setup of the shortcut.
![screenshot](../../assets/img/ios/setup.png)
Next, you need to replace `url` and `port` with the information for your Mealie instance.
If you have a domain that you use (e.g. `https://mealie.example.com`), put that here. If you just run local, then you need to put in your Mealie instance IP and the port you use (e.g. the default is `9925`).
![screenshot](../../assets/img/ios/url.png)
Next, you need to replace `MEALIE_API_KEY` with your API token.
![screenshot](../../assets/img/ios/api.png)
Finally, replace `GEMINI_API_KEY` with the one you got from [Google AI Studio](https://makersuite.google.com)
![screenshot](../../assets/img/ios/gemini.png)
You may wish to [add the shortcut to your home screen](https://support.apple.com/guide/shortcuts/add-a-shortcut-to-the-home-screen-apd735880972/ios) for easier access.
## Features
- Share a website from Safari with Mealie to import via URL.
- Share a recipe photo from photos to perform OCR and import a physical recipe.
- Trigger the shortcut and take a photo of a physical recipe to import.
- Trigger the shortcut to select a photo from your Photos app to import.
- Trigger the shortcut to take a picture of a URL (like on the bottom of a printed recipe) to import.
## Troubleshooting
Sometimes Gemini will not be able to parse a recipe, and you will get an error. Users have found success with a combination of the following:
1. #### Try Again
Sometimes Gemini returns the wrong information which causes the import to fail. Often, trying again will be successful.
2. #### Photo Quality
Make sure there is no large glare or shadow over the picture, and you have all the text in frame.
3. #### Edit the Photo
Users have found success by cropping the picture to just the recipe card, adding a "mono" filter, and cranking up the exposure before importing.
## History
User [brasilikum](https://github.com/brasilikum) opened an issue on the main repo about how they had created an [iOS shortcut](https://github.com/mealie-recipes/mealie/issues/103) for interested users.
This original method broke after the transition to version 1.X and an issue was raised on [Github](https://github.com/mealie-recipes/mealie/issues/2092) GitHub user [Zippyy](https://github.com/zippyy) has helped to create a working shortcut for version 1.X.
When OCR was removed from Mealie, GitHub user [hunterjm](https://github.com/zippyy) created a new shortcut that uses Apple's built-in OCR and Google Gemini to enhance and replace that functionality.

View File

@@ -0,0 +1,86 @@
# Automating Backups with n8n
!!! info
This guide was submitted by a community member. Find something wrong? Submit a PR to get it fixed!
[n8n](https://github.com/n8n-io/n8n) is a free and source-available fair-code licensed workflow automation tool. It's an alternative to tools like Zapier or Make, allowing you to use a UI to create automated workflows.
This example workflow:
1. Creates a Mealie backup every morning via an API call
2. Keeps the last 7 backups, deleting older ones
!!! warning "Important"
This only automates the backup function, this does not backup your data to anywhere except your local instance. Please make sure you are backing up your data to an external source.
![screenshot](../../assets/img/n8n/n8n-mealie-backup.png)
## Setup
### Deploying n8n
Follow the relevant guide in the [n8n Documentation](https://docs.n8n.io/)
### Importing n8n workflow
1. In n8n, add a new workflow
2. In the top right hit the 3 dot menu and select 'Import from URL...'
![screenshot](../../assets/img/n8n/n8n-workflow-import.png)
3. Paste `https://github.com/mealie-recipes/mealie/blob/mealie-next/docs/docs/assets/other/n8n/n8n-mealie-backup.json` and click 'Import'
4. Click through the nodes and update the URLs for your environment
### API Credentials
#### Generate Mealie API Token
1. Head to `<YOUR MEALIE INSTANCE>/user/profile/api-tokens`
!!! tip
If you dont see this screen make sure that "Show advanced features" is checked under `<YOUR MEALIE INSTANCE>/user/profile/edit`
2. Under token name, enter the name of the token (for example, 'n8n') and hit 'Generate'
3. Copy and keep this API Token somewhere safe, this is like your password!
!!! tip
You can use your normal user for this, but assuming you're an admin you could also choose to create a user named n8n and generate the API key against that user.
#### Setup Credentials in n8n
See also [n8n Docs](https://docs.n8n.io/credentials/add-edit-credentials/).
1. Create a new "Header Auth" Credential
![screenshot](../../assets/img/n8n/n8n-cred-app.png)
2. In the connection screen set - Name as `Authorization` - Value as `Bearer {INSERT MEALIE API KEY}`
![screenshot](../../assets/img/n8n/n8n-cred-connection.png)
3. In the workflow you created, for the "Run Backup", "Get All backups", and "Delete Oldies" nodes, update:
- Authentication to `Generic Credential Type`
- Generic Auth Type to `Header Auth`
- Header Auth to `Mealie API` or whatever you named your credentials
![screenshot](../../assets/img/n8n/n8n-workflow-auth.png)
### Notification Node
!!! warning "Important"
Please use error notifications of some kind. It's very easy to set and forget an automation, then have the worst happen and lose data.
[ntfy](https://github.com/binwiederhier/ntfy) is a great open source, self-hostable tool for sending notifications.
If you want to use ntfy, you will need to install it on your environment, or sign up for their service, and configure it with the webhook URL.
If you want to use another notification service, you can create a new node in n8n that sends the notification using whatever method you like.
- For example, if you want to send a push notification via [Pushover](https:/pushover.net/) you could create a new node that uses the Pushover API and sends the notification.
- You can use the [Send Email](https://docs.n8n.io/integrations/builtincore-nodes/n8n-nodes-base.sendemail/) node in n8n as an example of how to create your own custom node.
- You can send it off to InfluxDB, Slack, Discord etc. Go nuts.
If you're using another method for backups we'd love to hear about it. Pop in [Discord](https://discord.gg/QuStdQGSGK) and say hi!

View File

@@ -1,11 +1,10 @@
# Using SWAG as Reverse Proxy
!!! info
This guide was submitted by a community member. Find something wrong? Submit a PR to get it fixed!
This guide was submitted by a community member. Find something wrong? Submit a PR to get it fixed!
To make the setup of a Reverse Proxy much easier, Linuxserver.io developed [SWAG](https://github.com/linuxserver/docker-swag).
To make the setup of a Reverse Proxy much easier, Linuxserver.io developed [SWAG](https://github.com/linuxserver/docker-swag)
SWAG - Secure Web Application Gateway (formerly known as letsencrypt, no relation to Let's Encrypt™) sets up an Nginx web server and reverse proxy with PHP support and a built-in certbot client that automates free SSL server certificate generation and renewal processes (Let's Encrypt and ZeroSSL). It also contains fail2ban for intrusion prevention.
## Step 1: Get a domain
@@ -48,7 +47,7 @@ services:
restart: unless-stopped
```
Don't forget to change the <code>mydomain.duckns</code> into your personal domain and the <code>duckdnstoken</code> into your token and remove the brackets.
Don't forget to change the <code>mydomain.duckdns</code> into your personal domain and the <code>duckdnstoken</code> into your token and remove the brackets.
## Step 3: Change the config files

View File

@@ -0,0 +1,100 @@
# OpenID Connect (OIDC) Authentication
:octicons-tag-24: v2.0.0
!!! note
Breaking changes to OIDC Authentication were introduced with Mealie v2. Please see the below for [migration steps](#migration-from-mealie-v1x).
Looking instead for the docs for Mealie :octicons-tag-24: v1.x? [Click here](./oidc.md)
Mealie supports 3rd party authentication via [OpenID Connect (OIDC)](https://openid.net/connect/), an identity layer built on top of OAuth2. OIDC is supported by many Identity Providers (IdP), including:
- [Authentik](https://goauthentik.io/integrations/sources/oauth/#openid-connect)
- [Authelia](https://www.authelia.com/integration/openid-connect/mealie/)
- [Keycloak](https://www.keycloak.org/docs/latest/securing_apps/#_oidc)
- [Okta](https://www.okta.com/openid-connect/)
## Account Linking
Signing in with OAuth will automatically find your account in Mealie and link to it. If a user does not exist in Mealie, then one will be created (if enabled), but will be unable to log in with any other authentication method. An admin can configure another authentication method for such a user.
If a user previously accessed Mealie via credentials and you want to no longer allow users to log in with `LDAP` or `Mealie` credentials, then you can set the user's *Authentication Method* to `OIDC`. Conversely, if a user's auth method is not `OIDC`, then they can still log in with whatever their auth method is as well as OIDC.
## Provider Setup
Before you can start using OIDC Authentication, you must first configure a new client application in your identity provider. Your identity provider must support the OAuth **Authorization Code flow with PKCE**. The steps will vary by provider, but generally, the steps are as follows.
1. Create a new client application
- The Provider type should be OIDC or OAuth2
- The Grant type should be `Authorization Code`
- The Client type should be `confidential` (you should have a **Client Secret**)
2. Configure redirect URI
The redirect URI(s) that are needed:
1. `http(s)://DOMAIN:PORT/login`
2. `http(s)://DOMAIN:PORT/login?direct=1`
1. This URI is only required if your IdP supports [RP-Initiated Logout](https://openid.net/specs/openid-connect-rpinitiated-1_0.html) such as Keycloak. You may also be able to combine this into the previous URI by using a wildcard: `http(s)://DOMAIN:PORT/login*`
The redirect URI(s) should include any URL that Mealie is accessible from. Some examples include
http://localhost:9091/login
https://mealie.example.com/login
3. Configure allowed scopes
The scopes required are `openid profile email`
If you plan to use the [groups](#groups) to configure access within Mealie, you will need to also add the scope defined by the `OIDC_GROUPS_CLAIM` environment variable. The default claim is `groups`
## Mealie Setup
Take the client id and your discovery URL and update your environment variables to include the required OIDC variables described in [Installation - Backend Configuration](../installation/backend-config.md#openid-connect-oidc).
You might also want to set ALLOW_PASSWORD_LOGIN to false, to hide the username+password inputs, if you want to allow logins only via OIDC.
### Groups
There are two (optional) [environment variables](../installation/backend-config.md#openid-connect-oidc) that can control which of the users in your IdP can log in to Mealie and what permissions they will have. Keep in mind that these groups **do not necessarily correspond to groups in Mealie**. The groups claim is configurable via the `OIDC_GROUPS_CLAIM` environment variable. The groups should be **defined in your IdP** and be returned in the configured claim value.
`OIDC_USER_GROUP`: Users must be a part of this group (within your IdP) to be able to log in.
`OIDC_ADMIN_GROUP`: Users that are in this group (within your IdP) will be made an **admin** in Mealie. Users in this group do not need to be in the `OIDC_USER_GROUP`
## Examples
Example configurations for several Identity Providers have been provided by the Community in the [GitHub Discussions](https://github.com/mealie-recipes/mealie/discussions/categories/oauth-provider-example).
If you don't see your provider and have successfully set it up, please consider [creating your own example](https://github.com/mealie-recipes/mealie/discussions/new?category=oauth-provider-example) so that others can have a smoother setup.
## Migration from Mealie v1.x
**High level changes**
- A Client Secret is now required
- CORS is no longer a requirement since all authentication happens server-side
- A user will be successfully authenticated if they are part of *either* `OIDC_USER_GROUP` or `OIDC_ADMIN_GROUP`. Admins no longer need to be part of both groups
- ID Token signing algorithm is now inferred using the `id_token_signing_alg_values_supported` metadata from the discovery URL
### Changes in your IdP
**Required**
- You must change the Mealie client in your IdP to be **confidential**. The option is different for every provider, but you need to obtain a **client secret**.
**Optional**
- You may now also remove the `OIDC_USER_GROUP` from your admin users if you so desire. Users within the `OIDC_ADMIN_GROUP` will now be able to successfully authenticate with only that group.
- You may remove any CORS configuration. i.e. configured origins
### Changes in Mealie
**Required**
- After obtaining the **client secret** from your IdP, you must add it to Mealie using the `OIDC_CLIENT_SECRET` environment variable or via [docker secrets](../installation/backend-config.md#docker-secrets). This secret will not be logged on startup.
**Optional**
- Remove `OIDC_SIGNING_ALGORITHM` from your environment. It will no longer have any effect.

View File

@@ -0,0 +1,69 @@
# OpenID Connect (OIDC) Authentication
:octicons-tag-24: v1.4.0
Mealie supports 3rd party authentication via [OpenID Connect (OIDC)](https://openid.net/connect/), an identity layer built on top of OAuth2. OIDC is supported by many Identity Providers (IdP), including:
- [Authentik](https://goauthentik.io/integrations/sources/oauth/#openid-connect)
- [Authelia](https://www.authelia.com/integration/openid-connect/mealie/)
- [Keycloak](https://www.keycloak.org/docs/latest/securing_apps/#_oidc)
- [Okta](https://www.okta.com/openid-connect/)
## Account Linking
Signing in with OAuth will automatically find your account in Mealie and link to it. If a user does not exist in Mealie, then one will be created (if enabled), but will be unable to log in with any other authentication method. An admin can configure another authentication method for such a user.
## Provider Setup
Before you can start using OIDC Authentication, you must first configure a new client application in your identity provider. Your identity provider must support the OAuth **Authorization Code flow with PKCE**. The steps will vary by provider, but generally, the steps are as follows.
1. Create a new client application
- The Provider type should be OIDC or OAuth2
- The Grant type should be `Authorization Code`
- The Application type should be `Web` or `SPA`
- The Client type should be `public`
2. Configure redirect URI
The redirect URI(s) that are needed:
1. `http(s)://DOMAIN:PORT/login`
2. `http(s)://DOMAIN:PORT/login?direct=1`
1. This URI is only required if your IdP supports [RP-Initiated Logout](https://openid.net/specs/openid-connect-rpinitiated-1_0.html) such as Keycloak. You may also be able to combine this into the previous URI by using a wildcard: `http(s)://DOMAIN:PORT/login*`
The redirect URI(s) should include any URL that Mealie is accessible from. Some examples include
http://localhost:9091/login
https://mealie.example.com/login
If you are hosting Mealie behind a reverse proxy (nginx, Caddy, ...) to terminate TLS, make sure to start Mealie's Gunicorn server
with `--forwarded-allow-ips=<ip-of-proxy>`, otherwise the `X-Forwarded-*` headers will be ignored and the generated OIDC redirect
URI will use the wrong scheme (http instead of https). This will lead to authentication errors with strict OIDC providers.
3. Configure origins
If your identity provider enforces CORS on any endpoints, you will need to specify your Mealie URL as an Allowed Origin.
4. Configure allowed scopes
The scopes required are `openid profile email`
If you plan to use the [groups](#groups) to configure access within Mealie, you will need to also add the scope defined by the `OIDC_GROUPS_CLAIM` environment variable. The default claim is `groups`
## Mealie Setup
Take the client id and your discovery URL and update your environment variables to include the required OIDC variables described in [Installation - Backend Configuration](../installation/backend-config.md#openid-connect-oidc).
### Groups
There are two (optional) [environment variables](../installation/backend-config.md#openid-connect-oidc) that can control which of the users in your IdP can log in to Mealie and what permissions they will have. Keep in mind that these groups **do not necessarily correspond to groups in Mealie**. The groups claim is configurable via the `OIDC_GROUPS_CLAIM` environment variable. The groups should be **defined in your IdP** and be returned in the configured claim value.
`OIDC_USER_GROUP`: Users must be a part of this group (within your IdP) to be able to log in.
`OIDC_ADMIN_GROUP`: Users that are in this group (within your IdP) will be made an **admin** in Mealie.
## Examples
Example configurations for several Identity Providers have been provided by the Community in the [GitHub Discussions](https://github.com/mealie-recipes/mealie/discussions/categories/oauth-provider-example).
If you don't see your provider and have successfully set it up, please consider [creating your own example](https://github.com/mealie-recipes/mealie/discussions/new?category=oauth-provider-example) so that others can have a smoother setup.

View File

@@ -1,147 +1,308 @@
# Frequently Asked Questions
## How do I enable "smart" ingredient handling?
## Features and Functionality
You might have noticed that scaling up a recipe or making a shopping list doesn't by default handle the ingredients in a way you might expect. Depending on your settings, scaling up might yield things like `2 1 cup broth` instead of `2 cup broth`. And making shopping lists from reciepes that have shared ingredients can yield multiple lines of the same ingredient. **But**, mealie has a mechanism to intelligently handle ingredients and make your day better. How?
### Set up your Foods and Units
Do the following just **once**. Doing this applies to your whole group, so be careful.
??? question "How do I enable 'smart' ingredient handling?"
1. Click on your name in the upper left corner to get to your settings
2. In the bottom right, select `Manage Data`
3. In the Management page, make sure that a little orange button says `Foods`
4. If your Foods database is empty, click `Seed` and choose your language. You should end up with a list of foods. (Wait bit for seeding to happen, and try not to seed more than once or you will have duplicates)
5. Click the little orange `Foods` button and now choose `Units`.
6. Click `Seed` and choose your language. You should end up with a list of units (e.g. `tablespoon`)
### How do I enable "smart" ingredient handling?
Initial seeding of Units is pretty complete, but there are many Foods in the world. You'll probably find that you need to add Foods to the database during parsing for the first several recipes. Once you have a well-populated Food database, there are API routes to parse ingredients automatically in bulk. But this is not a good idea without a very complete set of Foods.
You might have noticed that scaling up a recipe or making a shopping list doesn't by default handle the ingredients in a way you might expect. Depending on your settings, scaling up might yield things like `2 1 cup broth` instead of `2 cup broth`. And, making shopping lists from recipes that have shared ingredients can yield multiple lines of the same ingredient. **But**, Mealie has a mechanism to intelligently handle ingredients and make your day better. How?
### Set up Recipes to use Foods and Units
Do the following for each recipe you want to intelligently handle ingredients.
<p style="font-size: 0.75rem; font-weight: 500;">Set up your Foods and Units</p>
Do the following just **once**. Doing this applies to your whole group, so be careful.
1. Go to a recipe
2. Click the Edit button/icon
3. Click the Recipe Settings gear and deselect `Disable Ingredient Amounts`
4. Save
5. The ingredients should now look a little weird (`1 1 cup broth` and so on)
6. Click the Edit button/icon again
7. Scroll to the ingredients and you should see new fields for Amount, Unit, Food, and Note. The Note in particular will contain the original text of the Recipe.
8. Click `Parse` and you will be taken to the ingredient parsing page.
9. Choose your parser. The `Natural Language Parser` works very well, but you can also use the `Brute Parser`.
10. Click `Parse All`, and your ingredients should be separated out into Units and Foods based on your seeding in Step 1 above.
11. For ingredients where the Unit or Food was not found, you can click a button to accept an automatically suggested Food to add to the database. Or, manually enter the Unit/Food and hit `Enter` (or click `Create`) to add it to the database
12. When done, click `Save All` and you will be taken back to the recipe. Now the Unit and Food fields of the recipe should be filled out.
1. Click on your name in the upper left corner to get to your settings
2. In the bottom right, select `Manage Data`
3. In the Management page, make sure that a little orange button says `Foods`
4. If your Foods database is empty, click `Seed` and choose your language. You should end up with a list of foods. (Wait a bit for seeding to happen, and try not to seed more than once or you will have duplicates)
5. Click the little orange `Foods` button and now choose `Units`.
6. Click `Seed` and choose your language. You should end up with a list of units (e.g. `tablespoon`)
Scaling up this recipe or adding it to a Shopping List will now smartly take care of ingredient amounts and duplicate combinations.
Initial seeding of Units is pretty complete, but there are many Foods in the world. You'll probably find that you need to add Foods to the database during parsing for the first several recipes. Once you have a well-populated Food database, there are API routes to parse ingredients automatically in bulk. But this is not a good idea without a very complete set of Foods.
## Is it Safe to Upgrade Mealie?
<p style="font-size: 0.75rem; font-weight: 500;">Set up Recipes to use Foods and Units</p>
Yes. If you are using the v1 branches (including beta), you can upgrade to the latest version of Mealie without performing a site Export/Restore. This process was required in previous versions of Mealie, however we've automated the database migration process to make it easier to upgrade. Not that if you were using the v0.5.x version, you CANNOT upgrade to the latest version automatically. You must follow the migration instructions in the documentation.
Do the following for each recipe you want to intelligently handle ingredients.
- [Migration From v0.5.x](./migrating-to-mealie-v1.md)
1. Go to a recipe
2. Click the Edit button/icon
3. Click the Recipe Settings gear and deselect `Disable Ingredient Amounts`
4. Save
5. The ingredients should now look a little weird (`1 1 cup broth` and so on)
6. Click the Edit button/icon again
7. Scroll to the ingredients and you should see new fields for Amount, Unit, Food, and Note. The Note in particular will contain the original text of the Recipe.
8. Click `Parse` and you will be taken to the ingredient parsing page.
9. Choose your parser. The `Natural Language Parser` works very well, but you can also use the `Brute Parser`, or the `OpenAI Parser` if you've [enabled OpenAI support](./installation/backend-config.md#openai).
10. Click `Parse All`, and your ingredients should be separated out into Units and Foods based on your seeding in Step 1 above.
11. For ingredients where the Unit or Food was not found, you can click a button to accept an automatically suggested Food to add to the database. Or, manually enter the Unit/Food and hit `Enter` (or click `Create`) to add it to the database
12. When done, click `Save All` and you will be taken back to the recipe. Now the Unit and Food fields of the recipe should be filled out.
## How can I change the theme?
You can change the theme by settings the environment variables.
- [Backend Config - Themeing](./installation/backend-config.md#themeing)
## How can I change the Login Session Timeout?
Login session can be configured by setting the `TOKEN_TIME` variable on the backend container.
- [Backend Config](./installation/backend-config.md)
## Can I serve Mealie on a subpath?
No. Due to limitations from the Javascript Framework, mealie doesn't support serving Mealie on a subpath.
## Can I install Mealie without docker?
Yes, you can install Mealie on your local machine. HOWEVER, it is recommended that you don't. Managing non-system versions of python, node, and npm is a pain. Moreover, updating and upgrading your system with this configuration is unsupported and will likely require manual interventions.
## What is fuzzy search and how do I use it?
Mealie can use fuzzy search, which is robust to minor typos. For example, searching for "brocolli" will still find your recipe for "broccoli soup". But fuzzy search is only functional on a Postgres database backend. To enable fuzzy search you will need to migrate to Postgres:
1. Backup your database and download the .zip file (same as when [migrating](./migrating-to-mealie-v1.md))
2. Set up a [Postgres](./installation/postgres.md) instance of Mealie
3. Upload the backup .zip and click to apply it (as as migration)
## How can I attach an image or video to a Recipe?
Mealie's Recipe Steps and other fields support markdown syntax and therefore support images and videos. To attach an image to the recipe, you can upload it as an asset and use the provided copy button to generate the html image tag required to render the image. For videos, Mealie provides no way to host videos. You'll need to host your videos with another provider and embed them in your recipe. Generally, the video provider will provide a link to the video and the html tag required to render the video. For example, YouTube provides the following link that works inside a step. You can adjust the width and height attributes as necessary to ensure a fit.
```html
<iframe width="560" height="315" src="https://www.youtube.com/embed/nAUwKeO93bY" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
```
## How can I unlock my account?
If your account has been locked by bad password attempts, you can use an administrator account to unlock another account. Alternatively, you can unlock all accounts via a script within the container.
```shell
docker exec -it mealie-next bash
python /app/mealie/scripts/reset_locked_users.py
```
## How can I change my password?
You can change your password by going to the user profile page and clicking the "Change Password" button. Alternatively you can use the following script to change your password via the CLI if you are locked out of your account.
```shell
docker exec -it mealie-next bash
python /app/mealie/scripts/change_password.py
```
## How do private groups and recipes work?
Managing private groups and recipes can be confusing. The following diagram and notes should help explain how they work to determine if a recipe can be shared publicly.
- Private links that are generated from the recipe page using the `Share` button bypass all group and recipe permissions
- Private groups block all access to recipes, including those that are public, except as noted above.
- Groups with "Allow users outside of your group to see your recipes" disabled block all access to recipes, except as noted above.
- Private recipes block all access to the recipe from public links. This does not affect Private Links.
```mermaid
stateDiagram-v2
r1: Request Access
p1: Using Private Link?
p2: Is Group Private?
p3: Is Recipe Private?
s1: Deny Access
n1: Allow Access
Scaling up this recipe or adding it to a Shopping List will now smartly take care of ingredient amounts and duplicate combinations.
r1 --> p1
p1 --> p2: No
p1 --> n1: Yes
??? question "How do I enable Nutritional Values?"
p2 --> s1: Yes
p2 --> p3: No
### How do I enable Nutritional Values?
p3 --> s1: Yes
p3 --> n1: No
```
Mealie can store Nutritional Information for Recipes. Please note that the values you enter are static for the recipe and no scaling is being done when changing Servings / Yield.
For more information, check out the [Permissions and Public Access guide](./usage/permissions-and-public-access.md).
Do the following to enable Nutritional Values on individual Recipes, or to modify your Household Recipe Preferences
## Can I use fail2ban with mealie?
Yes, mealie is configured to properly forward external IP addresses into the `mealie.log` logfile. Note that due to restrictions in docker, IP address forwarding only works on Linux.
**Show Nutritional Values on a Single Recipe**
Your fail2ban usage should look like the following:
```
Use datepattern : %d-%b-%y %H:%M:%S : Day-MON-Year2 24hour:Minute:Second
Use failregex line : ^ERROR:\s+Incorrect username or password from <HOST>
```
1. Go to a recipe
2. Click the Edit button/icon
3. Click the Recipe Settings gear and select `Show Nutritional Values`
4. Scroll down to manually fill out the Nutritional Values
5. Save
## Why An API?
An API allows integration into applications like [Home Assistant](https://www.home-assistant.io/) that can act as notification engines to provide custom notifications based on Meal Plan data to remind you to defrost the chicken, marinade the steak, or start the CrockPot. Additionally, you can access nearly any backend service via the API giving you total control to extend the application. To explore the API spin up your server and navigate to http://yourserver.com/docs for interactive API documentation.
**Show Nutritional Values by default**
## Why a Database?
Some users of static-site generator applications like ChowDown have expressed concerns about their data being stuck in a database. Considering this is a new project, it is a valid concern to be worried about your data. Mealie specifically addresses this concern by provided automatic daily backups that export your data in json, plain-text markdown files, and/or custom Jinja2 templates. **This puts you in control of how your data is represented** when exported from Mealie, which means you can easily migrate to any other service provided Mealie doesn't work for you.
1. Click your username in the top left
2. Click the 'Household Settings' button
3. Under 'Household Recipe Preferences', click to select 'Show nutrition information'
4. Click 'Update'
As to why we need a database?
- **Developer Experience:** Without a database, a lot of the work to maintain your data is taken on by the developer instead of a battle-tested platform for storing data.
- **Multi User Support:** With a solid database as backend storage for your data, Mealie can better support multi-user sites and avoid read/write access errors when multiple actions are taken at the same time.
??? question "Why Link Ingredients to a Recipe Step?"
### Why Link Ingredients to a Recipe Step?
Mealie allows you to link ingredients to specific steps in a recipe, ensuring you know exactly when to add each ingredient during the cooking process.
**Link Ingredients to Steps in a Recipe**
1. Go to a recipe
2. Click the Edit button/icon
3. Scroll down to the step you want to link ingredients to
4. Click the ellipsis button next to the step and click 'Link Ingredients'
5. Check off the Ingredient(s) that you want to link to that step
6. Optionally, click 'Next step' to continue linking remaining ingredients to steps, or click 'Save' to Finish
7. Click 'Save' on the Recipe
You can optionally link the same ingredient to multiple steps, which is useful for prepping an ingredient in one step and using it in another.
??? question "What is fuzzy search and how do I use it?"
### What is fuzzy search and how do I use it?
Mealie can use fuzzy search, which is robust to minor typos. For example, searching for "brocolli" will still find your recipe for "broccoli soup". But fuzzy search is only functional on a Postgres database backend. To enable fuzzy search you will need to migrate to Postgres:
1. Backup your database and download the .zip file (same as when [migrating](./migrating-to-mealie-v1.md))
2. Set up a [Postgres](./installation/postgres.md) instance of Mealie
3. Upload the backup .zip and click to apply it (as as migration)
??? question "How can I attach an image or video to a Recipe?"
### How can I attach an image or video to a Recipe?
Mealie's Recipe Steps and other fields support markdown syntax and therefore support images and videos. To attach an image to the recipe, you can upload it as an asset and use the provided copy button to generate the html image tag required to render the image. For videos, Mealie provides no way to host videos. You'll need to host your videos with another provider and embed them in your recipe. Generally, the video provider will provide a link to the video and the html tag required to render the video. For example, YouTube provides the following link that works inside a step. You can adjust the width and height attributes as necessary to ensure a fit.
```html
<iframe width="560" height="315" src="https://www.youtube.com/embed/nAUwKeO93bY" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
```
## Customization and Configuration
??? question "How can I change the theme?"
### How can I change the theme?
You can change the theme by settings the environment variables.
- [Backend Config - Theming](./installation/backend-config.md#theming)
??? question "How can I change the login session timeout?"
### How can I change the login session timeout?
Login session can be configured by setting the `TOKEN_TIME` variable on the backend container.
- [Backend Config](./installation/backend-config.md)
??? question "Can I serve Mealie on a subpath?"
### Can I serve Mealie on a subpath?
No. Due to limitations from the JavaScript Framework, Mealie doesn't support serving Mealie on a subpath.
??? question "Can I install Mealie without docker?"
### Can I install Mealie without docker?
Yes, you can install Mealie on your local machine. HOWEVER, it is recommended that you don't. Managing non-system versions of python, node, and npm is a pain. Moreover, updating and upgrading your system with this configuration is unsupported and will likely require manual interventions.
## Account Management
??? question "How can I unlock my account?"
### How can I unlock my account?
If your account has been locked by bad password attempts, you can use an administrator account to unlock another account. Alternatively, you can unlock all accounts via a script within the container.
```shell
docker exec -it mealie bash
python /opt/mealie/lib64/python3.12/site-packages/mealie/scripts/reset_locked_users.py
```
??? question "How can I reset admin privileges for my account?"
### How can I reset admin privileges for my account?
If you've lost admin privileges and no other admin can restore them, you can use the Command Line Interface (CLI) to grant admin access.
```shell
docker exec -it mealie bash
python /opt/mealie/lib64/python3.12/site-packages/mealie/scripts/make_admin.py
```
??? question "How can I change my password?"
### How can I change my password?
You can change your password by going to the user profile page and clicking the "Change Password" button. Alternatively you can use the following script to change your password via the CLI if you are locked out of your account.
```shell
docker exec -it mealie bash
python /opt/mealie/lib64/python3.12/site-packages/mealie/scripts/change_password.py
```
??? question "I can't log in with external auth. How can I change my authentication method?"
### I can't log in with external auth. How can I change my authentication method?
Follow the [steps above](#how-can-i-change-my-password) for changing your password. You will be prompted if you would like to switch your authentication method back to local auth so you can log in again.
## Collaboration and Privacy
??? question "How do private groups, households, and recipes work?"
### How do private groups, households, and recipes work?
Managing private groups and recipes can be confusing. The following diagram and notes should help explain how they work to determine if a recipe can be shared publicly.
- Private links that are generated from the recipe page using the `Share` button bypass all group and recipe permissions
- Private groups block all access to recipes, including those that are public, except as noted above.
- Private households, similar to private groups, block all access to recipes, except as noted above.
- Households with "Allow users outside of your group to see your recipes" disabled block all access to recipes, except as noted above.
- Private recipes block all access to the recipe from public links. This does not affect Private Links.
```mermaid
stateDiagram-v2
r1: Request Access
p1: Using Private Link?
p2: Is Group Private?
p3: Is Household Private?
p4: Is Recipe Private?
s1: Deny Access
n1: Allow Access
r1 --> p1
p1 --> p2: No
p1 --> n1: Yes
p2 --> s1: Yes
p2 --> p3: No
p3 --> s1: Yes
p3 --> p4: No
p4 --> s1: Yes
p4 --> n1: No
```
For more information on public access, check out the [Permissions and Public Access guide](./usage/permissions-and-public-access.md). For more information on groups vs. households, check out the [Groups and Households](./features.md#groups-and-households) section in the Features guide.
## Security and Maintenance
??? question "How can I use Mealie externally?"
### How can I use Mealie externally
Exposing Mealie or any service to the internet can pose significant security risks. Before proceeding, carefully evaluate the potential impacts on your system. Due to the unique nature of each network, we cannot provide specific steps for your setup.
There is a community guide available for one way to potentially set this up, and you could reach out on Discord for further discussion on what may be best for your network.
??? question "Can I use fail2ban with Mealie?"
### Can I use fail2ban with Mealie?
Yes, Mealie is configured to properly forward external IP addresses into the `mealie.log` logfile. Note that due to restrictions in docker, IP address forwarding only works on Linux.
Your fail2ban usage should look like the following:
```
Use datepattern : %d-%b-%y %H:%M:%S : Day-MON-Year2 24hour:Minute:Second
Use failregex line : ^ERROR:\s+Incorrect username or password from <HOST>
```
??? question "Is it safe to upgrade Mealie?"
### Is it safe to upgrade Mealie?
Yes. If you are using the v1 branches (including beta), you can upgrade to the latest version of Mealie without performing a site Export/Restore. This process was required in previous versions of Mealie, however we've automated the database migration process to make it easier to upgrade. Note that if you were using the v0.5.x version, you CANNOT upgrade to the latest version automatically. You must follow the migration instructions in the documentation.
- [Migration From v0.5.x](./migrating-to-mealie-v1.md)
## Technical Considerations
??? question "Why setup Email?"
### Why setup Email?
Mealie uses email to send account invites and password resets. If you don't use these features, you don't need to set up email. There are also other methods to perform these actions that do not require the setup of Email.
Email settings can be adjusted via environment variables on the backend container:
- [Backend Config](./installation/backend-config.md)
Note that many email providers (e.g., Gmail, Outlook) are disabling SMTP Auth and requiring Modern Auth, which Mealie currently does not support. You may need to use an SMTP relay or third-party SMTP provider, such as SMTP2GO.
??? question "Why an API?"
### Why an API?
An API allows integration into applications like [Home Assistant](https://www.home-assistant.io/) that can act as notification engines to provide custom notifications based on Meal Plan data to remind you to defrost the chicken, marinate the steak, or start the CrockPot. Additionally, you can access nearly any backend service via the API giving you total control to extend the application. To explore the API spin up your server and navigate to http://yourserver.com/docs for interactive API documentation.
??? question "Why a database?"
### Why a database?
Some users of static-site generator applications like ChowDown have expressed concerns about their data being stuck in a database. Considering this is a new project, it is a valid concern to be worried about your data. Mealie specifically addresses this concern by providing automatic daily backups that export your data in json, plain-text markdown files, and/or custom Jinja2 templates. **This puts you in control of how your data is represented** when exported from Mealie, which means you can easily migrate to any other service provided Mealie doesn't work for you.
As to why we need a database?
- **Developer Experience:** Without a database, a lot of the work to maintain your data is taken on by the developer instead of a battle-tested platform for storing data.
- **Multi User Support:** With a solid database as backend storage for your data, Mealie can better support multi-user sites and avoid read/write access errors when multiple actions are taken at the same time.
## Usability
??? question "Why is there no 'Keep Screen Alive' button when I access a recipe?"
### Why is there no "Keep Screen Alive" button when I access a recipe?
You've perhaps visited the Mealie Demo and noticed that it had a "Keep Screen Alive" button, but it doesn't show up in your own Mealie instance.
There are typically two possible reasons for this:
1. You're accessing your Mealie instance without using HTTPS. The Wake Lock API is only available if HTTPS is used. Read more here: https://developer.mozilla.org/en-US/docs/Web/API/Screen_Wake_Lock_API
2. You're accessing your Mealie instance on a browser which doesn't support the API. You can test this here: https://vueuse.org/core/useWakeLock/#demo
Solving the above points will most likely resolve your issues. However, if you're still having problems, you are welcome to create an issue. Just remember to add that you've tried the above two options first in your description.

View File

@@ -14,10 +14,15 @@ Mealie offers two main ways to create recipes. You can use the integrated recipe
Mealie supports importing recipes from a few other sources besides websites. Currently the following sources are supported:
- Mealie Pre v1
- Tandoor
- Nextcloud Cookbooks
- Paprika
- Chowdown
- Plan to Eat
- Recipe Keeper
- Copy Me That
- My Recipe Box
- DVO Cook'n X3
You can access these options on your installation at the `/group/migrations` page on your installation. If you'd like to see another source added, feel free to request so on Github.
@@ -31,8 +36,7 @@ Mealie has a robust and flexible recipe organization system with a few different
#### Categories
Categories are the overarching organizer for recipes. You can assign as many categories as you'd like to a recipe, but we recommend that you try to limit the categories you assign to a recipe to one or two. This helps keep categories as focused as possible while still allowing you to find recipes that are related to each other. For example, you might assign a recipe to the category **Breakfast**, **Lunch**, **Dinner**, or **Side**.
Categories are the overarching organizer for recipes. You can assign as many categories as you'd like to a recipe, but we recommend that you try to limit the categories you assign to a recipe to one or two. This helps keep categories as focused as possible while still allowing you to find recipes that are related to each other. For example, you might assign a recipe to the category **Breakfast**, **Lunch**, **Dinner**, **Side**, or **Drinks**.
[Categories Demo](https://demo.mealie.io/g/home/recipes/categories){ .md-button .md-button--primary }
@@ -69,24 +73,103 @@ Mealie uses a calendar like view to help you plan your meals. It shows you the p
!!! tip
You can also add a "Note" type entry to your meal-plan when you want to include something that might not have a specific recipes. This is great for leftovers, or for ordering out.
[Mealplanner Demo](https://demo.mealie.io/group/mealplan/planner/view){ .md-button .md-button--primary }
[Mealplanner Demo](https://demo.mealie.io/household/mealplan/planner/view){ .md-button .md-button--primary }
### Planner Rules
The meal planner has the concept of plan rules. These offer a flexible way to use your organizers to customize how a random recipe is inserted into your meal plan. You can set rules to restrict the pool of recipes based on the Tags and/or Categories of a recipe. Additionally, since meal plans have a Breakfast, Lunch, Dinner, and Snack labels, you can specifically set a rule to be active for a **specific meal type** or even a **specific day of the week.**
[Planner Settings Demo](https://demo.mealie.io/group/mealplan/settings){ .md-button .md-button--primary }
[Planner Settings Demo](https://demo.mealie.io/household/mealplan/settings){ .md-button .md-button--primary }
## Shopping Lists
The shopping lists feature is a great way to keep track of what you need to buy for your next meal. You can add items directly to the shopping list or link a recipe and all of it's ingredients to track meals during the week.
!!! warning
At this time there isn't a tight integration between meal-plans and shopping lists; however, it's something we have planned for the future.
Managing shopping lists can be done from the Sidebar > Shopping Lists.
Here you will be able to:
- See items already on the Shopping List
- See linked recipes with ingredients
- Toggling via the 'Pot' icon will show you the linked recipe, allowing you to click to access it.
- Check off an item
- Add / Change / Remove / Sort Items via the grid icon
- Be sure if you are modifying an ingredient to click the 'Save' icon.
- Add / Change / Remove / Sort Labels
- 'No Label' will always be on the top, others can be Reordered via the 'Reorder Labels' button
!!! tip
If you accidentally checked off an item, you can uncheck it by expanding 'items checked' and unchecking it. This will add it back to the Shopping List.
!!! tip
You can use Labels to categorize your ingredients. You may want to Label by Food Type (Frozen, Fresh, etc), by Store, Tool, Recipe, or more. Play around with this to see what works best for you.
!!! tip
You can toggle 'Food' on items so that if you add multiple of the same food / ingredient, Mealie will automatically combine them together. Do this by editing an item in the Shopping List and clicking the 'Apple' icon. If you then have recipes that contain "1 | cup | cheese" and "2 | cup | cheese" this would be combined to show "3 cups of cheese."
[See FAQ for more information](../getting-started/faq.md)
[Shopping List Demo](https://demo.mealie.io/shopping-lists){ .md-button .md-button--primary }
## Integrations
Mealie is designed to integrate with many different external services. There are several ways you can integrate with Mealie to achieve custom IoT automations, data synchronization, and anything else you can think of. [You can work directly with Mealie through the API](./api-usage.md), or leverage other services to make seamless integrations.
### Notifiers
Notifiers are event-driven notifications sent when specific actions are performed within Mealie. Some actions include:
- Creating / Updating a recipe
- Adding items to a shopping list
- Creating a new mealplan
Notifiers use the [Apprise library](https://github.com/caronc/apprise/wiki), which integrates with a large number of notification services. In addition, certain custom notifiers send basic event data to the consumer (e.g. the `id` of the resource). These include:
- `form` and `forms`
- `json` and `jsons`
- `xml` and `xmls`
[Notifiers Demo](https://demo.mealie.io/household/notifiers){ .md-button .md-button--primary }
### Webhooks
Unlike notifiers, which are event-driven notifications, Webhooks allow you to send scheduled notifications to your desired endpoint. Webhooks are sent on the day of a scheduled mealplan, at the specified time, and contain the mealplan data in the request.
[Webhooks Demo](https://demo.mealie.io/household/webhooks){ .md-button .md-button--primary }
### Recipe Actions
Recipe Actions are custom actions you can add to all recipes in Mealie. This is a great way to add custom integrations that are fired manually. There are two types of recipe actions:
1. link - these actions will take you directly to an external page. Merge fields can be used to customize the URL for each recipe
2. post - these actions will send a `POST` request to the specified URL, with the recipe JSON in the request body. These can be used, for instance, to manually trigger a webhook in Home Assistant
When using the "link" action type, Recipe Action URLs can include merge fields to inject the current recipe's data. For instance, you can use the following URL to include a Google search with the recipe's slug:
```
https://www.google.com/search?q=${slug}
```
When the action is clicked on, the `${slug}` field is replaced with the recipe's slug value. So, for example, it might take you to this URL on one of your recipes:
```
https://www.google.com/search?q=pasta-fagioli
```
A common use case for "link" recipe actions is to integrate with the Bring! shopping list. Simply add a Recipe Action with the following URL:
```
https://api.getbring.com/rest/bringrecipes/deeplink?url=${url}&source=web
```
Below is a list of all valid merge fields:
- ${id}
- ${slug}
- ${url}
- ${servings}
- ${yieldQuantity}
- ${yieldText}
To add, modify, or delete Recipe Actions, visit the Data Management page (more on that below).
## Data Management
@@ -109,6 +192,48 @@ Managing a robust collection of recipes inevitable requires a lot of data. Meali
[Data Management Demo](https://demo.mealie.io/group/data/foods){ .md-button .md-button--primary }
## Groups and Households
Mealie lets you fully customize how you organize your users. You can use Groups to host multiple instances (or tenants) of Mealie which are completely isolated from each other. Within each Group you can organize users into Households which allow users to share recipes, but keep other items separate (e.g. meal plans and shopping lists).
### Groups
Groups are fully isolated instances of Mealie. Think of a goup as a completely separate, fully self-contained site. There is no data shared between groups. Each group has its own users, recipes, tags, categories, etc. A user logged-in to one group cannot make any changes to another.
Common use cases for groups include:
- Hosting multiple instances of Mealie for others who want to keep their data private and secure
- Creating completely isolated recipe pools
### Households
Households are subdivisions within a single Group. Households maintain their own users and settings, while sharing their recipes with other households. Households also share organizers (tags, categories, etc.) with the entire group. Meal Plans, Shopping Lists, and Integrations are only accessible within a household.
Common use cases for households include:
- Sharing a common recipe pool amongst families
- Maintaining separate meal plans and shopping lists from other households
- Maintaining separate integrations and customizations from other households
```mermaid
flowchart TB
mealie[(Mealie)] ==> groups
%% Groups
groups((Groups)) --> ingredients & organizers
groups((Groups)) ====> households
ingredients("Ingredients<br/>(Foods, Units, Labels)")
organizers("Organizers<br/>(Categories, Tags, Tools)")
%% Households
households((Households)) --> recipes & mealplans & shoppinglists & integrations
recipes(Recipes & Cookbooks)
mealplans(Meal Plans)
shoppinglists(Shopping Lists)
integrations("Integrations<br/>(Notifiers, Webhooks)")
```
## Server Administration
### Site Settings
@@ -117,11 +242,13 @@ The site settings page contains general information about your installation like
[Settings Demo](https://demo.mealie.io/admin/site-settings){ .md-button .md-button--primary }
### Users and Group
### Users, Households, and Groups
There is a small management area for users and groups that allows you to create, edit, and delete users and groups.
There is a small management area for users, households, and groups.
[Users Demo](https://demo.mealie.io/admin/manage/users){ .md-button .md-button--primary }
[Households Demo](https://demo.mealie.io/admin/manage/households){ .md-button .md-button--primary }
[Groups Demo](https://demo.mealie.io/admin/manage/groups){ .md-button .md-button--primary }
### Backups

View File

@@ -4,17 +4,24 @@
### General
| Variables | Default | Description |
| ------------- | :-------------------: | ----------------------------------------------------------------------------------- |
| PUID | 911 | UserID permissions between host OS and container |
| PGID | 911 | GroupID permissions between host OS and container |
| DEFAULT_GROUP | Home | The default group for users |
| BASE_URL | http://localhost:8080 | Used for Notifications |
| TOKEN_TIME | 48 | The time in hours that a login/auth token is valid |
| API_PORT | 9000 | The port exposed by backend API. **Do not change this if you're running in Docker** |
| API_DOCS | True | Turns on/off access to the API documentation locally. |
| TZ | UTC | Must be set to get correct date/time on the server |
| ALLOW_SIGNUP | true | Allow user sign-up without token |
| Variables | Default | Description |
| ----------------------------- | :-------------------: | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
| PUID | 911 | UserID permissions between host OS and container |
| PGID | 911 | GroupID permissions between host OS and container |
| DEFAULT_GROUP | Home | The default group for users |
| DEFAULT_HOUSEHOLD | Family | The default household for users in each group |
| BASE_URL | http://localhost:8080 | Used for Notifications |
| TOKEN_TIME | 48 | The time in hours that a login/auth token is valid. Must be <= 9600 (400 days, in hours). |
| API_PORT | 9000 | The port exposed by backend API. **Do not change this if you're running in Docker** |
| API_DOCS | True | Turns on/off access to the API documentation locally |
| TZ | UTC | Must be set to get correct date/time on the server |
| ALLOW_SIGNUP<super>\*</super> | false | Allow user sign-up without token |
| ALLOW_PASSWORD_LOGIN | true | Whether or not to display the username+password input fields. Keep set to true unless you use OIDC authentication |
| LOG_CONFIG_OVERRIDE | | Override the config for logging with a custom path |
| LOG_LEVEL | info | Logging level (e.g. critical, error, warning, info, debug) |
| DAILY_SCHEDULE_TIME | 23:45 | The time of day to run daily server tasks, in HH:MM format. Use the server's local time, *not* UTC |
<super>\*</super> Starting in v1.4.0 this was changed to default to `false` as part of a security review of the application.
### Security
@@ -25,78 +32,283 @@
### Database
| Variables | Default | Description |
| ----------------- | :------: | -------------------------------- |
| DB_ENGINE | sqlite | Optional: 'sqlite', 'postgres' |
| POSTGRES_USER | mealie | Postgres database user |
| POSTGRES_PASSWORD | mealie | Postgres database password |
| POSTGRES_SERVER | postgres | Postgres database server address |
| POSTGRES_PORT | 5432 | Postgres database port |
| POSTGRES_DB | mealie | Postgres database name |
| Variables | Default | Description |
|---------------------------------------------------------|:--------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| DB_ENGINE | sqlite | Optional: 'sqlite', 'postgres' |
| SQLITE_MIGRATE_JOURNAL_WAL | False | If set to true, switches SQLite's journal mode to WAL, which allows for multiple concurrent accesses. This can be useful when you have a decent amount of concurrency or when using certain remote storage systems such as Ceph. |
| POSTGRES_USER<super>[&dagger;][secrets]</super> | mealie | Postgres database user |
| POSTGRES_PASSWORD<super>[&dagger;][secrets]</super> | mealie | Postgres database password |
| POSTGRES_SERVER<super>[&dagger;][secrets]</super> | postgres | Postgres database server address |
| POSTGRES_PORT<super>[&dagger;][secrets]</super> | 5432 | Postgres database port |
| POSTGRES_DB<super>[&dagger;][secrets]</super> | mealie | Postgres database name |
| POSTGRES_URL_OVERRIDE<super>[&dagger;][secrets]</super> | None | Optional Postgres URL override to use instead of POSTGRES\_\* variables |
### Email
| Variables | Default | Description |
| ------------------ | :-----: | ------------------------------------------------- |
| SMTP_HOST | None | Required For email |
| SMTP_PORT | 587 | Required For email |
| SMTP_FROM_NAME | Mealie | Required For email |
| SMTP_AUTH_STRATEGY | TLS | Required For email, Options: 'TLS', 'SSL', 'NONE' |
| SMTP_FROM_EMAIL | None | Required For email |
| SMTP_USER | None | Required if SMTP_AUTH_STRATEGY is 'TLS' or 'SSL' |
| SMTP_PASSWORD | None | Required if SMTP_AUTH_STRATEGY is 'TLS' or 'SSL' |
| Variables | Default | Description |
| ----------------------------------------------- | :-----: | ------------------------------------------------- |
| SMTP_HOST<super>[&dagger;][secrets]</super> | None | Required For email |
| SMTP_PORT<super>[&dagger;][secrets]</super> | 587 | Required For email |
| SMTP_FROM_NAME | Mealie | Required For email |
| SMTP_AUTH_STRATEGY | TLS | Required For email, Options: 'TLS', 'SSL', 'NONE' |
| SMTP_FROM_EMAIL | None | Required For email |
| SMTP_USER<super>[&dagger;][secrets]</super> | None | Required if SMTP_AUTH_STRATEGY is 'TLS' or 'SSL' |
| SMTP_PASSWORD<super>[&dagger;][secrets]</super> | None | Required if SMTP_AUTH_STRATEGY is 'TLS' or 'SSL' |
### Webworker
Changing the webworker settings may cause unforeseen memory leak issues with Mealie. It's best to leave these at the defaults unless you begin to experience issues with multiple users. Exercise caution when changing these settings
| Variables | Default | Description |
| ---------------- | :-----: | --------------------------------------------------------------------------------------------------------------------------------- |
| WEB_GUNICORN | false | Enables Gunicorn to manage Uvicorn web for multiple works |
| WORKERS_PER_CORE | 1 | Set the number of workers to the number of CPU cores multiplied by this value (Value \* CPUs). More info [here][workers_per_core] |
| MAX_WORKERS | None | Set the maximum number of workers to use. Default is not set meaning unlimited. More info [here][max_workers] |
| WEB_CONCURRENCY | 2 | Override the automatic definition of number of workers. More info [here][web_concurrency] |
| Variables | Default | Description |
| --------------- | :-----: | -------------------------------------------------------------------------------- |
| UVICORN_WORKERS | 1 | Sets the number of workers for the web server. [More info here][unicorn_workers] |
### TLS
Use this only when mealie is run without a webserver or reverse proxy.
| Variables | Default | Description |
| -------------------- | :-----: | ------------------------ |
| TLS_CERTIFICATE_PATH | None | File path to Certificate |
| TLS_PRIVATE_KEY_PATH | None | File path to private key |
### LDAP
| Variables | Default | Description |
| -------------------- | :-----: | ----------------------------------------------------------------------------------------------------------------------------------- |
| LDAP_AUTH_ENABLED | False | Authenticate via an external LDAP server in addidion to built-in Mealie auth |
| LDAP_SERVER_URL | None | LDAP server URL (e.g. ldap://ldap.example.com) |
| LDAP_TLS_INSECURE | False | Do not verify server certificate when using secure LDAP |
| LDAP_TLS_CACERTFILE | None | File path to Certificate Authority used to verify server certificate (e.g. `/path/to/ca.crt`) |
| LDAP_ENABLE_STARTTLS | False | Optional. Use STARTTLS to connect to the server |
| LDAP_BASE_DN | None | Starting point when searching for users authentication (e.g. `CN=Users,DC=xx,DC=yy,DC=de`) |
| LDAP_QUERY_BIND | None | Optional bind user for LDAP search queries (e.g. `cn=admin,cn=users,dc=example,dc=com`). If `None` then anonymous bind will be used |
| LDAP_QUERY_PASSWORD | None | Optional password for the bind user used in LDAP_QUERY_BIND |
| LDAP_USER_FILTER | None | Optional LDAP filter to narrow down eligible users (e.g. `(memberOf=cn=mealie_user,dc=example,dc=com)`) |
| LDAP_ADMIN_FILTER | None | Optional LDAP filter, which tells Mealie the LDAP user is an admin (e.g. `(memberOf=cn=admins,dc=example,dc=com)`) |
| LDAP_ID_ATTRIBUTE | uid | The LDAP attribute that maps to the user's id |
| LDAP_NAME_ATTRIBUTE | name | The LDAP attribute that maps to the user's name |
| LDAP_MAIL_ATTRIBUTE | mail | The LDAP attribute that maps to the user's email |
| Variables | Default | Description |
| ----------------------------------------------------- | :-----: | ----------------------------------------------------------------------------------------------------------------------------------- |
| LDAP_AUTH_ENABLED | False | Authenticate via an external LDAP server in addidion to built-in Mealie auth |
| LDAP_SERVER_URL<super>[&dagger;][secrets]</super> | None | LDAP server URL (e.g. ldap://ldap.example.com) |
| LDAP_TLS_INSECURE | False | Do not verify server certificate when using secure LDAP |
| LDAP_TLS_CACERTFILE | None | File path to Certificate Authority used to verify server certificate (e.g. `/path/to/ca.crt`) |
| LDAP_ENABLE_STARTTLS | False | Optional. Use STARTTLS to connect to the server |
| LDAP_BASE_DN | None | Starting point when searching for users authentication (e.g. `CN=Users,DC=xx,DC=yy,DC=de`) |
| LDAP_QUERY_BIND | None | Optional bind user for LDAP search queries (e.g. `cn=admin,cn=users,dc=example,dc=com`). If `None` then anonymous bind will be used |
| LDAP_QUERY_PASSWORD<super>[&dagger;][secrets]</super> | None | Optional password for the bind user used in LDAP_QUERY_BIND |
| LDAP_USER_FILTER | None | Optional LDAP filter to narrow down eligible users (e.g. `(memberOf=cn=mealie_user,dc=example,dc=com)`) |
| LDAP_ADMIN_FILTER | None | Optional LDAP filter, which tells Mealie the LDAP user is an admin (e.g. `(memberOf=cn=admins,dc=example,dc=com)`) |
| LDAP_ID_ATTRIBUTE | uid | The LDAP attribute that maps to the user's id |
| LDAP_NAME_ATTRIBUTE | name | The LDAP attribute that maps to the user's name |
| LDAP_MAIL_ATTRIBUTE | mail | The LDAP attribute that maps to the user's email |
### Themeing
### OpenID Connect (OIDC)
:octicons-tag-24: v1.4.0
For usage, see [Usage - OpenID Connect](../authentication/oidc-v2.md)
| Variables | Default | Description |
| ----------------------------------------------------------------------------------- | :-----: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| OIDC_AUTH_ENABLED | False | Enables authentication via OpenID Connect |
| OIDC_SIGNUP_ENABLED | True | Enables new users to be created when signing in for the first time with OIDC |
| OIDC_CONFIGURATION_URL<super>[&dagger;][secrets]</super> | None | The URL to the OIDC configuration of your provider. This is usually something like https://auth.example.com/.well-known/openid-configuration |
| OIDC_CLIENT_ID<super>[&dagger;][secrets]</super> | None | The client id of your configured client in your provider |
| OIDC_CLIENT_SECRET<super>[&dagger;][secrets]</super> <br/> :octicons-tag-24: v2.0.0 | None | The client secret of your configured client in your provider |
| OIDC_USER_GROUP | None | If specified, only users belonging to this group will be able to successfully authenticate, regardless of the `OIDC_ADMIN_GROUP`. For more information see [this page](../authentication/oidc.md#groups) |
| OIDC_ADMIN_GROUP | None | If specified, users belonging to this group will be made an admin. For more information see [this page](../authentication/oidc.md#groups) |
| OIDC_AUTO_REDIRECT | False | If `True`, then the login page will be bypassed an you will be sent directly to your Identity Provider. You can still get to the login page by adding `?direct=1` to the login URL |
| OIDC_PROVIDER_NAME | OAuth | The provider name is shown in SSO login button. "Login with <OIDC_PROVIDER_NAME\>" |
| OIDC_REMEMBER_ME | False | Because redirects bypass the login screen, you cant extend your session by clicking the "Remember Me" checkbox. By setting this value to true, a session will be extended as if "Remember Me" was checked |
| OIDC_SIGNING_ALGORITHM | RS256 | The algorithm used to sign the id token (examples: RS256, HS256) |
| OIDC_USER_CLAIM | email | This is the claim which Mealie will use to look up an existing user by (e.g. "email", "preferred_username") |
| OIDC_NAME_CLAIM | name | This is the claim which Mealie will use for the users Full Name |
| OIDC_GROUPS_CLAIM | groups | Optional if not using `OIDC_USER_GROUP` or `OIDC_ADMIN_GROUP`. This is the claim Mealie will request from your IdP and will use to compare to `OIDC_USER_GROUP` or `OIDC_ADMIN_GROUP` to allow the user to log in to Mealie or is set as an admin. **Your IdP must be configured to grant this claim** |
| OIDC_SCOPES_OVERRIDE | None | Advanced configuration used to override the scopes requested from the IdP. **Most users won't need to change this**. At a minimum, 'openid profile email' are required. |
| OIDC_TLS_CACERTFILE | None | File path to Certificate Authority used to verify server certificate (e.g. `/path/to/ca.crt`) |
### OpenAI
:octicons-tag-24: v1.7.0
Mealie supports various integrations using OpenAI. For more information, check out our [OpenAI documentation](./open-ai.md).
For custom mapping variables (e.g. OPENAI_CUSTOM_HEADERS) you should pass values as JSON encoded strings (e.g. `OPENAI_CUSTOM_PARAMS='{"k1": "v1", "k2": "v2"}'`)
| Variables | Default | Description |
| ------------------------------------------------- | :-----: | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| OPENAI_BASE_URL<super>[&dagger;][secrets]</super> | None | The base URL for the OpenAI API. If you're not sure, leave this empty to use the standard OpenAI platform |
| OPENAI_API_KEY<super>[&dagger;][secrets]</super> | None | Your OpenAI API Key. Enables OpenAI-related features |
| OPENAI_MODEL | gpt-4o | Which OpenAI model to use. If you're not sure, leave this empty |
| OPENAI_CUSTOM_HEADERS | None | Custom HTTP headers to add to all OpenAI requests. This should generally be left empty unless your custom service requires them |
| OPENAI_CUSTOM_PARAMS | None | Custom HTTP query params to add to all OpenAI requests. This should generally be left empty unless your custom service requires them |
| OPENAI_ENABLE_IMAGE_SERVICES | True | Whether to enable OpenAI image services, such as creating recipes via image. Leave this enabled unless your custom model doesn't support it, or you want to reduce costs |
| OPENAI_WORKERS | 2 | Number of OpenAI workers per request. Higher values may increase processing speed, but will incur additional API costs |
| OPENAI_SEND_DATABASE_DATA | True | Whether to send Mealie data to OpenAI to improve request accuracy. This will incur additional API costs |
| OPENAI_REQUEST_TIMEOUT | 300 | The number of seconds to wait for an OpenAI request to complete before cancelling the request. Leave this empty unless you're running into timeout issues on slower hardware |
### Theming
Setting the following environmental variables will change the theme of the frontend. Note that the themes are the same for all users. This is a break-change when migration from v0.x.x -> 1.x.x.
| Variables | Default | Description |
| --------------------- | :-----: | --------------------------- |
| THEME_LIGHT_PRIMARY | #E58325 | Light Theme Config Variable |
| THEME_LIGHT_ACCENT | #007A99 | Light Theme Config Variable |
| THEME_LIGHT_SECONDARY | #973542 | Light Theme Config Variable |
| THEME_LIGHT_SUCCESS | #43A047 | Light Theme Config Variable |
| THEME_LIGHT_INFO | #1976D2 | Light Theme Config Variable |
| THEME_LIGHT_WARNING | #FF6D00 | Light Theme Config Variable |
| THEME_LIGHT_ERROR | #EF5350 | Light Theme Config Variable |
| THEME_DARK_PRIMARY | #E58325 | Dark Theme Config Variable |
| THEME_DARK_ACCENT | #007A99 | Dark Theme Config Variable |
| THEME_DARK_SECONDARY | #973542 | Dark Theme Config Variable |
| THEME_DARK_SUCCESS | #43A047 | Dark Theme Config Variable |
| THEME_DARK_INFO | #1976D2 | Dark Theme Config Variable |
| THEME_DARK_WARNING | #FF6D00 | Dark Theme Config Variable |
| THEME_DARK_ERROR | #EF5350 | Dark Theme Config Variable |
!!! info
If you're setting these variables but not seeing these changes persist, try removing the `#` character. Also, depending on which syntax you're using, double-check you're using quotes correctly.
If using YAML mapping syntax, be sure to include quotes around these values, otherwise they will be treated as comments in your YAML file:<br>`THEME_LIGHT_PRIMARY: '#E58325'` or `THEME_LIGHT_PRIMARY: 'E58325'`
If using YAML sequence syntax, don't include any quotes:<br>`THEME_LIGHT_PRIMARY=#E58325` or `THEME_LIGHT_PRIMARY=E58325`
| Variables | Default | Description |
| --------------------- | :-----: | ---------------------------------- |
| THEME_LIGHT_PRIMARY | #E58325 | Main brand color and headers |
| THEME_LIGHT_ACCENT | #007A99 | Buttons and interactive elements |
| THEME_LIGHT_SECONDARY | #973542 | Navigation and sidebar backgrounds |
| THEME_LIGHT_SUCCESS | #43A047 | Success messages and confirmations |
| THEME_LIGHT_INFO | #1976D2 | Information alerts and tooltips |
| THEME_LIGHT_WARNING | #FF6D00 | Warning notifications |
| THEME_LIGHT_ERROR | #EF5350 | Error messages and alerts |
| THEME_DARK_PRIMARY | #E58325 | Main brand color and headers |
| THEME_DARK_ACCENT | #007A99 | Buttons and interactive elements |
| THEME_DARK_SECONDARY | #973542 | Navigation and sidebar backgrounds |
| THEME_DARK_SUCCESS | #43A047 | Success messages and confirmations |
| THEME_DARK_INFO | #1976D2 | Information alerts and tooltips |
| THEME_DARK_WARNING | #FF6D00 | Warning notifications |
| THEME_DARK_ERROR | #EF5350 | Error messages and alerts |
#### Theming Examples
The examples below provide copy-ready Docker Compose environment configurations for three different color palettes. Copy and paste the desired theme into your `docker-compose.yml` file's environment section.
!!! info
These themes are functional and ready to use, but they are provided primarily as examples. The color palettes can be adjusted or refined to better suit your preferences.
=== "Blue Theme"
```yaml
environment:
# Light mode colors
THEME_LIGHT_PRIMARY: '#5E9BD1'
THEME_LIGHT_ACCENT: '#A3C9E8'
THEME_LIGHT_SECONDARY: '#4F89BA'
THEME_LIGHT_SUCCESS: '#4CAF50'
THEME_LIGHT_INFO: '#4A9ED8'
THEME_LIGHT_WARNING: '#EAC46B'
THEME_LIGHT_ERROR: '#E57373'
# Dark mode colors
THEME_DARK_PRIMARY: '#5A8FBF'
THEME_DARK_ACCENT: '#90B8D9'
THEME_DARK_SECONDARY: '#406D96'
THEME_DARK_SUCCESS: '#81C784'
THEME_DARK_INFO: '#78B2C0'
THEME_DARK_WARNING: '#EBC86E'
THEME_DARK_ERROR: '#E57373'
```
=== "Green Theme"
```yaml
environment:
# Light mode colors
THEME_LIGHT_PRIMARY: '#75A86C'
THEME_LIGHT_ACCENT: '#A8D0A6'
THEME_LIGHT_SECONDARY: '#638E5E'
THEME_LIGHT_SUCCESS: '#4CAF50'
THEME_LIGHT_INFO: '#4A9ED8'
THEME_LIGHT_WARNING: '#EAC46B'
THEME_LIGHT_ERROR: '#E57373'
# Dark mode colors
THEME_DARK_PRIMARY: '#739B7A'
THEME_DARK_ACCENT: '#9FBE9D'
THEME_DARK_SECONDARY: '#56775E'
THEME_DARK_SUCCESS: '#81C784'
THEME_DARK_INFO: '#78B2C0'
THEME_DARK_WARNING: '#EBC86E'
THEME_DARK_ERROR: '#E57373'
```
=== "Pink Theme"
```yaml
environment:
# Light mode colors
THEME_LIGHT_PRIMARY: '#D97C96'
THEME_LIGHT_ACCENT: '#E891A7'
THEME_LIGHT_SECONDARY: '#C86C88'
THEME_LIGHT_SUCCESS: '#4CAF50'
THEME_LIGHT_INFO: '#2196F3'
THEME_LIGHT_WARNING: '#FFC107'
THEME_LIGHT_ERROR: '#E57373'
# Dark mode colors
THEME_DARK_PRIMARY: '#C2185B'
THEME_DARK_ACCENT: '#FF80AB'
THEME_DARK_SECONDARY: '#AD1457'
THEME_DARK_SUCCESS: '#81C784'
THEME_DARK_INFO: '#64B5F6'
THEME_DARK_WARNING: '#FFD54F'
THEME_DARK_ERROR: '#E57373'
```
### Docker Secrets
> <super>&dagger;</super> Starting in version `2.4.2`, any environment variable in the preceding lists with a dagger
> symbol next to them support the Docker Compose secrets pattern, below.
[Docker Compose secrets][docker-secrets] can be used to secure sensitive information regarding the Mealie implementation
by managing control of each secret independently from the single `.env` file. This is helpful for users that may need
different levels of access for various, sensitive environment variables, such as differentiating between hardening
operations (e.g., server endpoints and ports) and user access control (e.g., usernames, passwords, and API keys).
To convert any of these environment variables to a Docker Compose secret, append `_FILE` to the environment variable and
connect it with a Docker Compose secret, per the [Docker documentation][docker-secrets].
If both the base environment variable and the secret pattern of the environment variable are set, the secret will always
take precedence.
For example, a user that wishes to harden their operations by only giving some access to their database URL, but who
wish to place additional security around their user access control, may have a Docker Compose configuration similar to:
[workers_per_core]: https://github.com/tiangolo/uvicorn-gunicorn-docker/blob/2daa3e3873c837d5781feb4ff6a40a89f791f81b/README.md#workers_per_core
[max_workers]: https://github.com/tiangolo/uvicorn-gunicorn-docker/blob/2daa3e3873c837d5781feb4ff6a40a89f791f81b/README.md#max_workers
[web_concurrency]: https://github.com/tiangolo/uvicorn-gunicorn-docker/blob/2daa3e3873c837d5781feb4ff6a40a89f791f81b/README.md#web_concurrency
```yaml
services:
mealie:
secrets:
# These secrets will be loaded by Docker into the `/run/secrets` folder within the container.
- postgres-host
- postgres-port
- postgres-db-name
- postgres-user
- postgres-password
environment:
DB_ENGINE: postgres
POSTGRES_SERVER: duplicate.entry.tld # This will be ignored, due to the secret defined, below.
POSTGRES_SERVER_FILE: /run/secrets/postgres-host
POSTGRES_PORT_FILE: /run/secrets/postgres-port
POSTGRES_DB_FILE: /run/secrets/postgres-db-name
POSTGRES_USER_FILE: /run/secrets/postgres-user
POSTGRES_PASSWORD_FILE: /run/secrets/postgres-password
# Each of these secrets are loaded via these local files. Different patterns are available. See the Docker Compose
# documentation for more information.
secrets:
postgres-host:
file: ./secrets/postgres-host.txt
postgres-port:
file: ./secrets/postgres-port.txt
postgres-db-name:
file: ./secrets/sensitive/postgres-db-name.txt
postgres-user:
file: ./secrets/sensitive/postgres-user.txt
postgres-password:
file: ./secrets/sensitive/postgres-password.txt
```
In the example above, a directory organization and access pattern may look like the following:
```text
.
├── docker-compose.yml
└── secrets # Access restricted to anyone that can manage secrets
├── postgres-host.txt
├── postgres-port.txt
└── sensitive # Access further-restricted to anyone managing service accounts
├── postgres-db-name.txt
├── postgres-password.txt
└── postgres-user.txt
```
How you organize your secrets is ultimately up to you. At minimum, it's highly recommended to use secret patterns for
at least these sensitive environment variables when working within shared environments:
- `POSTGRES_PASSWORD`
- `SMTP_PASSWORD`
- `LDAP_QUERY_PASSWORD`
- `OPENAI_API_KEY`
[docker-secrets]: https://docs.docker.com/compose/use-secrets/
[secrets]: #docker-secrets
[unicorn_workers]: https://www.uvicorn.org/deployment/#built-in

View File

@@ -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:
1. Take a backup just in case!
2. Replace the image for the API container with `ghcr.io/mealie-recipes/mealie:v1.0.0-RC1.1`
2. Replace the image for the API container with `ghcr.io/mealie-recipes/mealie:v3.8.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.
4. Restart the container
@@ -58,16 +58,16 @@ The following steps were tested on a Ubuntu 20.04 server, but should work for mo
4. Create a docker-compose.yaml file in the mealie directory: `touch docker-compose.yaml`
5. Use the text editor of your choice to edit the file and copy the contents of the docker-compose template for the deployment type you want to use: `nano docker-compose.yaml` or `vi docker-compose.yaml`
## Step 2: Customizing The `docker-compose.yaml` files.
## Step 3: Customizing The `docker-compose.yaml` files.
After you've decided setup the files it's important to set a few ENV variables to ensure that you can use all the features of Mealie. I recommend that you verify and check that:
After you've decided how to set up your files, it's important to set a few ENV variables to ensure that you can use all the features of Mealie. Verify that:
- [x] You've configured the relevant ENV variables for your database selection in the `docker-compose.yaml` files.
- [x] You've configured the [SMTP server settings](./backend-config.md#email) (used for invitations, password resets, etc). You can setup a [google app password](https://support.google.com/accounts/answer/185833?hl=en) if you want to send email via gmail.
- [x] You've set the [`BASE_URL`](./backend-config.md#general) variable.
- [x] You've set the `DEFAULT_EMAIL` and `DEFAULT_GROUP` variable.
- [x] You've set the `DEFAULT_EMAIL`, `DEFAULT_GROUP`, and `DEFAULT_HOUSEHOLD` variables.
## Step 3: Startup
## Step 4: Startup
After you've configured your database and updated the `docker-compose.yaml` files, you can start Mealie by running the following command in the directory where you've added your `docker-compose.yaml`.
@@ -87,11 +87,11 @@ You should see the containers start up without error. You should now be able to
**Password:** MyPassword
## Step 4: Validate Installation
## Step 5: Validate Installation
After the startup is complete, you should see a login screen. Use the default credentials above to log in and navigate to `/admin/site-settings`. Here, you'll find a summary of your configuration details and their respective status. Before proceeding, you should validate that the configuration is correct. For any warnings or errors the page will display an error and notify you of what you need to verify.
## Step 5: Backup
## Step 6: Backup
While v1.0.0 is a great step to data-stability and security, it's not a backup. Mealie provides a full site data backup mechanism through the UI.
@@ -101,7 +101,7 @@ These backups are just plain .zip files that you can download from the UI or acc
### Docker Tags
See all available tags on [GitHub](https://github.com/mealie-recipes/mealie/pkgs/container/mealie). We do not currently publish new images to Dockerhub.
See all available tags on [GitHub](https://github.com/mealie-recipes/mealie/pkgs/container/mealie).
`ghcr.io/mealie-recipes/mealie:nightly`
@@ -117,7 +117,7 @@ The latest tag provides the latest released image of Mealie.
---
**These tags no are long updated**
**These tags are no longer updated**
`mealie:frontend-v1.0.0beta-x` **and** `mealie:api-v1.0.0beta-x`

View File

@@ -0,0 +1,16 @@
# Logs
:octicons-tag-24: v1.5.0
## Highlights
- Logs are written to `/app/data/mealie.log` by default in the container.
- Logs are also written to stdout and stderr.
- You can adjust the log level using the `LOG_LEVEL` environment variable.
## Configuration
Starting in v1.5.0 logging is now highly configurable. Using the `LOG_CONFIG_OVERRIDE` you can provide the application with a custom configuration to log however you'd like. This configuration file is based off the [Python Logging Config](https://docs.python.org/3/library/logging.config.html#logging.config.fileConfig). It can be difficult to understand the configuration at first, so here are some resources to help get started.
- This [YouTube Video](https://www.youtube.com/watch?v=9L77QExPmI0) for a great walkthrough on the logging file format.
- Our [Logging Config](https://github.com/mealie-recipes/mealie/blob/mealie-next/mealie/core/logger/logconf.prod.json).

View File

@@ -0,0 +1,18 @@
# OpenAI Integration
:octicons-tag-24: v1.7.0
Mealie's OpenAI integration enables several features and enhancements throughout the application. To enable OpenAI features, you must have an account with OpenAI and configure Mealie to use the OpenAI API key (for more information, check out the [backend configuration](./backend-config.md#openai)).
## Configuration
For most users, supplying the OpenAI API key is all you need to do; you will use the regular OpenAI service with the default language model. Note that while OpenAI has a free tier, it's not sufficiently capable for Mealie (or most other production use cases). For more information, check out [OpenAI's rate limits](https://platform.openai.com/docs/guides/rate-limits). If you deposit $5 into your OpenAI account, you will be permanently bumped up to Tier 1, which is sufficient for Mealie. Cost per-request is dependant on many factors, but Mealie tries to keep token counts conservative.
Alternatively, if you have another service you'd like to use in-place of OpenAI, you can configure Mealie to use that instead, as long as it has an OpenAI-compatible API. For instance, a common self-hosted alternative to OpenAI is [Ollama](https://ollama.com/). To use Ollama with Mealie, change your `OPENAI_BASE_URL` to `http://localhost:11434/v1` (where `http://localhost:11434` is wherever you're hosting Ollama, and `/v1` enables the OpenAI-compatible endpoints). Note that you *must* provide an API key, even though it is ultimately ignored by Ollama.
If you wish to disable image recognition features (to save costs, or because your custom model doesn't support them) you can set `OPENAI_ENABLE_IMAGE_SERVICES` to `False`. For more information on what configuration options are available, check out the [backend configuration](./backend-config.md#openai).
## OpenAI Features
- The OpenAI Ingredient Parser can be used as an alternative to the NLP and Brute Force parsers. Simply choose the OpenAI parser while parsing ingredients (:octicons-tag-24: v1.7.0)
- When importing a recipe via URL, if the default recipe scraper is unable to read the recipe data from a webpage, the webpage contents will be parsed by OpenAI (:octicons-tag-24: v1.9.0)
- You can import an image of a written recipe, which is sent to OpenAI and imported into Mealie. The recipe can be hand-written or typed, as long as the text is in the picture. You can also optionally have OpenAI translate the recipe into your own language (:octicons-tag-24: v1.12.0)

View File

@@ -1,59 +1,64 @@
# Installing with PostgreSQL
!!! Warning
When upgrading postgresql major versions, manual steps are required [Postgres#37](https://github.com/docker-library/postgres/issues/37).
PostgreSQL might be considered if you need to support many concurrent users. In addition, some features are only enabled on PostgreSQL, such as fuzzy search.
**For Environment Variable Configuration, see** [Backend Configuration](./backend-config.md)
```yaml
---
version: "3.7"
services:
mealie:
image: ghcr.io/mealie-recipes/mealie:v1.3.1 # (3)
image: ghcr.io/mealie-recipes/mealie:v3.8.0 # (3)
container_name: mealie
restart: always
ports:
- "9925:9000" # (1)
deploy:
resources:
limits:
memory: 1000M # (2)
depends_on:
- postgres
volumes:
- mealie-data:/app/data/
environment:
# Set Backend ENV Variables Here
- ALLOW_SIGNUP=true
- PUID=1000
- PGID=1000
- TZ=America/Anchorage
- MAX_WORKERS=1
- WEB_CONCURRENCY=1
- BASE_URL=https://mealie.yourdomain.com
# Set Backend ENV Variables Here
ALLOW_SIGNUP: "false"
PUID: 1000
PGID: 1000
TZ: America/Anchorage
BASE_URL: https://mealie.yourdomain.com
# Database Settings
DB_ENGINE: postgres
POSTGRES_USER: mealie
POSTGRES_PASSWORD: mealie
POSTGRES_SERVER: postgres
POSTGRES_PORT: 5432
POSTGRES_DB: mealie
depends_on:
postgres:
condition: service_healthy
# Database Settings
- DB_ENGINE=postgres
- POSTGRES_USER=mealie
- POSTGRES_PASSWORD=mealie
- POSTGRES_SERVER=postgres
- POSTGRES_PORT=5432
- POSTGRES_DB=mealie
restart: always
postgres:
container_name: postgres
image: postgres:15
image: postgres:17
restart: always
volumes:
- mealie-pgdata:/var/lib/postgresql/data
environment:
POSTGRES_PASSWORD: mealie
POSTGRES_USER: mealie
PGUSER: mealie
POSTGRES_DB: mealie
healthcheck:
test: ["CMD", "pg_isready"]
interval: 30s
timeout: 20s
retries: 3
volumes:
mealie-data:
driver: local
mealie-pgdata:
driver: local
```
<!-- Updating This? Be Sure to also update the SQLite Annotations -->

View File

@@ -0,0 +1,43 @@
---
tags:
- Security
---
# Security Considerations
This page is a collection of security considerations for Mealie. It mostly deals with reported issues and how it's possible to mitigate them. Note that this page is for you to use as a guide for how secure you want to make your deployment. It's important to note that most of these will not apply to you, if you:
1. Run behind a VPN
2. Use a strong password
3. Disable Sign-Ups
4. Don't host for malicious users
Use your best judgement when deciding what to do.
## Denial of Service
By default, the API is **not** rate limited. This leaves Mealie open to a potential **Denial of Service Attack**. While it's possible to perform a **Denial of Service Attack** on any endpoint, there are a few key endpoints that are more vulnerable than others.
- `/api/recipes/create/url`
- `/api/recipes/{id}/image`
These endpoints are used to scrape data based off a user provided URL. It is possible for a malicious user to issue multiple requests to download an arbitrarily large external file (e.g a Debian ISO) and sufficiently saturate a CPU assigned to the container. While we do implement some protections against this by chunking the response, and using a timeout strategy, it's still possible to overload the CPU if an attacker issues multiple requests concurrently.
### Mitigation
If you'd like to mitigate this risk, we suggest that you rate limit the API in general, and apply strict rate limits to these endpoints. You can do this by utilizing a reverse proxy. See the following links to get started:
- [Traefik](https://doc.traefik.io/traefik/middlewares/http/ratelimit/)
- [Nginx](https://nginx.org/en/docs/http/ngx_http_limit_req_module.html)
- [Caddy](https://caddyserver.com/docs/modules/http.handlers.rate_limit)
## Server Side Request Forgery
- `/api/recipes/create/url`
- `/api/recipes/{id}/image`
Given the nature of these APIs it's possible to perform a **Server Side Request Forgery** attack. This is where a malicious user can issue a request to an internal network resource, and potentially exfiltrate data. We _do_ perform some checks to mitigate access to resources within your network but at the end of the day, users of Mealie are allowed to trigger HTTP requests on **your server**.
### Mitigation
If you'd like to mitigate this risk, we suggest that you isolate the container that Mealie is running in to ensure that it's access to internal resources is limited only to what is required. _Note that Mealie does require access to the internet for recipe imports._ You might consider isolating Mealie from your home network entirely and only allowing access to the external internet.

View File

@@ -9,12 +9,11 @@ SQLite is a popular, open source, self-contained, zero-configuration database th
**For Environment Variable Configuration, see** [Backend Configuration](./backend-config.md)
```yaml
---
version: "3.7"
services:
mealie:
image: ghcr.io/mealie-recipes/mealie:v1.3.1 # (3)
image: ghcr.io/mealie-recipes/mealie:v3.8.0 # (3)
container_name: mealie
restart: always
ports:
- "9925:9000" # (1)
deploy:
@@ -24,19 +23,15 @@ services:
volumes:
- mealie-data:/app/data/
environment:
# Set Backend ENV Variables Here
- ALLOW_SIGNUP=true
- PUID=1000
- PGID=1000
- TZ=America/Anchorage
- MAX_WORKERS=1
- WEB_CONCURRENCY=1
- BASE_URL=https://mealie.yourdomain.com
restart: always
# Set Backend ENV Variables Here
ALLOW_SIGNUP: "false"
PUID: 1000
PGID: 1000
TZ: America/Anchorage
BASE_URL: https://mealie.yourdomain.com
volumes:
mealie-data:
driver: local
```
<!-- Updating This? Be Sure to also update the Postgres Annotations -->

Some files were not shown because too many files have changed in this diff Show More