
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
将家务转变为史诗般的家庭冒险
TidyQuest 是一款自托管Web应用,通过RPG机制将家务游戏化。完成任务、赚取金币、解锁成就,并与家人在排行榜上竞争。
!https://img.shields.io/badge/version-0.6.0-blue.svg !https://img.shields.io/badge/docker-ready-brightgreen.svg !https://img.shields.io/badge/license-AGPL--3.0-blue.svg https://img.shields.io/badge/***-%E5%8A%A0%E5%85%A5%E6%88%91%E4%BB%AC-5865F2?logo=***&logoColor=white]([***]
[!WARNING] 早期阶段项目 — TidyQuest 正在积极开发中。您可能会遇到错误、功能不完整或版本间的破坏性变更。请定期备份数据,如有问题可随时https://github.com/mellow-fox/TidyQuest/issues%E3%80%82
TidyQuest 将枯燥的家务变成冒险任务:
完美适用于以下家庭:
!仪表盘 显示任务概览、连续 streak 和快速统计的主仪表盘
!房间 带有任务健康条和完成跟踪的房间视图
!排行榜 家庭竞争周/月排名
!奖励 奖励目录和兑换系统
!成就 完成里程碑解锁徽章
选择部署方式:
选项 A:Unraid 社区应用(最简单)
如果您运行 Unraid,TidyQuest 可直接从 Community Applications 目录获取:
JWT_SECRET选项 B:Docker Compose — Docker Hub 镜像(推荐)
在任何 Linux 服务器上使用预构建的多平台镜像快速启动:
创建项目目录
bashmkdir tidyquest && cd tidyquest
创建 docker-compose.yml
yamlservices: tidyquest: image: mellowfox/tidyquest:latest container_name: tidyquest ports: - "3020:3000" environment: - NODE_ENV=production - JWT_SECRET=将此替换为至少32字符的安全随机字符串 - TZ=Europe/Paris # 您的时区 — 用于日/周边界和通知 volumes: - ./data:/app/data restart: unless-stopped
生成安全的 JWT_SECRET
bashopenssl rand -base64 32 # 复制输出并替换 docker-compose.yml 中的 JWT_SECRET
启动
bashdocker compose up -d
通过 http://localhost:3020 访问
选项 C:从源码构建
用于开发或自定义:
克隆仓库
bashgit clone https://github.com/mellow-fox/TidyQuest.git cd TidyQuest
配置环境
bashcp .env.example .env # 编辑 .env 并设置安全的 JWT_SECRET # 生成方法:openssl rand -base64 32
构建并启动
bashdocker compose up -d --build
通过 http://localhost:3020 访问
首次启动时数据库为空,通过 注册 页面创建管理员账户。
| 层级 | 技术 |
|---|---|
| 前端 | React 19 + Vite + TypeScript |
| 后端 | Node.js + Express + TypeScript |
| 数据库 | SQLite3(启用 WAL 模式) |
| 认证 | JWT + bcrypt |
| 部署 | Docker(单容器,约300MB) |
| 路由 | React Router v7 |
| 样式 | 带 CSS 自定义属性的自定义设计系统 |
核心功能零外部依赖。可选 *** 或 ntfy 集成用于通知。
TidyQuest/ ├── client/ # React 前端 │ ├── src/ │ │ ├── components/ # UI 组件 │ │ ├── hooks/ # useAuth, useApi, useTranslation │ │ ├── i18n/ # 翻译文件(EN/FR/DE/ES/IT) │ │ └── App.tsx │ └── package.json ├── server/ # Express 后端 │ ├── src/ │ │ ├── routes/ # API 端点 │ │ ├── middleware/ # JWT 认证 │ │ ├── utils/ # 健康计算、通知 │ │ └── database.ts # SQLite 设置 │ └── package.json ├── data/ # 持久化存储(Docker 卷) │ ├── tidyquest.db # SQLite 数据库 │ └── avatars/ # 用户上传照片 ├── Dockerfile # 多阶段构建 ├── docker-compose.yml ├── .env.example # 配置模板 ├── SECURITY.md # 安全最佳实践 └── API.md # API 文档
参见 .env.example 获取所有选项。关键变量:
| 变量 | 是否必需 | 描述 |
|---|---|---|
JWT_SECRET | 是(生产环境) | 用于签名 JWT 令牌的密钥(至少32字符) |
NODE_ENV | 否 | production 或 development |
TZ | 推荐 | 用于日/周边界和通知的时区(如 Europe/Paris)。默认为 UTC |
PORT | 否 | 服务器端口(默认:3000) |
ADMIN_RESET_PASSWORD | 否 | 一次性管理员密码恢复。设置后重启容器,然后移除该变量 |
TidyQuest 支持两种通知提供商(仅管理员可在设置中配置):
ntfy
通知类型:
管理员可在 设置 中启用假期模式:
假期期间冻结任务健康并保护连续 streak。
如果管理员忘记密码:
yamlenvironment: - ADMIN_RESET_PASSWORD=您的新密码
公开暴露前,请查看 SECURITY.md 中的建议:
⚠️ 切勿通过 HTTP 将 TidyQuest 直接暴露到互联网。
bashdocker compose pull docker compose up -d
bashcd TidyQuest git pull docker compose down docker compose up -d --build
您的数据在 ./data 卷中持久化。
管理员 → 设置 → 导出数据 → 下载 JSON
bashcp data/tidyquest.db backups/tidyquest-$(date +%Y%m%d).db
管理员 → 设置 → 导入数据 → 上传 JSON
参见 API.md 获取完整端点文档及示例。
快速概览:
/api/auth/register,/api/auth/login/api/rooms(CRUD)/api/rooms/:id/tasks(CRUD + 完成)/api/dashboard(聚合视图)/api/leaderboard?period=week|month|quarter|year/api/rewards(CRUD + 兑换)/api/achievements所有端点需要 Authorization: Bearer <token>(认证路由除外)。
TidyQuest 包含自定义 Home Assistant 集成,将任务公开为传感器,并允许从仪表板和自动化中完成或管理任务。
custom_components/tidyquest/ 复制到 Home Assistant 的 config/custom_components/ 目录每个任务成为 sensor,其状态为任务当前健康值(0–100)。属性包括 room_name、effort、is_due、assigned_users、assignment_mode 等。
| 服务 | 描述 |
|---|---|
tidyquest.complete_task | 将任务标记为已完成。HA 用户通过显示名自动匹配 TidyQuest 用户 |
tidyquest.reset_task | 将任务重置为待完成/脏状态(移除今日完成记录) |
tidyquest.create_task | 在房间中创建新任务 |
tidyquest.update_task | 更新任务属性(频率、难度等) |
tidyquest.delete_task | 删除任务 |
tidyquest.refresh | 强制立即刷新传感器 |
yamlservice: tidyquest.complete_task target: entity_id: sensor.kitchen_wash_dishes_health
yamlautomation: trigger: platform: numeric_state entity_id: sensor.kitchen_wash_dishes_health below: 20 action: service: notify.mobile_app data: message: "该洗碗了!"
用户匹配:HA 用户名自动匹配 TidyQuest
displayName(不区分大小写)。可在服务数据中用user_name或tidyquest_user_id覆盖。
参见 custom_components/tidyquest/README.md 获取完整文档。
欢迎贡献!请:
git checkout -b feature/amazing-feature)git commit -m 'Add amazing feature')git push origin feature/amazing-feature)本项目采用 GNU Affero General Public License v3.0 (AGPL-3.0) 许可证。
含义:
选择 AGPL 的原因:确保 TidyQuest 永远保持自由开源,防止专有 SaaS 分支。
参见 LICENSE 文件获取完整详情。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务