在日常生活和工作中,记账与财务管理往往是最容易被忽视、却又最重要的一环。无论是个人日常支出、家庭收支记录,还是自由职业、工作室的简单财务统计,如果长期依赖零散的笔记、Excel 表格,或第三方平台,不仅维护成本高,数据安全和长期可控性也难以保障。
随着越来越多用户开始重视数据隐私与自主掌控,自托管应用逐渐成为一种趋势。相比把账本数据交给云端平台,部署一个属于自己的记账系统,不仅更安全,也更灵活,能够真正做到“数据只在自己服务器上”。
1. 项目
ezBookkeeping 是一款 开源、轻量级、自托管 的个人记账应用,专注于提供简洁、高效、实用的财务记录体验。它支持收入、支出、转账等多种记账场景,并提供直观的数据统计与分类管理,能够满足个人和家庭的日常记账需求。作为一款以自部署为核心设计理念的项目,ezBookkeeping 完全不依赖第三方云服务,所有账本数据都存储在用户自己的服务器中,安全性和可控性更高。
1.1 项目特点
🎨 简洁直观的现代化 UI
ezBookkeeping 采用清爽直观的界面设计,整体风格偏向实用与可读性,功能布局清晰,上手门槛低。无论是日常快速记账,还是后期查看统计数据,都能获得良好的使用体验,在桌面端和移动端浏览器中均表现稳定。
⚙️ 专注记账核心,操作高效
项目围绕“记账”这一核心场景进行设计,去除了冗余复杂功能。新增记录、分类选择、金额输入等操作流程简洁流畅,非常适合长期、频繁使用的记账场景。
📒 完整的记账功能支持
ezBookkeeping 支持多种常见财务记录类型,包括:
- 收入记录
- 支出记录
- 账户间转账
- 分类与子分类管理
- 多账户支持
- 多币种记账
能够满足个人、家庭以及轻量级工作室的日常财务记录需求。
📊 直观的数据统计与报表
内置多种统计视图,可按时间、分类、账户等维度查看收支情况,帮助用户快速了解资金流向与消费结构,便于进行日常财务复盘与管理。
🚀 轻量级架构,运行稳定
ezBookkeeping 整体设计轻量,对服务器资源占用极低,即使是配置不高的云服务器或 NAS 设备,也可以稳定运行,非常适合长期自托管部署。
📦 官方支持 Docker 快速部署
项目官方提供 Docker 镜像,部署过程无需手动安装依赖或配置复杂环境,只需简单几条命令,即可在服务器上完成部署,大幅降低使用门槛。
🔐 数据完全自托管,隐私可控
所有账本数据均存储在用户自己的服务器中,不依赖任何第三方云服务,有效避免数据泄露风险,适合对隐私和数据安全有要求的用户。
🌍 多语言与时区支持
支持多语言界面和自定义时区配置,适用于不同地区用户使用,部署在海外或国内服务器环境中都能正常工作。
📂 数据持久化,便于备份与迁移
通过 Docker 数据卷进行数据持久化,账本文件可随时备份、迁移或恢复,方便长期维护和服务器更换。
🧭 适用于多种使用场景
无论是:
- 个人日常记账
- 家庭收支管理
- 自由职业者简单财务记录
- 自托管财务应用实践
ezBookkeeping 都能作为一款稳定、可靠、轻量的记账解决方案。
1.2 项目展示



2.相关地址
gitHub开源项目:https://github.com/mayswind/ezbookkeeping
官方demo:https://ezbookkeeping-demo.mayswind.net/desktop#/
3.搭建环境
- 服务器:这里为了方便搭建项目使用的是莱卡云的境外香港云服务器。(国内用户连接建议使用国内的服务器(需备案域名或者IP+端口)延迟会更低)
- 莱卡云服务器促销活动性价比会更高。查看官网购买链接:https://www.lcayun.com
- 资源配置:2核2G 30G硬盘
由于国内服务器访问海外源较慢,这边为了方便演示直接使用海外服务器搭建。 - 服务器系统:Debian-13
- 【必需】安装Docker:安装好 Docker、Docker-compose
- 【非必需】域名一枚,可用于解析到服务器上使用域名访问

4.搭建视频
哔哩哔哩:https://www.bilibili.com/video/BV1eGBxB9EuC/
5.搭建方式
5.1 安装docker和docker-compose
安装教程:服务器上安装docker和docker-compose教程
5.2 创建docker文件
#在opt目录下创建ezbookkeeping文件夹
mkdir -p /opt/ezbookkeeping
#打开ezbookkeeping文件
cd /opt/ezbookkeeping
5.3 创建Docker Compose 配置
#编辑docker-compose.yml
vim docker-compose.yml
填入以下的配置文件
根据自己实际情况来设置
services:
mysql:
image: mysql:8.0 # 使用官方 MySQL 8.0 镜像
container_name: ezbookkeeping-mysql # 容器名称(可自定义)
restart: unless-stopped # 除非手动停止,否则异常会自动重启
command:
- --character-set-server=utf8mb4 # 默认字符集(支持中文/emoji)
- --collation-server=utf8mb4_unicode_ci # 默认排序规则
- --default-time-zone=+08:00 # MySQL 时区(这里设为东八区)
volumes:
- ./data:/var/lib/mysql # MySQL 数据持久化(重要:避免重启丢数据)
environment:
MYSQL_DATABASE: ezbookkeeping # 初始化创建数据库名
MYSQL_USER: ezbookkeeping # 初始化创建普通用户
MYSQL_PASSWORD: ezbookkeeping # 普通用户密码(建议改强密码)
MYSQL_ROOT_PASSWORD: ezbookkeeping # root 密码(建议改强密码)
healthcheck:
# 健康检查:用 mysqladmin ping 判断 MySQL 是否就绪
# -p 密码要紧跟,不要有空格(-pPASSWORD)
test: ["CMD", "mysqladmin", "ping", "-h", "127.0.0.1", "-pezbookkeeping"]
interval: 5s # 每 5 秒检查一次
timeout: 5s # 单次检查超时时间 5 秒
retries: 20 # 连续失败 20 次才判定为 unhealthy
ezbookkeeping:
image: mayswind/ezbookkeeping:latest # ezBookkeeping 镜像(latest 表示最新版)
container_name: ezbookkeeping # 容器名称
restart: unless-stopped # 异常自动重启
ports:
- "8082:8080" # 访问端口:宿主机 8082 -> 容器 8080
volumes:
- /etc/localtime:/etc/localtime:ro # 同步宿主机时间(只读挂载)
- ./storage:/ezbookkeeping/storage # 应用存储目录(持久化数据/附件等)
- ./log:/ezbookkeeping/log # 应用日志目录(写到宿主机)
# - ./ezbookkeeping.ini:/ezbookkeeping/conf/ezbookkeeping.ini:ro
# 如果你需要用配置文件覆盖默认配置,可取消注释并准备 ezbookkeeping.ini(只读更安全)
environment:
EBK_DATABASE_TYPE: mysql # 数据库类型:mysql
EBK_DATABASE_HOST: mysql:3306 # 数据库地址:服务名 mysql + 端口 3306(同一网络内自动解析)
EBK_DATABASE_NAME: ezbookkeeping # 数据库名
EBK_DATABASE_USER: ezbookkeeping # 数据库用户
EBK_DATABASE_PASSWD: ezbookkeeping # 数据库密码
EBK_LOG_MODE: file # 日志模式:写文件(配合 ./log 挂载)
EBK_SECURITY_SECRET_KEY: "change_me_to_a_long_random_string"
# 安全密钥:建议改成 32~64 位以上随机字符串(用于安全相关加密/签名)
EBK_MCP_ENABLE_MCP: "true" # 是否启用 MCP(按你需求启用/关闭)
depends_on:
mysql:
condition: service_healthy # 等 MySQL 健康检查通过后再启动 ezBookkeeping(更稳)
5.4 运行ezbookkeeping的docker镜像
我们先启动docker
# 启动docker
docker compose up -d
# 重启docker
docker compose stop
docker compose start
# 升级docker
docker compose down
docker compose pull
docker compose up -d
启动成功docker-compose.yml之后我们开放一下日志文件权限
chmod -R 777 log storage
目的:让容器里的 ezBookkeeping 能创建这个文件:/ezbookkeeping/log/ezbookkeeping.log
然后再重启一下docker服务
docker compose restart ezbookkeeping
重启成功后,你可以通过以下命令查看运行状态:
docker ps
如果容器状态为 Up,说明已经启动成功。

5.5 访问自己搭建的ezbookkeeping
浏览器访问:
http://你的服务器IP:8082
我们可以自己选择语言

这时候需要您自己创建一个新账户

创建完即可进入了,整个过程非常直观,不需要复杂配置。

6.日常维护与升级
🔄 更新 ezBookkeeping
docker compose pull
docker compose up -d
💾 数据备份
只需定期备份:
/opt/ezbookkeeping/data
哪怕服务器重装,账本数据也能轻松恢复。
7.结语
自行部署 ezBookkeeping 不仅能够更好地保护财务数据隐私,还能根据自身需求灵活调整运行环境。无论是个人日常记账、家庭收支管理,还是作为轻量级财务记录系统长期运行在服务器上,这种方式都更加可控、可靠。








