开源好用的个人财务/记账应用,Docker一键部署ezBookkeeping

2025-08-15 14:20:37 10点赞 88收藏 18评论

本期来介绍一款优秀的 记账/个人财务 应用工具:ezBookkeeping。适合个人使用,简洁、强大且便携,小微设备或云服务器都能轻松运行。

开源好用的个人财务/记账应用,Docker一键部署ezBookkeeping

笔者体验下来PC和移动端用着都很舒服,项目非常棒,特做推荐!!!

开源好用的个人财务/记账应用,Docker一键部署ezBookkeeping

应用介绍


ezBookkeeping 是一款轻量级、自托管的个人财务应用,拥有简洁易用的界面和强大的记账功能。它以简洁易用和可移植性为设计理念,易于部署、易于使用,并且占用的系统资源极少,非常适合微服务器、NAS 设备,甚至 Raspberry Pi,也能在 PC、Mac 甚至云服务器上流畅运行。

该应用程序完全跨平台且设备友好:可以在移动设备、平板电脑和桌面设备上无缝使用它。由于支持 PWA(渐进式 Web 应用程序),甚至可以将其添加到移动主屏幕,并像原生应用程序一样使用它。


功能特点


1. 开源 & 自托管

代码开放,部署在自己的服务器,隐私和数据完全掌握在自己手中。

适合重视数据安全、拒绝云端锁定的用户。

2. 轻量 & 高性能

针对低资源环境优化,树莓派、NAS、旧笔记本都能流畅运行。

即使是多账本、大量交易记录,也能保持响应快速。

3. 简单部署

官方提供 Docker 镜像,几行命令即可启动。

支持 SQLite(零配置)、MySQL、PostgreSQL 等多种数据库。

跨平台支持 Windows、macOS、Linux,兼容 x86、amd64、ARM 架构。

4. 跨平台 & PWA 支持

UI 适配桌面与移动端。

支持 PWA(Progressive Web App),可直接添加到手机主屏幕,像原生 App 一样使用。

内置暗黑模式,夜间看账也护眼。

5. AI 能力

支持 MCP(Model Context Protocol),可集成 AI 功能进行智能分析、自动分类或生成财务洞察。

6. 强大的记账功能

两级账户与分类体系,更精准管理收支。

可为交易附加图片(如收据、发票)。

支持位置记录,自动在地图上显示消费地点。

定期交易(如房租、水电费)可自动生成。

高级搜索、过滤、数据可视化和分析工具,帮助你发现消费习惯。

7. 国际化支持

多语言、多货币支持。

自动更新汇率。

支持多时区显示与自定义日期、数字、货币格式。

8. 安全保障

支持双重认证(2FA)。

登录尝试次数限制,防暴力破解。

应用锁(PIN 码 / WebAuthn)防止未授权访问。

9. 数据导入/导出

支持导入/导出多种格式:
CSV、OFX、QFX、QIF、IIF、Camt.053、MT940、GnuCash、Firefly III、Beancount 、随手记、支付宝以及微信账单 等多种格式等。

方便从旧系统迁移,或与其他财务软件对接。


如何部署


我们以威联通NAS为例,通过Docker Compose的方式进行部署。

开源好用的个人财务/记账应用,Docker一键部署ezBookkeeping

ezBookkeeping 容器默认 UID:GID = 1000:1000,必须确保挂载到容器的宿主机目录拥有读写权限,请提前赋权。如果你部署失败,则极大概率会是这个原因。

chown -R 1000:1000 /share/Container/ezbookkeeping/data chown -R 1000:1000 /share/Container/ezbookkeeping/storage chown -R 1000:1000 /share/Container/ezbookkeeping/log 开源好用的个人财务/记账应用,Docker一键部署ezBookkeeping

✅ SQLite 版本

可能对于大多数人来说,这个版本已经完全足够。

部署代码如下,威联通用户可直接抄作业:

services: ezbookkeeping: image: mayswind/ezbookkeeping:latest container_name: ezbookkeeping hostname: ezbookkeeping restart: unless-stopped ports: - "9527:8080" # 冒号左侧端口可改 environment: EBK_SERVER_DOMAIN: 192.168.200.132 # 或你 NAS 的域名 EBK_ROOT_URL: http://192.168.200.132:9527 # 包括端口 EBK_LOG_MODE: file EBK_SECURITY_SECRET_KEY: its_should_be_a_random_string # 改成随机密钥 EBK_MCP_ENABLE_MCP: true # AI服务 volumes: - /etc/localtime:/etc/localtime:ro # 同步宿主机时间 - /share/Container/ezbookkeeping/data:/ezbookkeeping/data # SQLite 数据库存放位置(NAS持久化目录) - /share/Container/ezbookkeeping/storage:/ezbookkeeping/storage # 文件存储目录(附件、导出文件等) - /share/Container/ezbookkeeping/log:/ezbookkeeping/log # 日志目录

随机密钥可通过以下命令生成:

openssl rand -hex 32 开源好用的个人财务/记账应用,Docker一键部署ezBookkeeping

✅ mysql 版本

若你已经部署mysql,或后续有共用数据库的打算,以及清楚自己在做什么,可以使用该版本。如果你对mysql并无了解,建议部署SQLite 版本。

如果你还没部署Mysql,部署代码可如下:

services: mysql: image: mysql:8.0 container_name: ezbookkeeping-mysql hostname: mysql restart: unless-stopped command: --default-authentication-plugin=mysql_native_password environment: MYSQL_ROOT_PASSWORD: rootpassword # MySQL root 超级管理员密码 MYSQL_DATABASE: ezbookkeeping MYSQL_USER: ezbookkeeping MYSQL_PASSWORD: ezbookkeeping # 可改 volumes: - /share/Container/ezbookkeeping/data_mysql:/var/lib/mysql # 如果后续准备多容器共用mysql数据库 # - /share/Container/mysql/data:/var/lib/mysql ports: - "3306:3306" # 可选,内部访问可去掉 # 如果你修改了 MYSQL_PASSWORD # 则健康检查中的值也别忘记修改 healthcheck: test: ["CMD", "mysqladmin", "ping", "-p", "ezbookkeeping"] interval: 10s timeout: 5s retries: 5 ezbookkeeping: image: mayswind/ezbookkeeping:latest container_name: ezbookkeeping hostname: ezbookkeeping restart: unless-stopped depends_on: mysql: condition: service_healthy ports: - "9527:8080" # 冒号左侧可改 environment: EBK_SERVER_DOMAIN: 192.168.200.132 # 或你 NAS 的域名 EBK_ROOT_URL: http://192.168.200.132:9527 # 包括端口 EBK_DATABASE_TYPE: mysql EBK_DATABASE_HOST: mysql:3306 EBK_DATABASE_NAME: ezbookkeeping EBK_DATABASE_USER: ezbookkeeping # 对应上面,下同 EBK_DATABASE_PASSWD: ezbookkeeping # 对应上面 MYSQL_PASSWORD EBK_LOG_MODE: file EBK_SECURITY_SECRET_KEY: 随机密钥替换这里 # 生成方式参考上文 EBK_MCP_ENABLE_MCP: "true" # 可选启用 AI 功能 volumes: - /etc/localtime:/etc/localtime:ro - /share/Container/ezbookkeeping/storage:/ezbookkeeping/storage - /share/Container/ezbookkeeping/log:/ezbookkeeping/log

如果你已经部署过Mysql,要提前在Mysql中创建独立数据库和用户,以供ezBookkeeping使用:

CREATE DATABASE ezbookkeeping CHARACTER SET utf8mb4; CREATE USER 'ezbookkeeping'@'%' IDENTIFIED BY '强密码'; GRANT ALL PRIVILEGES ON ezbookkeeping.* TO 'ezbookkeeping'@'%'; FLUSH PRIVILEGES;

参考代码如下,酌情修改:

services: ezbookkeeping: image: mayswind/ezbookkeeping:latest container_name: ezbookkeeping hostname: ezbookkeeping restart: unless-stopped ports: - "9527:8080" environment: EBK_SERVER_DOMAIN: 192.168.200.132 # 或你 NAS 的域名 EBK_ROOT_URL: http://192.168.200.132:9527 # 包括端口 EBK_SERVER_DOMAIN: yourdomain EBK_SERVER_ENABLE_GZIP: "true" EBK_DATABASE_TYPE: mysql EBK_DATABASE_HOST: 127.0.0.1:3306 # NAS 内部 MySQL 地址,不一定都是这个 EBK_DATABASE_NAME: ezbookkeeping EBK_DATABASE_USER: ezbookkeeping EBK_DATABASE_PASSWD: 强密码替换这里 EBK_LOG_MODE: file EBK_SECURITY_SECRET_KEY: 随机密钥替换这里 EBK_MCP_ENABLE_MCP: "true" volumes: - /etc/localtime:/etc/localtime:ro - /share/Container/ezbookkeeping/storage:/ezbookkeeping/storage - /share/Container/ezbookkeeping/log:/ezbookkeeping/log


注意


更多的配置,可以参考下图,官方wiki十分详细,包括邮件服务、通知配置、对象存储、汇率等都可进行配置。

开源好用的个人财务/记账应用,Docker一键部署ezBookkeeping

初始化及功能展示


选用SQLite对应代码进行部署后,浏览器中输入 NAS_IP:9527 即可访问服务。

开源好用的个人财务/记账应用,Docker一键部署ezBookkeeping

需要我们新建一个账户。

开源好用的个人财务/记账应用,Docker一键部署ezBookkeeping

第二步的预设分类我们可以选择启用,然后提交即可。可能出现提交无法通过,但事实已经注册成功,反回去登陆就行。不过为了后续稳定,建议删除全部配置文件重新创建。

开源好用的个人财务/记账应用,Docker一键部署ezBookkeeping

界面展示如下,清晰明了,蛮符合我个人口味。大家觉得如何?

开源好用的个人财务/记账应用,Docker一键部署ezBookkeeping

点击头像可进行各种设置。

开源好用的个人财务/记账应用,Docker一键部署ezBookkeeping

密码和设备管理,在这里可生成MCP令牌供AI对话调用。

开源好用的个人财务/记账应用,Docker一键部署ezBookkeeping

支持两步验证,资安相关的确实有必要整一个。

开源好用的个人财务/记账应用,Docker一键部署ezBookkeeping

数据管理,支持手动导出数据。

开源好用的个人财务/记账应用,Docker一键部署ezBookkeeping

应用设置中可以配置展示界面、添加应用锁(六位PIN码)、资金统计显示以及数据同步(移动/PC分离)。

开源好用的个人财务/记账应用,Docker一键部署ezBookkeeping

简单使用


左侧栏的「账户」,新增一个。可自行添加标签,也可上传图片凭据。

开源好用的个人财务/记账应用,Docker一键部署ezBookkeeping

开始记账,可自行添加标签,也可上传图片凭据。

开源好用的个人财务/记账应用,Docker一键部署ezBookkeeping

可以看到添加成功。

开源好用的个人财务/记账应用,Docker一键部署ezBookkeeping

主界面显示如下图所示,很丝滑。如果大家不满足于基础的交易分类、模版等,在左侧的基础数据手动添加/删除即可。

开源好用的个人财务/记账应用,Docker一键部署ezBookkeeping

MCP服务


来尝试下MCP服务,生成令牌或json配置文件。这个配置建议保存,一次性显示,否则就要重新创建一个。

开源好用的个人财务/记账应用,Docker一键部署ezBookkeeping

配置填写如下图所示,url中间部份可填写域名或IP,能正确访问到你的服务即可。

开源好用的个人财务/记账应用,Docker一键部署ezBookkeeping

可以看到已经添加成功了,但是查看API功能接口,感觉跟官方给的wiki介绍有差距。

开源好用的个人财务/记账应用,Docker一键部署ezBookkeeping

实际指令测试却并不能成功,检查了网络(全程局域网)、数据库文件,最终未果~大家或许可以试试mysql会不会有同样问题。

开源好用的个人财务/记账应用,Docker一键部署ezBookkeeping

关于MCP也有相关的功能介绍界面,感兴趣的朋友可以琢磨。


最后


我认为这个项目非常优秀,PC端和移动端的使用很满意。

项目较新,大家有啥建议可以到项目地址提交issues~

感谢观看,本文完。

展开 收起
18评论

  • 精彩
  • 最新
  • 移动端怎样

    校验提示文案

    提交
    移动端也不错 第二个截图就是

    校验提示文案

    提交
    收起所有回复
  • 用得随手记,记账9年了,广告是真的多!

    校验提示文案

    提交
    也正常,毕竟为爱发电还是有点难

    校验提示文案

    提交
    网上有净化版的,免升级,使用方便。就是版本老,只有基本功能。

    校验提示文案

    提交
    收起所有回复
  • 能用mysql搭建全平台数据互通的高手看不上他,想用他的小伙伴不会搭建平台。

    校验提示文案

    提交
    依赖版本导致不兼容最烦,最近又碰到一个用不通😂

    校验提示文案

    提交
    有好用的推荐吗?

    校验提示文案

    提交
    收起所有回复
  • 请问羊总,这个ezbookkeeping的移动端在gitgub和官网都没找到。你下载了吗

    校验提示文案

    提交
    应该是web用 自动适配屏幕尺寸

    校验提示文案

    提交
    收起所有回复
  • 用了下,有两个问题
    1、虚拟账户的欠款,不计入总的负债
    2、信用卡计算有问题,信用卡账户支出以后,负债减少

    校验提示文案

    提交
  • 嗯,刚开始记账的可以玩玩

    校验提示文案

    提交
  • 股票,基金之类的投资没办法记录

    校验提示文案

    提交
  • UNRAID安装启动不起来,不知道什么原因

    校验提示文案

    提交
    可以了,权限的问题

    校验提示文案

    提交
    收起所有回复
  • 不是很行,虽然有支付宝微信导入,但是实际上识别不了,会报错

    校验提示文案

    提交
  • 第一次进没问题,后面就是一直报错,这个陌生ip get请求,奇怪。

    校验提示文案

    提交
  • 5 [REQUEST] [fb813496-13fd-df80-0000-004c3c0cbc08] 200 0 3775625558713434112 60.12.188.8 GET /api/v1/transactions/list.json?max_time=0&min_time=0&type=0&category_ids=&account_ids=&tag_ids=&tag_filter_type=0&amount_filter=&keyword=&count=50&page=1&with_count=false&trim_account=true&trim_category=true&trim_tag=true 3ms

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
88
扫一下,分享更方便,购买更轻松