Docker搭个家庭管家:日程、账单、任务全能管,Yuvomi使用与搭建
家里的事情一多,大家会不会碰到以下情况?
周末有什么安排,临时才发现彼此时间冲突;水电、物业、订阅什么时候续费,总要等到提醒弹出来才想起;家庭开支记在不同地方,想复盘时又很难找全;常用资料、保修记录和重要日期,也散落在手机备忘录、日历和文件夹里。
有没有一个平台,能把家庭日程、任务、预算、购物、菜谱、文件和提醒统一管理,并且让家人共同使用?本期要介绍的 Yuvomi 就是这样一套家庭生活管理工具。部署 NAS 后,全家人手机和电脑都能访问,数据也由自己保存和管理。

项目介绍
完整项目名:ulsklyc/yuvomi,可于GitHub直接搜索。
Yuvomi 是一款开源、自托管的家庭生活管理平台,可以把日历、任务、购物清单、家庭预算、菜谱、文件、健康记录和提醒等功能集中到一个界面中。
它支持多成员共同使用,每位家庭成员都可以拥有独立账号、权限和个人数据,同时也能共享日程、任务和家庭事务。Yuvomi 采用手机优先的界面设计,支持 PWA 安装,部署完成后可以直接通过手机、平板或电脑访问。
项目提供官方 Docker 镜像,支持 x86 和 ARM 架构,数据可保存在 NAS 本地,并支持数据库加密、定时备份和数据导出,适合用来搭建一套由自己管理的家庭数字生活中心。
项目特点
• 功能集中
将家庭日历、任务、购物清单、菜谱、预算、文件、健康记录、生日和提醒等功能整合到一个平台中,不需要在多个 App 之间来回切换。• 支持多人共同使用
每位家庭成员都可以拥有独立账号、头像和权限,既能共享家庭事务,也能保留个人内容。• 手机和电脑都能访问
采用响应式界面设计,支持手机、平板和电脑浏览,还可以作为 PWA 添加到手机桌面,使用体验更接近普通 App。• 数据保存在自己手中
所有数据都运行在自己的 NAS 上,不依赖第三方云平台,也没有订阅费用和广告追踪。• 支持数据加密与自动备份
可启用数据库加密,并设置定时备份、备份保留数量和 WebDAV 远程备份,降低数据丢失风险。• 模块可自由启用
Yuvomi 的各项功能相互独立,可以根据家庭实际需求开启或关闭,不需要使用全部模块。• 扩展能力丰富
支持 Google 日历、CalDAV、CardDAV、WebDAV、Gotify、ntfy、OIDC 单点登录以及 MCP 接口,后续可继续与其他服务联动。• 官方提供 Docker 镜像
支持 x86 和 ARM 架构,可直接通过 Container Station 部署,适配大多数威联通 NAS。
部署流程
以威联通NAS为例,通过Docker Compose的方式进行部署。
部署代码如下:
services:
yuvomi:
image: ghcr.io/ulsklyc/yuvomi:latest
container_name: yuvomi
restart: unless-stopped
ports:
- "3847:3000"
volumes:
- /share/Container/yuvomi/data:/data # 应用数据及数据库
- /share/Container/yuvomi/backups:/backups # 数据库备份
- /share/Container/yuvomi/modules:/app/modules # 自定义扩展模块
- /share/Container/yuvomi/documents:/documents # 家庭文档存储
environment:
TZ: Asia/Shanghai
NODE_ENV: production
DB_PATH: /data/yuvomi.db # 数据库
SESSION_SECRET: "请替换为至少64位随机字符串"
DB_ENCRYPTION_KEY: "请替换为至少64位随机字符串"
# 直接通过 NAS IP 和端口访问
SESSION_SECURE: "false"
TRUST_PROXY: "loopback"
# 自动备份
BACKUP_DIR: /backups
BACKUP_ENABLED: "true"
BACKUP_SCHEDULE: "0 2 * * *"
BACKUP_KEEP: "7"
# 将上传的文档保存到 NAS 目录
DOCUMENT_STORAGE_LOCAL_ENABLED: "true"
DOCUMENT_STORAGE_LOCAL_PATH: /documents
# 日历和联系人同步间隔,单位为分钟
SYNC_INTERVAL_MINUTES: "15"
# 登录保护
RATE_LIMIT_WINDOW_MS: "60000"
RATE_LIMIT_MAX_ATTEMPTS: "5"
RATE_LIMIT_BLOCK_DURATION_MS: "900000"
打开威联通的Container Station创建新的应用程序。

使用一览
部署完毕后,浏览器输入NAS_IP:3847即可访问服务。首次访问会进入初始化页面,根据提示创建管理员账号即可。

后续还可以继续添加家庭成员,让每个人使用自己的账号登录,并分别设置头像、角色和可访问内容。


登录后首先进入 Yuvomi 的首页仪表盘。近期日程、待办任务、购物事项、用餐计划等信息,都可以集中显示在同一个页面中,不需要分别打开日历、备忘录和记账软件查看。
左侧导航栏则汇集了任务、购物、菜单、菜谱、日历、文件、预算、健康、联系人、生日和提醒等功能。Yuvomi 采用模块化设计,不准备使用的功能可以关闭,避免页面显得过于复杂。项目目前内置了 16 个主要模块。

点击右上角的布局按钮,还可以调整首页卡片的显示位置。比如将日历、任务和购物清单放在前面,把不常用的功能隐藏起来,让首页更符合自己的使用习惯。

Yuvomi 支持多人共同使用,每位家庭成员都可以拥有独立账号、头像和角色。添加完成后,创建日程或任务时可以直接指定参与成员,不必所有内容都混在同一个账号里。
例如,家庭共同出行的安排可以对所有成员可见;个人日程、健康记录或私人预算则可以单独保存。这样既能共同管理家庭事务,也可以保留各自的个人空间。项目支持按内容设置“仅自己、指定成员或所有人可见”。

再看下「联系人」。需要注意,联系人和家庭成员不是同一个概念。联系人更接近家庭通讯录,可以保存姓名、生日、电话和地址;家庭成员则可以登录 Yuvomi,参与任务、日程、预算和其他家庭事务。

「任务」模块可以用来记录需要完成的事情,并通过看板查看进度。创建任务时可以设置截止时间、优先级、子任务、重复周期和负责人。

对于需要长期重复的事务,只需要设置一次重复周期,后续便会自动生成,不必每次重新添加。任务还可以关联文件模块中的合同、票据或说明文档。

任务模块还可以与「奖励」功能配合。完成指定任务后获得积分,再通过家庭成员共同设定的奖励目录兑换奖励。是否使用这一功能,可以根据家庭实际需求决定,并不局限于儿童家务场景~这个还是比较有趣的。

「日历」模块可以记录家庭活动、缴费时间、纪念日、预约和其他重要安排。每个日程都可以指定参与成员和可见范围,避免所有人的日历混在一起。Yuvomi 还支持 Google Calendar、iCloud、CalDAV 和 ICS 日历订阅。如果原本已经在使用手机日历,可以继续同步到 Yuvomi,不需要从头重新录入。项目也支持重复日程、节假日覆盖和只读日历订阅。

「预算」模块可以记录收入、支出、账户余额、贷款、储蓄目标和每月预算,也可以单独管理需要定期续费的订阅服务。例如,家庭宽带、手机套餐、视频会员、云服务和保险,都可以记录金额与续费时间。到了设定日期前,系统会通过提醒中心通知,避免忘记续费或长期支付已经不再使用的服务。预算模块还支持个人预算和家庭预算分开查看,并可以按照类别统计支出、查看趋势和导出 CSV 文件。

「厨房」中的菜谱、菜单和购物清单并不是三个完全独立的功能,而是可以连接使用。可以先在菜谱中保存常做的菜品和所需食材,再将菜谱拖入每周菜单。确定一周的用餐安排后,还可以把所需食材直接加入购物清单,减少重复整理的步骤。

健康模块可以按成员记录体重、血压、用药、检查结果、运动和其他健康数据,并通过趋势图查看变化。由于这类数据比较敏感,Yuvomi 支持使用 SQLCipher 对数据库进行加密。

生日模块可以从联系人中选择成员,并自动在日历中建立生日事件和提醒。联系人还支持 CardDAV 同步以及 vCard 导入、导出,方便与其他通讯录工具交换数据。

Yuvomi 采用手机优先的响应式设计,可以直接通过手机浏览器访问,也可以作为 PWA 添加到手机桌面。添加完成后,可以像普通 App 一样从桌面打开,不需要经过应用商店安装。在网络暂时不可用时,PWA 还能以只读方式查看最近打开过的日历、任务、购物清单、联系人和首页内容。

项目支持站内提醒、Web Push、Gotify 和 ntfy。任务到期、日程开始、订阅续费或用药时间临近时,都可以通过相应渠道发送提醒。Web Push 需要通过 HTTPS 域名访问。

Yuvomi 内置数据库备份功能,可以手动备份,也可以按照设定的时间自动执行。本文的部署配置默认每天凌晨 2 点备份一次,并保留最近 7 份,备份文件保存在/share/Container/yuvomi/backups。备份模块也支持将备份文件上传到 WebDAV,并在恢复数据库之前自动建立回滚备份。

可以看到还有配置SMTP邮件等,都属于老内容,就不额外讲啦。
最后
到这里,Yuvomi 的部署和基本设置就完成了。第一次使用不用急着把所有模块都填满,先把近期日程、固定缴费、待办事项和常用资料放进去即可。使用一段时间后,哪些功能确实用得上、哪些模块可以关闭,自然就清楚了。
感谢观看,本文完。
