3步搞定家庭厨房管理系统:Tandoor Recipes部署与运维全攻略
你还在为 recipes 管理混乱、购物清单总是遗漏而烦恼吗?本文将带你通过 Docker 快速部署 Tandoor Recipes,掌握数据备份与系统维护技巧,让美食管理从此井井有条。读完本文你将获得:
✅ 3 分钟 Docker 一键部署指南
✅ 全平台安装方案(含 Unraid/群晖)
✅ 数据安全备份策略
✅ 常见故障排查手册
项目简介
Tandoor Recipes 是一款开源美食管理系统,支持 recipes 存储、 meal planning、购物清单生成等功能。项目采用 Django + Vue3 架构,提供直观的 Web 界面和渐进式 Web 应用(PWA)支持。
部署方案对比
| 部署方式 | 难度 | 适用场景 | 官方推荐 |
|---|---|---|---|
| Docker Compose | 低 | 家庭服务器/个人 PC | ✅ 推荐 |
| 手动部署 | 高 | 开发环境/定制需求 | ❌ 不推荐 |
| Unraid 插件 | 极低 | Unraid 存储服务器用户 | ✅ 推荐 |
| Kubernetes | 极高 | 企业级大规模部署 | ❌ 不推荐 |
快速部署:Docker Compose 方案
环境准备
确保已安装 Docker 和 Docker Compose:
# 检查 Docker 版本
docker --version
docker-compose --version
部署步骤
-
下载配置文件
# 创建项目目录 mkdir -p /var/www/recipes && cd /var/www/recipes # 下载 docker-compose.yml wget https://gitcode.com/GitHub_Trending/re/recipes/raw/develop/docs/install/docker/plain/docker-compose.yml # 下载环境变量模板 wget https://gitcode.com/GitHub_Trending/re/recipes/raw/develop/.env.template -O .env -
配置环境变量
编辑.env文件,设置关键参数:SECRET_KEY=生成随机字符串(建议 50 字符以上) POSTGRES_PASSWORD=设置数据库密码 TIMEZONE=Asia/Shanghai生成安全密钥:
base64 /dev/urandom | head -c 64 # 生成 SECRET_KEY -
启动服务
docker-compose up -d # 首次启动需等待 2-3 分钟数据库迁移 docker logs -f recipes_web_1 # 查看启动日志 -
访问系统
打开浏览器访问http://服务器IP:80,默认管理员账号:admin@example.com,密码:password(首次登录需修改)。
配置示例
Docker Compose 配置文件路径:docs/install/docker/plain/docker-compose.yml
核心配置片段:
version: '3'
services:
db:
image: postgres:15-alpine
volumes:
- postgres_data:/var/lib/postgresql/data/
env_file:
- .env
web:
image: vabene1111/recipes:latest
depends_on:
- db
volumes:
- staticfiles:/opt/recipes/staticfiles
- mediafiles:/opt/recipes/mediafiles
env_file:
- .env
ports:
- "80:80"
volumes:
postgres_data:
staticfiles:
mediafiles:
数据备份策略
数据库备份
使用官方推荐的 pg_dump 工具:
# 备份数据库到 SQL 文件
docker exec -t recipes_db_1 pg_dumpall -U djangouser > /backup/recipes_$(date +%Y%m%d).sql
媒体文件备份
媒体文件(如 recipes 图片)存储在 mediafiles 卷,通过以下命令备份:
# 压缩备份媒体文件
tar -czf /backup/media_$(date +%Y%m%d).tar.gz /var/www/recipes/mediafiles
自动化备份
添加定时任务(crontab):
# 每日凌晨 3 点执行备份
0 3 * * * /var/www/recipes/backup_script.sh >> /var/log/recipes_backup.log 2>&1
备份脚本示例:docs/system/backup.md
系统维护
版本更新
cd /var/www/recipes
# 拉取最新代码
git pull
# 更新容器
docker-compose pull
docker-compose up -d
常见问题排查
1. 网页无法访问
- 检查容器状态:
docker-compose ps - 查看日志:
docker-compose logs -f web - 验证端口占用:
netstat -tulpn | grep 80
2. 图片加载失败
确保 Nginx 配置正确处理媒体文件:
location /media/ {
alias /opt/recipes/mediafiles/;
expires 30d;
}
配置文件路径:http.d/Recipes.conf.template
3. 数据库连接错误
检查 .env 文件中的数据库参数:
POSTGRES_HOST=db
POSTGRES_PORT=5432
POSTGRES_USER=djangouser
POSTGRES_PASSWORD=你的密码
POSTGRES_DB=djangodb
高级部署:Unraid 平台
Unraid 用户可通过 Community Applications 安装 Tandoor Recipes,步骤:
- 打开 Unraid 仪表板 → Apps
- 搜索 "Tandoor Recipes"
- 点击安装并配置存储路径
- 启动应用并访问 Web UI
数据迁移指南
从手动部署迁移到 Docker
-
导出旧数据
# 手动部署环境执行 cd /var/www/recipes source venv/bin/activate python manage.py dumpdata > backup.json -
导入到 Docker 环境
# 复制备份文件到容器 docker cp backup.json recipes_web_1:/opt/recipes/ # 执行导入 docker exec -it recipes_web_1 sh -c "source venv/bin/activate && python manage.py loaddata backup.json"
总结
Tandoor Recipes 提供了灵活的部署方案,推荐家庭用户优先选择 Docker 或 Unraid 部署。定期备份数据和关注版本更新是系统稳定运行的关键。如有更多需求,可参考官方文档或提交 Issue。
相关资源:
- 官方文档:docs/
- 常见问题:docs/faq.md
- 备份策略:docs/system/backup.md
如果觉得本文有用,欢迎点赞收藏,关注获取更多开源工具部署教程!
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



