在数字时代,消费与支付因网购而变得无比便捷,金钱也随之渐渐抽象为屏幕上冰冷的数字,失去了曾经真实可握的温度。过去用现金交易时,每一张纸币的递出都伴随着复杂的心绪------或许是计划,是犹豫,抑或是不舍。那种实实在在的"付出感",无形中让人更懂衡量、更知节制。
如今,手机一扫、一键即付,消费变得轻而易举,人与金钱之间的情感联结却日益稀薄。支付动作的简化,也在不知不觉间削弱了我们对支出的敏感。就像从前用现金吃饭,人们会下意识地根据钱包里的余额约束开销;而数字支付让人难以感知"失去",更容易在无声无息中越过原本的界限。
于是我不禁思考:既然我们享受着快捷支付的便利,是否也能找到一种方式,让消费重新变得可感知?我曾尝试手动记账,但不仅难以统计,账本也容易丢失;又试过一些记账软件,可它们往往太过"便捷",依然无法帮我找回那份对消费的真实感知。直到最近在 GitHub 上发现了一个开源项目------它恰好满足了我所有这些期待。今天,就想把它介绍给大家。

ezbookkeeping-192.png
什么是ezBookkeeping?
ezBookkeeping 是一款轻量、自托管 (self-hosted) 的个人记账应用,拥有用户友好的界面和强大的记账功能。它部署简单,借助 Docker 只需一行命令即可启动。同时对系统资源占用低、可扩展性高,既可运行在树莓派等轻量设备上,也能扩展到 NAS、MicroServer 甚至集群环境。
ezBookkeeping 为移动端和桌面端提供了各自原生的界面设计。借助 PWA (渐进式网页应用) 技术,您还可以将它 添加到手机主屏幕,像原生 App 一样使用。
github 地址: github.com/mayswind/ez...
文档地址: ezbookkeeping.mayswind.net/zh_Hans
在线演示:ezbookkeeping-demo.mayswind.net
该项目在github已有3.2k star

_20251206_054722.png
Docker私有化部署
我使用的是docker-compose 进行私有化部署的,步骤如下:
- 创建docker-compose.yml 文件
在我们的服务器上创建部署目录ezbookkeeping,在此目录下创建 docker-compose.yml 文件,内容如下:
bash
services:
ezbookkeeping:
image: mayswind/ezbookkeeping:latest
container_name: ezbookkeeping
hostname: "ezbookkeeping"
ports:
- "7080:8080"
# 默认数据库类型是 sqlite3,若使用默认数据库,注释掉以下环境变量
environment:
- "EBK_SERVER_ENABLE_GZIP=true"
- "EBK_DATABASE_TYPE=mysql"
- "EBK_DATABASE_HOST=192.168.31.195:3306"
- "EBK_DATABASE_NAME=ezbookkeeping"
- "EBK_DATABASE_USER=root"
- "EBK_DATABASE_PASSWD=xj123456"
- "EBK_LOG_MODE=file"
- "EBK_SECURITY_SECRET_KEY=its_should_be_a_random_string"
volumes:
- /etc/localtime:/etc/localtime:ro
- ./storage:/ezbookkeeping/storage # 请确保 UID:GID 是 1000:1000
- ./log:/ezbookkeeping/log # 请确保 UID:GID 是 1000:1000
# - ./ezbookkeeping.ini:/ezbookkeeping/conf/ezbookkeeping.ini
# - ./data:/ezbookkeeping/data # 默认使用sqlite3数据库挂载目录
ezbookkeeping 默认数据库类型是 sqlite3,数据库文件存储在容器中的 /ezbookkeeping/data/ezbookkeeping.db,若使用默认数据库,并持久化保存这些数据,你需要使用 Docker 持久化数据卷或挂载宿主机的路径到容器内。
若想使用mysql或PostgreSQL,则需现在对应的数据库中创建好数据库,在环境变量中配置好相应的环境变量即可,我此处使用的是mysql数据库。
- 启动服务
在docker-compose.yml的同级目录下使用以下命令启动服务
docker-compose up -d
启动之后汇报权限错误的日志,需要给挂载目录修改权限
给挂载目录授权
bash
sudo chmod -R 777 storage log
重启服务
docker-compose restart
到此,我们服务就部署好了
使用
- 注册
在浏览器中打开服务地址,首次的话我们先需要注册用户

_20251206_063538.png

_20251206_063650.png
注册的时候我们可以预设分类 
- 创建账户、分类
我们需要先创建好账户,根据自己记录的维度创建好消费及收入分类

_20251206_064953.png
- 添加交易、常看统计
然后我们可以记录我们的每一笔消费、收入了

_20251206_065454.png

_20251206_065547.png
- 移动端使用
在手机浏览器中打开网址http://ip:port/ 或者扫码,使用用户名登录之后就可以在手机端使用了,如果不想每次进浏览器,可以在浏览器中将页面发送到手机桌面。

_20251206_070326.png
结语
在众多个人财务应用中,ezBookkeeping以其开源特性、隐私保护、轻量高效和易部署的优势脱颖而出。无论你是技术爱好者想在树莓派上搭建服务,还是普通用户想在NAS上自建财务系统,ezBookkeeping都是一个值得尝试的优秀选择。
它的设计哲学很明确:给用户完全的控制权,同时提供专业级的记账体验。在这个数据隐私日益重要的时代,这样的应用显得尤为珍贵。
如果你正在寻找一个可靠、私密、功能全面的记账解决方案,不妨试试ezBookkeeping。只需几分钟的部署时间,你就能拥有一个完全属于自己的专业财务管理系统。