功能
Financy 现在能做什么,接下来做什么
Financy 正在重建。今天已经可用的:任意币种的账户,以及它下面的基础:登录、按角色共享访问、实时更新、离线应用、导出、九种语言和你自己的服务器。每一节都链接到它的代码。
作者 Anton Shubin更新于
交易和预算还没有做好。看看重建进行到哪一步了。
现在可用
家庭财务的地基
这些部分已经可用,并在 CI 中测试。任意币种的账户及其分类已经上线;交易是下一步。
目前可用Google 和 GitHub 登录需要服务器自己的密钥,所以新部署的实例先只支持邮箱登录。
每个账户都有自己的币种
现金、银行账户、银行卡、储蓄、资产和负债,各用自己的币种,按类型分组,并有一个默认账户。家庭里的每个人都能立即看到每次更改。
面向开发者
- 服务器在每次读取时计算余额,从不存储,因此余额不会偏差
- 金额是币种最小单位的整数:日元没有小数,第纳尔有三位
- 查看者可以看到账户;只有编辑者及以上角色可以更改,由服务器检查
只有一级的分类
把支出和收入归入分类,每个分类都有图标和颜色。把买菜和外出就餐放在餐饮下。新家庭会以自己语言的一份简短列表开始。
面向开发者
- 分类从不删除:归档只是把它从选择列表中隐藏,过去的记录仍保留它
- 子分类沿用上级分类的类型,上级分类不能再有上级,由服务器检查
- 查看者可以阅读分类;只有编辑者及以上可以更改
登录,已搞定
用邮箱和密码注册,再用验证码确认邮箱。忘记密码可以重置,也可以用 Google 或 GitHub 继续、用通行密钥登录,或通过邮件收到的登录码登录。身份验证器应用可开启双重验证(2FA),你还能看到所有已登录的设备,并让其他设备退出登录。
面向开发者
- 密码通过 Web Crypto 用 PBKDF2-SHA-256 哈希,默认 600,000 轮
- 签名的会话 Cookie,每次登录事件都有审计记录
- 个人 API 令牌,只以带密钥的哈希形式存储
一个家庭,每人一个账号
家庭(在应用中称为群组)就是共同管钱的人。邀请伴侣或家人,给每人分配从查看者到所有者的角色,需要时转让所有权。删除的家庭可在 30 天内恢复,活动日志记录谁改了什么。
面向开发者
- 家庭是检查所有数据的唯一边界
- 每个人只能看到自己所属的家庭
- 邀请、角色变更和所有权转让,各有自己的测试
改动无需刷新,即刻出现在每台设备上
家庭中有人改了什么,其他人会立刻在每台打开的设备上看到。从睡眠中唤醒的笔记本电脑会自动补上错过的内容。
面向开发者
- 标准 WebSocket,每次改动都带有序号
- 重新连接的设备会拉取错过的内容
没有网络也能打开的应用
把 Financy 安装到手机或电脑上,没网也能打开,并显示上次看到的内容。
面向开发者
- 每个列表在 IndexedDB 中有本地副本,写入队列带有幂等键
- 每个冲突都可以选择“保留我的版本”或“使用服务器版本”
你的数据,随你带走
所有者可以随时把家庭导出为开放的 JSON 文件,之后再作为新家庭导入。导入从不覆盖原有家庭。
面向开发者
- 写入任何内容之前先检查整个文件,然后一步导入
- 每条记录都会获得新的 id,因此导入不会与现有数据冲突
支持九种语言
应用和本网站支持英语、俄语、西班牙语、德语、巴西葡萄牙语、阿拉伯语、法语、日语和简体中文。每个人在应用中选择自己的语言,所以一个家庭可以使用多种语言。
面向开发者
- 每种语言一个目录,由测试检查并指出每条缺失的消息
- 数字和日期使用浏览器自带的 Intl
- 阿拉伯语页面从右向左阅读
运行在你自己的服务器上
Financy 可以通过 Docker Compose 运行在你租用或自有的任何 Linux 服务器上。自托管依据 AGPL‑3.0 许可证免费,家庭数据留在你的服务器上。
面向开发者
- Traefik 作为入口,自动签发证书
- Postgres 和 Valkey 与应用一起运行
- 用 VictoriaMetrics、VictoriaLogs 和 Grafana 提供指标、日志和告警
- 可选的每日加密数据库备份,附有书面恢复步骤
- Traefik
- Postgres
- Valkey
- VictoriaMetrics
- VictoriaLogs
- Grafana
- Alertmanager
- Garage file store
- restic backups
常见问题
Financy 能做到吗?
能在虚拟主机或无服务器平台上运行 Financy 吗?
不能。Financy 以常驻容器的形式通过 Docker Compose 运行在一台 Linux 服务器上,因为 API 要保持 WebSocket 连接,后台进程还要处理队列。
Financy 使用什么数据库?
Postgres。迁移、查询和集成测试都依赖它。
有手机应用吗?
应用商店里还没有。目前网页应用可以从浏览器安装到手机和电脑上,并能离线打开。