轻量又安全!一款开源自托管的个人记账工具!

大家好,我是 Java陈序员

你是否会有这样的困扰:手里存款越来越多,反而成了甜蜜的负担?

看着银行卡里不断上涨的数字,却总说不清每笔钱的来龙去脉;想给资金做个分类管理,却被各种理财 APP 的复杂界面劝退;更担心把财务数据存在第三方平台,哪天就成了“透明人”~

今天,给大家介绍一款开源自托管的个人记账工具,轻量又安全!

关注微信公众号:【Java陈序员】,获取开源项目分享、AI副业分享、超200本经典计算机电子书籍等。

项目介绍

ezBookkeeping —— 一款轻量、自托管的个人记账应用,基于 Go + Vue 构建,拥有用户友好的界面和强大的记账功能。

ezBookkeeping 部署简单,借助 Docker 只需一行命令即可启动。同时对系统资源占用低、可扩展性高,既可运行在树莓派等轻量设备上,也能扩展到 NAS、MicroServer 甚至集群环境。

功能特色

  • 强大的记账功能:支持二级账户与分类结构,支持为交易添加图片附件、交易地理位置,支持周期性交易,提供高级筛选、搜索功能
  • 开源自托管:专为隐私与数据自主而设计,所有财务数据存储在个人设备,无需依赖第三方平台,隐私安全完全由自己掌控
  • 极简部署与跨平台:主打轻量,在资源有限的设备上也运行流畅,支持 Docker 部署,支持跨平台使用和多种数据库
  • 友好的用户界面:UI 同时支持 Web 端和移动端,支持多语言、多币种、深色模式
  • 数据分析与可视化:提供收支趋势图、分类占比饼图等多种可视化图表,支持按账户、分类、时间范围等灵活筛选统计维度,支持 CSV、TSV 等格式导入导出

快速上手

二进制包部署

1、下载并解压安装包

下载地址:https://github.com/mayswind/ezbookkeeping/releases

2、执行如下命令启动服务

./ezbookkeeping server run

执行完该命令后,ezBookkeeping 将会以默认的配置启动,并监听端口 8080.

如果想修改配置,可以使用 --conf-path 参数指定自定义配置文件路径或直接修改 conf/config.ini 文件。

3、运行成功后,浏览器访问

http://{ip/域名}:8080

Docker 部署

  • Docker 命令部署

1、拉取镜像

docker pull mayswind/ezbookkeeping

2、创建挂载目录并修改权限

## 数据库存储挂载目录
mkdir -p /data/software/ezbookkeeping/data
chown 1000:1000 /data/software/ezbookkeeping/data

## 对象存储挂载目录
mkdir -p /data/software/ezbookkeeping/storage
chown 1000:1000 /data/software/ezbookkeeping/storage

3、运行容器

docker run -d -p 8080:8080 \
    --name ezbookkeeping \
    -v /var/lib/ezbookkeeping/data:/ezbookkeeping/data \
    -v /var/lib/ezbookkeeping/storage:/ezbookkeeping/storage \
    mayswind/ezbookkeeping

4、容器运行成功后,浏览器访问

http://{ip/域名}:8080
  • Docker Compose 部署

1、创建 docker-compose.yaml 文件并写入如下内容:

version: "2"
services:
  ezbookkeeping:
    image: mayswind/ezbookkeeping
    container_name: ezbookkeeping
    hostname: "ezbookkeeping"
    ports:
      - "8080:8080"
    environment:
      - "EBK_SERVER_DOMAIN=ezbookkeeping.yourdomain"
      - "EBK_SERVER_ENABLE_GZIP=true"
      - "EBK_DATABASE_TYPE=mysql"
      - "EBK_DATABASE_HOST=mysql:3306"
      - "EBK_DATABASE_NAME=ezbookkeeping"
      - "EBK_DATABASE_USER=ezbookkeeping"
      - "EBK_DATABASE_PASSWD=ezbookkeeping"
      - "EBK_LOG_MODE=file"
      - "EBK_SECURITY_SECRET_KEY=its_should_be_a_random_string"
    volumes:
      - "/etc/localtime:/etc/localtime:ro"
      - "/var/lib/ezbookkeeping/storage:/ezbookkeeping/storage" # 请确保 UID:GID 是 1000:1000
      - "/var/log/ezbookkeeping:/ezbookkeeping/log" # 请确保 UID:GID 是 1000:1000

使用 MySQL 作为数据库,数据库的连接信息需要进行修改,文件挂载目录记得创建和授权。

2、一键启动

docker compose up -d

更多的安装配置信息,可参考官方文档:

http://ezbookkeeping.mayswind.net/zh_Hans/installation

初始化配置

1、首次访问 ezBookkeeping 需要注册用户信息

2、点击创建新账号,填入用户基本信息并设置默认币种

3、使用预设交易分类,后续可直接使用,无需再手动创建

4、最后提交保存并登录到首页,即可开始使用

功能体验

PC 端

  • 总览

  • 交易详情

  • 统计分析

  • 账户

  • 交易分类

  • 用户设置

移动端

可以说,无论是日常记账、消费分析,还是多币种管理,ezBookkeeping 都能胜任工作。更重要的是,所有财务数据存储在个人设备,无需依赖第三方平台,隐私安全完全由自己掌控。快去部署体验吧~

项目地址:https://github.com/mayswind/ezbookkeeping

最后

推荐的开源项目已经收录到 GitHub 项目,欢迎 Star

https://github.com/chenyl8848/great-open-source-project

或者访问网站,进行在线浏览:

https://chencoding.top:8090/#/

我创建了一个开源项目交流群,方便大家在群里交流、讨论开源项目

但是任何人在群里打任何广告,都会被 T 掉

如果你对这个交流群感兴趣或者在使用开源项目中遇到问题,可以通过如下方式进群

关注微信公众号:【Java陈序员】,回复【开源项目交流群】进群,或者通过公众号下方的菜单添加个人微信,并备注【开源项目交流群】,通过后拉你进群

大家的点赞、收藏和评论都是对作者的支持,如文章对你有帮助还请点赞转发支持下,谢谢!


posted @ 2025-09-08 09:33  Java陈序员  阅读(248)  评论(0)    收藏  举报