Loading... # ezBookkeeping v1.3.0 开源个人财务管理应用技术分析 # 一、项目概述 ## 1. 基本信息 ezBookkeeping 是一款轻量级、可自托管的个人财务管理应用,提供用户友好的界面和强大的记账功能。 ### A. 项目数据 - GitHub Stars:3931+ - GitHub Forks:396 - 开源协议:MIT License - 主要语言:Go、Vue、TypeScript - 最新版本:v1.3.0(2026-01-17 发布) ### B. 项目定位 - 目标用户:注重隐私和自主掌控的个人用户 - 部署方式:Docker 一键部署、二进制文件直接运行 - 运行环境:支持树莓派、NAS、微服务器、集群等多种环境 ## 2. 核心特性 - 开源自托管,完全掌控数据 - 轻量级设计,低资源占用 - 跨平台支持(Windows、macOS、Linux) - 多架构支持(x86、amd64、ARM) - PWA 支持,移动端可添加到主屏幕 # 二、技术架构 ## 1. 技术栈分析 ### A. 后端技术 ``` 语言分布: - Go:2,898,647 字节(主要后端语言) - Shell/PowerShell:构建脚本 ``` 后端采用 Go 语言开发,优势包括: - 编译型语言,性能优异 - 跨平台编译支持好 - 单一可执行文件,部署简单 - 并发处理能力强 ### B. 前端技术 ``` 语言分布: - Vue:2,236,660 字节 - TypeScript:1,629,618 字节 - SCSS:193,998 字节 - HTML:36,763 字节 ``` 前端采用 Vue + TypeScript 技术栈: - Vue 3 框架(v1.3.0 升级到 Framework7 9.0) - TypeScript 提供类型安全 - SCSS 模块化样式管理 - PWA 支持移动端原生体验 ## 2. 系统架构 ```mermaid graph TB subgraph 前端层 A[桌面端 UI] B[移动端 PWA] end subgraph 后端层 C[Go HTTP 服务] D[认证模块 2FA] E[AI 模块 OCR] end subgraph 数据层 F[(SQLite)] G[(MySQL)] H[(PostgreSQL)] end subgraph 存储层 I[本地文件系统] J[阿里云 OSS] K[MinIO 对象存储] end A --> C B --> C C --> D C --> E C --> F C --> G C --> H E --> J E --> K ```  # 三、核心功能分析 ## 1. 记账功能 ### A. 多级账户和分类 - 支持两级账户体系 - 支持两级交易分类 - 灵活的类别排序 ### B. 交易增强 - 交易可附加图片 - 地理位置记录和地图展示 - 周期性交易自动记账 - 交易标签系统(v1.3.0 新增标签分组) ## 2. 数据导入导出 ### A. 支持格式 ``` 记账软件格式: - CSV、OFX、QFX、QIF、IIF - Camt.053、MT940 第三方软件: - GnuCash - Firefly III - Beancount - 飞钱记账(MyMoney) 国内平台: - 支付宝交易流水(支持待收货确认状态交易) ``` ### B. 智能导入 - 自动检测文件编码(支持 UTF-16) - 支持自定义日期时间格式 - 支持 IANA 时区名称 - 智能识别数字分组符号(如窄不换行空格) - 支持批量转换金额正负值 - 按金额筛选导入交易 ## 3. AI 功能 ### A. 票据识别 - 支持收据图片 OCR 识别 - 自动提取交易信息 ### B. AI 集成 - 支持 MCP(Model Context Protocol) - 可扩展的 AI 模型对接 # 四、v1.3.0 版本更新 ## 1. 破坏性变更 ### A. Framework7 升级 - 从旧版本升级到 Framework7 9.0 - UI 框架重大更新 ### B. 时区处理变更 - 默认使用夏令时时区而非标准时区 - `transactions/add.json` 接口强制要求时区请求头 - 移除 `app_name` 配置选项 ## 2. 新增功能 ### A. 多语言支持 - 新增卡纳达语(Kannada) - 新增土耳其语(Türkçe) - 新增斯洛文尼亚语(Slovenščina) ### B. 功能增强 - 桌面版新增 Insights Explorer 页面 - 交易标签分组功能 - 标签筛选支持同时选择包含和排除的标签 - 账户分类排序支持调整 - 移动端支持从剪贴板粘贴金额 - 导入预览表格固定选择框和操作按钮列 ## 3. 用户体验优化 ### A. 界面改进 - 账户/交易分类/标签筛选页面增加搜索框 - 支持隐藏无账户的账户分类 - 数字粘贴时光标位置智能插入 - 记住上次选择的文件类型 ### B. 导入增强 - 自动更新目标账户金额(根据账户货币) - 导入对话框支持清除所有筛选 - 用户自定义脚本预览支持显示全部结果 ## 4. 技术升级 ### A. 依赖升级 ``` - Golang:1.25.5 - Node.js:24.12.0 - Alpine 基础镜像:3.23.2 ``` ### B. Bug 修复 - 修复阿里云 OSS 使用 minio 类型无法访问的问题 - 修复子路径访问时邮箱验证、重置密码、OAuth 回调 URL 错误 - 修复夏令时月份收入支出趋势图月份名称显示错误 - 修复账户对账单中位数金额计算错误 - 修复导入 OFX 1.x 文件时 utf-8 拼写错误 - 修复筛选下拉菜单不显示隐藏的多选项目 # 五、安全特性 ## 1. 认证与授权 ### A. 多因素认证 - 支持双因素认证(2FA) - 登录速率限制 - 应用锁定(PIN 码 / WebAuthn) ### B. OAuth 2.0 - 支持第三方 OAuth 登录 - 支持 Synology DSM SSO Server OIDC 认证 - 允许 OAuth 返回的用户名或邮箱为空 ## 2. 数据安全 ### A. 存储安全 - 支持本地文件系统存储 - 支持对象存储(阿里云 OSS、MinIO) - 数据完全自控,不上传第三方 ### B. 传输安全 - 支持 HTTPS 部署 - 支持 Docker 容器隔离 # 六、部署方式 ## 1. Docker 部署(推荐) ### A. 快速启动 ```bash docker run -p 8080:8080 mayswind/ezbookkeeping ``` ### B. 版本选择 ```bash # 最新稳定版 docker run -p 8080:8080 mayswind/ezbookkeeping # 最新每日构建 docker run -p 8080:8080 mayswind/ezbookkeeping:latest-snapshot ``` ## 2. 二进制部署 ### A. 下载地址 https://github.com/mayswind/ezbookkeeping/releases ### B. 运行方式 ```bash # Linux / macOS ./ezbookkeeping server run # Windows .\ezbookkeeping.exe server run ``` ### C. 跨平台支持 - Linux(amd64、arm64、armv6、armv7) - Windows(x64) - macOS ## 3. 源码构建 ### A. 环境要求 - Golang - GCC - Node.js - NPM ### B. 构建命令 ```bash # Linux / macOS ./build.sh package -o ezbookkeeping.tar.gz # Windows .\build.bat package -o ezbookkeeping.zip ``` # 七、本地化与全球化 ## 1. 多语言支持 ### A. 已支持语言 ``` 欧洲语言: - 英语(English) - 德语(Deutsch) - 西班牙语(Español) - 法语(Français) - 意大利语(Italiano) - 荷兰语(Nederlands) - 俄语(Русский) - 乌克兰语(Українська) - 斯洛文尼亚语(Slovenščina) 亚洲语言: - 简体中文(zh-Hans) - 繁体中文(zh-Hant) - 日语(日本語) - 韩语(한국어) - 印地语(कन्नड) - 泰米尔语(தமிழ்) - 泰语(ไทย) - 越南语(Tiếng Việt) 其他: - 葡萄牙语(巴西,Português (Brasil)) - 土耳其语(Türkçe) ``` ## 2. 货币与格式 ### A. 多货币支持 - 自动汇率转换 - 自定义数字格式 - 自定义货币格式 - 自定义日期格式 ### B. 时区支持 - 多时区感知 - 支持 IANA 时区名称 - 夏令时自动处理 # 八、社区与生态 ## 1. 项目数据 ### A. 社区活跃度 - Stars:3931+ - Forks:396 - Open Issues:9 - 最新发布:2026-01-17 ### B. 社区认可 - HelloGitHub 推荐 - Trending Repositories - DeepWiki 收录 ## 2. 贡献指南 ### A. 贡献方式 - 提交 Bug 报告 - 提交功能建议 - 改进文档 - 贡献代码 ### B. 翻译贡献 - 欢迎添加新语言翻译 - 提供翻译指南 - 目前已有 19 种语言 # 九、对比分析 ## 1. 与同类产品对比 | 特性 | ezBookkeeping | Firefly III | GnuCash | 飞钱记账 | |------|---------------|-------------|---------|----------| | 开源免费 | ✅ | ✅ | ✅ | ❌ | | 自托管 | ✅ | ✅ | ❌ | ❌ | | 轻量级 | ✅ | ❌ | ❌ | ✅ | | 移动端 PWA | ✅ | ❌ | ❌ | ✅ | | 多语言 | ✅ | ✅ | ✅ | ✅ | | AI 功能 | ✅ | ❌ | ❌ | ✅ | | 国内导入 | ✅ | ❌ | ❌ | ✅ | ## 2. 优势分析 ### A. 技术优势 - Go 后端性能优异 - Vue 前端体验流畅 - Docker 部署简单 - 资源占用低 ### B. 功能优势 - AI 票据识别 - 支持国内记账软件导入 - PWA 原生体验 - 标签分组灵活 # 十、适用场景 ## 1. 个人用户 - 注重隐私保护 - 希望数据自控 - 需要多端同步 - 追求简洁体验 ## 2. 家庭理财 - 家庭成员独立账户 - 统一数据存储 - 移动端便捷记账 ## 3. 小型部署 - 树莓派家庭服务器 - NAS 私有云部署 - 微服务器轻量运行 # 十一、总结与展望 ## 1. 项目亮点 ### A. 技术层面 - 现代化技术栈(Go + Vue + TypeScript) - 轻量级设计,资源占用低 - 跨平台支持,部署灵活 - PWA 支持,移动体验好 ### B. 功能层面 - 记账功能全面 - AI 票据识别创新 - 多语言支持广泛 - 数据导入格式丰富 ## 2. 发展建议 ### A. 短期优化 - 继续完善移动端体验 - 增加更多数据可视化 - 优化 AI 识别准确率 ### B. 长期规划 - 支持更多第三方服务集成 - 增加协作功能(家庭共享) - 提供云端托管服务选项 ## 3. 推荐指数 ⭐⭐⭐⭐⭐ 推荐理由: 1. 完全开源免费,数据自控 2. 技术架构先进,性能优异 3. 部署简单,维护成本低 4. 功能完善,适合个人和小家庭使用 *** ## 参考资料 1. [ezBookkeeping GitHub 仓库](https://github.com/mayswind/ezbookkeeping) - 官方仓库 2. [ezBookkeeping 官方网站](https://ezbookkeeping.mayswind.net) - 项目主页 3. [ezBookkeeping 在线演示](https://ezbookkeeping-demo.mayswind.net) - Live Demo 4. [v1.3.0 发布说明](https://github.com/mayswind/ezbookkeeping/releases/tag/v1.3.0) - 版本更新 最后修改:2026 年 01 月 24 日 © 允许规范转载 赞 如果觉得我的文章对你有用,请随意赞赏