这个项目能做什么
finPal 是一款开源的自托管个人财务应用程序,其维护者将其描述为“隐私优先的财务管理”,自托管版本无追踪、不出售数据且无需订阅。该项目在 AGPL-3.0 协议下发布,其 README 明确指出该项目处于积极开发阶段:功能、API 和数据库架构频繁变动,因此建议在升级前进行备份。
解决的问题
它旨在解决人们日常面对的“钱在一个月内花到哪里去了”这一问题。
核心功能
- 支出追踪:具备自动分类功能和可根据用户模式调整的交易规则。
- 预算管理:提供实时追踪和旨在超支前触发的警报。
- 家庭共享费用分摊:包括记录谁欠谁钱。
- 投资跟踪:跨投资组合跟踪,并支持价格自动更新。
- 银行同步:通过 SimpleFin 同步,或通过监控文件夹自动导入 CSV 对账单。
- 多货币与多账户支持,以及深色模式。
- 可选的信用卡奖励模块 pointsPal。
- 为脚本和本地 LLM 提供的个人访问令牌,并记录了其权限范围。
安装与运行
README 提供了三步 Docker Compose 快速启动指南:克隆仓库,运行 scripts/setup-env.sh 以生成包含密钥的 .env 文件,然后执行 docker compose up -d。系统会拉取预构建镜像,无需本地构建。默认端口为 80,可通过 .env 中的 HTTP_PORT 修改。第一个注册的账户将成为管理员。设置脚本会生成真实的密钥,且应用程序拒绝在 .env.example 中显示的 change_me_* 占位值下启动,因为这些值在仓库中公开,可能被用于伪造会话。
升级通过拉取新镜像并重启完成。架构处理是文档中的重点:此前架构在启动时由模型构建,这会创建缺失的表但不会为现有表添加列,导致长期运行的实例缺失新列并引发查询失败。现在,启动时会自动进行增量架构协调,添加缺失的可空列并拓宽比模型预期窄的列;它绝不会删除、重命名、缩窄或更改类型。执行的语句会被记录,可通过 docker logs finpal-backend 查看。自动协调可通过 SCHEMA_AUTO_RECONCILE=false 禁用,之后可使用只读脚本 scripts/schema_drift.py 打印所需的具体语句。文档中提到的例外是无默认值的 NOT NULL 列,这类列无法添加到已有数据的表中,需通过带有回填数据的迁移来处理。
文档与社区
仓库提供了安装、环境变量、架构与系统要求、API 令牌、CSV 文件夹导入、SimpleFin、pointsPal、测试和许可的指南,以及一份贡献指南。指南指出,拉取请求(PR)需要两名 palStack 开发者的批准,审核通常在 24 到 48 小时内完成。用户无需安装即可使用在线演示版。
托管与路线图
目前可免费使用全功能的自托管版本。订阅制的托管服务预计即将推出。针对 iOS 和 Android 的 React Native 移动应用正在积极开发中,目标是实现生物识别登录和离线同步,而后端和 Web UI 目前已准备就绪。finPal 承认其起源于债务追踪工具 Dollar Dollar Bill Y'all。
许可说明
应用程序代码采用 AGPL-3.0 协议,意味着它可以被自托管、修改和分享;若将修改后的版本作为网络服务运行,则需公开相关变更。托管服务(finPal Premium)被描述为一项独立的专有产品,不改变仓库的许可协议。
评论
0 评分人数达到10人后显示
登录后参与讨论。