Skip to content

peng2132/HomeNook

Repository files navigation

HomeNook Logo

HomeNook

智能家庭管理系统 | Smart Home Management System

一站式管理家庭财务、药品、食物和物品的自托管解决方案

License: MIT Next.js TypeScript Docker

功能特性快速开始Docker 部署开发指南贡献指南


📖 简介

HomeNook 是一个专为家庭设计的自托管管理系统,帮助您轻松管理家庭财务、追踪药品和食物保质期、记录家庭物品。支持多用户协作,数据完全自主可控,非常适合部署在家庭 NAS 或私有服务器上。

为什么选择 HomeNook?

  • 隐私优先 - 数据存储在本地,完全自主可控
  • 家庭协作 - 支持多用户,家庭成员共享数据
  • 简洁易用 - 现代化 UI 设计,移动端友好
  • 轻量部署 - 基于 SQLite,无需额外数据库服务
  • Docker 支持 - 一键部署,开箱即用

✨ 功能特性

💰 财务管理

  • 收入/支出记录与分类
  • 月度统计报表与图表分析
  • 负债管理(房贷、车贷、分期等)
  • 自动计算月供(等额本息)
  • 还款提醒

💊 药品管理

  • 药品库存登记
  • 过期提醒(30天内到期预警)
  • 存放位置管理
  • 用法用量记录

🍎 食物管理

  • 冰箱/冷冻/常温分类
  • 保质期追踪
  • 存放位置记录
  • 过期预警提醒

📦 物品管理

  • 家庭物品登记
  • 存放位置管理
  • 购买信息记录
  • 保修期追踪

👥 家庭协作

  • 多用户支持
  • 邀请码加入家庭
  • 管理员权限控制
  • 记录创建人追踪

📸 界面预览

Dashboard

首页概览 - 一目了然的家庭数据

目录


🛠 技术栈

技术 说明
Next.js 14 React 全栈框架 (App Router)
TypeScript 类型安全
Prisma 数据库 ORM
SQLite 轻量级数据库
Tailwind CSS 原子化 CSS
shadcn/ui UI 组件库
Recharts 图表库
Zod 数据验证

🚀 快速开始

环境要求

  • Node.js 18.0 或更高版本
  • npm 或 pnpm

本地安装

# 克隆仓库
git clone https://github.com/peng2132/HomeNook.git
cd HomeNook

# 安装依赖
npm install

# 配置环境变量
cp .env.example .env

# 初始化数据库
npx prisma db push

# 填充示例数据(可选)
npm run db:seed

# 启动开发服务器
npm run dev

访问 http://localhost:3000 即可使用。

默认账号

如果运行了 npm run db:seed,可使用以下账号登录:

邮箱 密码
admin@home.local 123456

⚠️ 生产环境请务必修改默认密码!


🐳 Docker 部署

使用 Docker Compose(推荐)

# 克隆仓库
git clone https://github.com/peng2132/HomeNook.git
cd HomeNook

# 配置环境变量(可选,修改 AUTH_SECRET)
cp .env.example .env

# 构建并启动
docker-compose up -d --build

# 查看日志
docker logs -f homenook

服务将在 http://localhost:3000 启动。

数据持久化

数据存储在 Docker Volume homenook-data 中,包含:

  • SQLite 数据库文件

备份数据

# 备份
docker cp homenook:/app/data ./backup

# 恢复
docker cp ./backup/. homenook:/app/data

更新版本

# 拉取最新代码
git pull

# 重新构建并启动
docker-compose up -d --build

💻 开发指南

常用命令

# 开发
npm run dev           # 启动开发服务器
npm run build         # 构建生产版本
npm run start         # 启动生产服务器

# 数据库
npm run db:push       # 同步数据库结构
npm run db:studio     # 打开 Prisma Studio
npm run db:seed       # 填充种子数据

# 代码质量
npm run lint          # 运行 ESLint

添加新功能

  1. prisma/schema.prisma 定义数据模型
  2. 运行 npx prisma db push 同步数据库
  3. src/app/api/ 创建 API 路由
  4. src/app/(dashboard)/ 创建页面
  5. src/components/ 创建组件

🤝 贡献指南

欢迎贡献代码、报告问题或提出新功能建议!

如何贡献

  1. Fork 本仓库
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 提交 Pull Request

报告问题

请在 Issues 页面提交问题,并尽可能提供:

  • 问题描述
  • 复现步骤
  • 期望行为
  • 截图(如适用)
  • 环境信息

📋 路线图

  • 深色模式优化
  • 数据导入/导出
  • 多语言支持
  • 移动端 APP
  • 账单扫描识别

📄 许可证

本项目基于 MIT 许可证 开源。


🙏 致谢


如果这个项目对你有帮助,请给一个 ⭐ Star 支持一下!

Made with ❤️ by peng

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages