当前位置: 首页 > ai >正文

功能齐全的菜谱管理器Tamari

在这里插入图片描述

简介

什么是 Tamari ?

Tamari 是一个功能齐全的食谱管理 web 应用程序,使用 PythonFlask 框架构建。

主要功能:

  • 用户账户管理:允许用户创建账户、登录和重置密码。
  • 存储和分享食谱:用户可以保存食谱的标题、类别、描述、时间估算、份量、营养信息、成分、说明和照片,支持食谱的公共分享。
  • 组织和分类:用户可以将食谱标记为收藏,按类别浏览。
  • 购物清单功能:用户可以为每个商店组织购物清单,并快速添加食谱成分。
  • 餐食规划:用户可以使用餐食规划器为每周计划餐食。
  • 自定义选项:支持主题切换(浅色和深色),并可自定义账户设置。
  • REST API:提供全面的 API 以编程方式管理食谱、购物清单和餐食计划。

Tamari 可以通过 Docker 容器轻松安装,并在桌面、平板和手机等多种设备上访问。

官方提供了在线演示:https://app.tamariapp.com

安装

在群晖上以 Docker 方式安装。

在注册表中搜索 alexbates ,选择第一个 alexbates/tamari,版本选择 1.0

docker 文件夹中,创建一个新文件夹 tamari,并在其中建一个子文件夹 data

文件夹装载路径说明
docker/tamari/data/app/appdata存放数据库和图片文件等

端口

本地端口不冲突就行,不确定的话可以用命令查一下

# 查看端口占用
netstat -tunlp | grep 端口号
本地端口容器端口
48884888

命令行安装

如果你熟悉命令行,可能用 docker cli 更快捷

# 新建文件夹 tamari 和 子目录
mkdir -p /volume1/docker/tamari/data# 进入 tamari 目录
cd /volume1/docker/tamari# 运行容器
docker run -d \--restart unless-stopped \--name tamari \-p 4888:4888 \-v $(pwd)/data:/app/appdata \alexbates/tamari:1.0

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

version: '3'services:tamari:image: alexbates/tamari:1.0container_name: tamarirestart: unless-stoppedports:- "4888:4888"volumes:- ./data:/app/appdata

然后执行下面的命令

# 新建文件夹 tamari 和 子目录
mkdir -p /volume1/docker/tamari/data# 进入 tamari 目录
cd /volume1/docker/tamari# 将 docker-compose.yml 放入当前目录# 一键启动
docker-compose up -d

运行

在浏览器中输入 http://群晖IP:4888 就能看到登录界面

第一次需要注册账号

注册成功后,还需要登录

我的食谱

添加食谱,如果是支持 RecipeML 的网站,应该是可以直接导入的。如果不支持,可以手动创建。

关于 RecipeMLMealie 一文中做过介绍

文章传送门:食谱管理和餐饮计划应用Mealie

其中的分类,用中英文表示如下:

英文中文
Miscellaneous杂项
Entrees主菜
Sides配菜

添加新菜谱

添加后可以在 我的食谱 中找到

点进去后,可以看到详情

探索

点主菜单的 探索

有时候只有个别图片加载不出来

但有时候会直接解析失败,越往下一级可能性越大,而且是英文,感觉对大部分国人来说没啥用

至于 购物清单膳食计划 就没尝试了,因为老苏在家,既不负责采买,也不下厨做饭,就留给有需要的人吧

参考文档

alexbates/Tamari: A fully-featured recipe manager web application built using Python and the Flask Framework.
地址:https://github.com/alexbates/Tamari

Tamari Recipe Manager
地址:https://tamariapp.com/

demo.tamariapp.com
地址:https://demo.tamariapp.com

http://www.xdnf.cn/news/5134.html

相关文章:

  • [论文阅读]BadPrompt: Backdoor Attacks on Continuous Prompts
  • 23、Next.js:时空传送门——React 19 全栈框架
  • window 显示驱动开发-线性伸缩空间段
  • 简单网络交换、路由二
  • JavaWeb:JDBC
  • 关于ffmpeg的简介和使用总结
  • Kotlin Android LeakCanary内存泄漏检测实战
  • RT-Thread 深入系列 Part 5:物联网与网络应用实战
  • 视觉-语言基础模型作为高效的机器人模仿学习范式
  • 【STM32 学习笔记】I2C通信协议
  • STM32单片机的快速成长路径规划
  • 使用FastAPI和React以及MongoDB构建全栈Web应用04 MongoDB快速入门
  • 《React Native与Flutter:社交应用中用户行为分析与埋点统计的深度剖析》
  • 多层嵌套子查询
  • 区块链技术中的Java SE实战:从企业级应用到5大核心问题解析
  • 【Linux】用户管理
  • 【Docker系列】docker inspect查看容器部署位置
  • C++GO语言微服务之用户信息处理
  • Python爬虫实战:获取woodo网各类免费图片,积累设计素材
  • 计网学习笔记———网络
  • 【bibtex4word】在Word中高效转换bib参考文献,Texlive环境安装bibtex4word插件
  • LangGraph(三)——添加记忆
  • uniapp开发HarmonyOS NEXT应用之项目结构详细解读
  • 初识Linux · 传输层协议TCP · 下
  • 从文本到语义:BERT、Faiss 与 Elasticsearch 的协同实践
  • 【Java项目脚手架系列】第五篇:Spring Boot + MyBatis项目脚手架
  • 从爬虫到网络---<基石9> 在VPS上没搞好Docker项目,把他卸载干净
  • 数仓-范式建模、维度建模、雪花模型、星型模型对比及其适用范围
  • 通信原理绪论
  • Gartner《Container发布与生命周期管理最佳实践》学习心得