自托管家庭规划工具Oikos
简介
什么是 Oikos ?
Oikos是一个开源的家庭规划应用,可以帮助小家庭管理任务、购物清单、餐食计划、日历同步、预算、笔记和联系人。它是一个完全自托管的解决方案,所有数据都存储在本地,保护家庭隐私。
主要特点
- 任务管理:共享任务支持截止日期、优先级、子任务、重复日程,卡片式看板视图支持触屏设备一键操作
- 购物清单:协作式清单支持按
aisle分类,可一键从餐食计划导入 - 餐食计划:周计划支持拖拽操作,自动生成食材清单并导出到购物清单
- 日历同步:双向同步支持
Google Calendar(OAuth)和Apple iCloud(CalDAV) - 预算跟踪:收入支出记录、周期性条目、可配置货币(13种)、月度趋势、CSV 导出
- 笔记和联系人:彩色便签支持
Markdown,联系人目录支持vCard导入导出 - 零构建步骤:纯
ES模块,无打包器、无转译器、无框架 - 隐私优先:
SQLCipher AES-256加密数据库,完全自托管,无遥测 - PWA 原生体验:可安装到任意设备,支持离线工作,暗色模式,响应式布局
- 多语言:德语、英语、意大利语和瑞典语
UI,支持自动语言检测 - 开源免费:基于
MIT协议开源,可免费使用和修改
应用场景
- 家庭任务协调:家庭成员可以创建和分配任务,设置截止日期和优先级,跟踪完成进度
- 购物清单管理:每周计划餐食后自动生成购物清单,按商店区域分类,方便采购
- 家庭预算管理:记录日常收支,查看月度趋势,导出数据进行分析
- 日历统一管理:同步
Google或Apple日历,全家人可以看到统一的日程安排

Oikos 是一个功能完整的家庭数字助手,特别适合注重隐私的家庭使用,所有数据都存储在自己的服务器上。
安装
在群晖上以 Docker 方式安装。
由于镜像托管在
ghcr.io,群晖 Docker 套件无法直接搜索,需要通过命令行部署。
docker-compose 安装
将下面的内容保存为 docker-compose.yml 文件:
1 | services: |
env.txt
同时需要创建 env.txt 环境变量文件,内容如下:
1 | # Oikos - Environment Variables |
环境变量说明
| 变量名 | 必填 | 说明 |
|---|---|---|
PORT |
否 | 服务端口,默认为 3000 |
NODE_ENV |
否 | 运行环境,默认为 production |
SESSION_SECRET |
是 | 用于 Session 加密,请使用一个长的随机字符串 |
SESSION_SECURE |
否 | 是否启用 HTTPS cookie,仅在使用 HTTPS/反向代理时设为 true |
DB_PATH |
否 | 数据库路径,默认为 /data/oikos.db |
DB_ENCRYPTION_KEY |
是 | 数据库加密密钥,请使用一个强密钥 |
OPENWEATHER_API_KEY |
否 | OpenWeatherMap API Key,用于显示天气,注册地址: https://home.openweathermap.org/api_keys |
GOOGLE_CLIENT_ID |
否 | Google Calendar OAuth Client ID |
GOOGLE_CLIENT_SECRET |
否 | Google Calendar OAuth Client Secret |
APPLE_CALDAV_URL |
否 | Apple Calendar CalDAV 服务器地址 |
APPLE_USERNAME |
否 | Apple 账号用户名 |
APPLE_APP_SPECIFIC_PASSWORD |
否 | Apple 应用专用密码 |
然后通过 SSH 登录到您的群晖,执行下面的命令:
1 | # 新建文件夹 oikos 和子目录 |

运行
创建管理员账户
首次启动后,需要初始化管理员账号。执行以下命令:
1 | # 创建第一个管理员账户 |
Benutzername:就是用户名,例如:laosuAnzeigename:就是显示的名称Passwort:就是密码,不能少于8个字符,例如:12345678Passwort bestätigen:就是确认密码,要跟上面的密码一致才行
创建成功会有提示

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

用创建的管理员 laosu/12345678 登录,成功后的主界面

如果设置了 OPENWEATHER_API_KEY,会多出一行天气预报

所有的功能都在左侧菜单,包括任务、日历、餐食、购物、预算等等

也可以在 Settings 中添加家庭成员

注意事项
- 数据加密:
Oikos使用SQLCipher对数据库进行AES-256加密,请妥善保管DB_ENCRYPTION_KEY,一旦丢失数据将无法恢复 - SESSION_SECRET:请使用一个足够长的随机字符串作为
Session密钥 - 端口冲突:默认使用
3522端口,请确保该端口未被占用 - 数据备份:建议定期备份
./data目录下的数据库文件 - HTTPS 配置:如需通过域名外部访问,建议配置反向代理并设置
SESSION_SECURE=true - 首次设置:必须运行
docker-compose exec oikos node setup.js来创建管理员账号,否则无法登录
参考文档
ulsklyc/oikos: Self-hosted family planner - tasks, calendars, shopping, meals, budget. Your data, your server.
地址:https://github.com/ulsklyc/oikosOikos — The Self-Hosted Family Planner
地址:https://ulsklyc.github.io/oikos/oikos Docker 镜像
地址:https://ghcr.io/ulsklyc/oikosOikos 安装指南
地址:https://github.com/ulsklyc/oikos/blob/main/docs/installation.md