mayswind/ezbookkeeping

GitHub: mayswind/ezbookkeeping

一款轻量级自托管个人记账应用,帮助用户在自有设备上安全地记录、分析和可视化日常财务数据。

Stars: 4841 | Forks: 528

# ezBookkeeping [![License](https://img.shields.io/badge/license-MIT-green.svg)](https://github.com/mayswind/ezbookkeeping/blob/master/LICENSE) [![Go Report](https://goreportcard.com/badge/github.com/mayswind/ezbookkeeping)](https://goreportcard.com/report/github.com/mayswind/ezbookkeeping) [![Latest Release](https://img.shields.io/github/release/mayswind/ezbookkeeping.svg?style=flat)](https://github.com/mayswind/ezbookkeeping/releases) [![Latest Build](https://img.shields.io/github/actions/workflow/status/mayswind/ezbookkeeping/build-snapshot.yml?branch=main)](https://github.com/mayswind/ezbookkeeping/actions) [![Latest Docker Image Size](https://img.shields.io/docker/image-size/mayswind/ezbookkeeping.svg?style=flat)](https://hub.docker.com/r/mayswind/ezbookkeeping) [![Docker Pulls](https://img.shields.io/docker/pulls/mayswind/ezbookkeeping)](https://hub.docker.com/r/mayswind/ezbookkeeping) [![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/mayswind/ezbookkeeping) [![Recommend By HelloGitHub](https://api.hellogithub.com/v1/widgets/recommend.svg?rid=ded5af09da574ec1811ddb154f1b2093&claim_uid=LT7EZxeBukCnh0K)](https://hellogithub.com/en/repository/mayswind/ezbookkeeping) [![Trending](https://trendshift.io/api/badge/repositories/12917)](https://trendshift.io/repositories/12917) ## 介绍 ezBookkeeping 是一个轻量级、自托管的个人记账应用,拥有友好的界面和强大的记账功能。它可以帮助你记录日常交易,支持从多种来源导入数据,并快速搜索和过滤你的账单。你可以使用内置图表分析历史数据,或者通过自定义图表维度进行查询,以便更好地了解支出模式和财务趋势。ezBookkeeping 易于部署,只需一条 Docker 命令即可启动。它在设计上注重节省资源,可以在树莓派、NAS 和微型服务器等设备上流畅运行。 ezBookkeeping 为移动端和桌面端设备提供了量身定制的界面。通过支持 PWA(Progressive Web Apps),你甚至可以[将其添加到手机主屏幕](https://raw.githubusercontent.com/wiki/mayswind/ezbookkeeping/img/mobile/add_to_home_screen.gif),像原生应用一样使用它。 在线演示:[https://ezbookkeeping-demo.mayswind.net](https://ezbookkeeping-demo.mayswind.net) ## 功能特性 - **开源与自托管** - 为隐私和掌控而生 - **轻量与快速** - 极低的资源消耗,即使在低资源设备上也能流畅运行 - **易于安装** - 支持 Docker - 支持 SQLite、MySQL、PostgreSQL - 跨平台(Windows、macOS、Linux) - 支持 x86、amd64、ARM 架构 - **友好的用户界面** - 针对移动端和桌面端进行了 UI 优化 - 支持 PWA,提供媲美原生应用的移动端体验 - 深色模式 - **AI 驱动功能** - 票据图片识别 - 支持 MCP(模型上下文协议)以集成 AI - 支持 Agent Skill 和 API 命令行脚本工具以集成 AI - **强大的记账功能** - 两级账户和分类 - 交易可附加图片 - 带有地图的位置追踪 - 定时交易 - 高级过滤、搜索、可视化与分析 - **本地化与国际化** - 支持多语言和多币种 - 提供多种汇率来源并支持自动更新 - 支持多时区 - 可自定义日期、数字和货币格式 - **安全性** - 双因素认证(2FA) - OIDC 外部认证 - 登录频率限制 - 应用锁定(PIN 码 / WebAuthn) - **数据导入与导出** - 支持 CSV、OFX、QFX、QIF、IIF、Camt.052、Camt.053、MT940、GnuCash、Firefly III、Beancount 等 有关功能的完整列表,请访问[完整功能列表](https://ezbookkeeping.mayswind.net/features/)。 ## 截图 ### 桌面版 [![ezBookkeeping](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/eed5acdb0f185808.png)](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/eed5acdb0f185808.png) ### 移动版 [![ezBookkeeping](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/a2829d28d9185816.png)](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/a2829d28d9185816.png) ## 安装 ### 通过 Docker 运行 访问 [Docker Hub](https://hub.docker.com/r/mayswind/ezbookkeeping) 查看所有镜像和标签。 **最新发布版本:** ``` $ docker run -p8080:8080 mayswind/ezbookkeeping ``` **最新每日构建版本:** ``` $ docker run -p8080:8080 mayswind/ezbookkeeping:latest-snapshot ``` ### 从二进制文件安装 下载最新版本:[https://github.com/mayswind/ezbookkeeping/releases](https://github.com/mayswind/ezbookkeeping/releases) **Linux / macOS** ``` $ ./ezbookkeeping server run ``` **Windows** ``` > .\ezbookkeeping.exe server run ``` 默认情况下,ezBookkeeping 会监听 8080 端口。然后你可以访问 `http://{YOUR_HOST_ADDRESS}:8080/`。 ### 从源代码构建 请确保已安装 [Golang](https://golang.org/)、[GCC](https://gcc.gnu.org/)、[Node.js](https://nodejs.org/) 和 [NPM](https://www.npmjs.com/)。然后下载源代码,并按照以下步骤操作: **Linux / macOS** ``` $ ./build.sh package -o ezbookkeeping.tar.gz ``` 所有文件将被打包到 `ezbookkeeping.tar.gz` 中。 **Windows** ``` > .\build.bat package -o ezbookkeeping.zip ``` 或者 ``` PS > .\build.ps1 package -Output ezbookkeeping.zip ``` 所有文件将被打包到 `ezbookkeeping.zip` 中。 你也可以构建 Docker 镜像。请确保已安装 [Docker](https://www.docker.com/),然后按照以下步骤操作: **Linux** ``` $ ./build.sh docker ``` ## 翻译 帮助 ezBookkeeping 走向全球用户。我们欢迎你帮助改进现有翻译或添加新翻译。如果你想贡献翻译,请参考[翻译指南](https://ezbookkeeping.mayswind.net/translating)。 目前可用的翻译: | Tag | Language | Progress | Contributors | | --- | --- | --- | --- | | de | Deutsch | [![Translation Progress](https://img.shields.io/endpoint?url=https%3A%2F%2Fraw.githubusercontent.com%2Fmayswind%2FezBookkeeping-i18n-badge%2Fmain%2Fbadges%2Fde.json)](https://github.com/mayswind/ezBookkeeping-i18n-badge/blob/main/untranslated/de.json) | [@chrgm](https://github.com/chrgm), [@1270o1](https://github.com/1270o1) | | en | English | [![Translation Progress](https://img.shields.io/endpoint?url=https%3A%2F%2Fraw.githubusercontent.com%2Fmayswind%2FezBookkeeping-i18n-badge%2Fmain%2Fbadges%2Fen.json)](https://github.com/mayswind/ezBookkeeping-i18n-badge/blob/main/untranslated/en.json) | / | | es | Español | [![Translation Progress](https://img.shields.io/endpoint?url=https%3A%2F%2Fraw.githubusercontent.com%2Fmayswind%2FezBookkeeping-i18n-badge%2Fmain%2Fbadges%2Fes.json)](https://github.com/mayswind/ezBookkeeping-i18n-badge/blob/main/untranslated/es.json) | [@Miguelonlonlon](https://github.com/Miguelonlonlon), [@abrugues](https://github.com/abrugues), [@AndresTeller](https://github.com/AndresTeller), [@diegofercri](https://github.com/diegofercri) | | fr | Français | [![Translation Progress](https://img.shields.io/endpoint?url=https%3A%2F%2Fraw.githubusercontent.com%2Fmayswind%2FezBookkeeping-i18n-badge%2Fmain%2Fbadges%2Ffr.json)](https://github.com/mayswind/ezBookkeeping-i18n-badge/blob/main/untranslated/fr.json) | [@brieucdlf](https://github.com/brieucdlf) | | it | Italiano | [![Translation Progress](https://img.shields.io/endpoint?url=https%3A%2F%2Fraw.githubusercontent.com%2Fmayswind%2FezBookkeeping-i18n-badge%2Fmain%2Fbadges%2Fit.json)](https://github.com/mayswind/ezBookkeeping-i18n-badge/blob/main/untranslated/it.json) | [@waron97](https://github.com/waron97) | | ja | 日本語 | [![Translation Progress](https://img.shields.io/endpoint?url=https%3A%2F%2Fraw.githubusercontent.com%2Fmayswind%2FezBookkeeping-i18n-badge%2Fmain%2Fbadges%2Fja.json)](https://github.com/mayswind/ezBookkeeping-i18n-badge/blob/main/untranslated/ja.json) | [@tkymmm](https://github.com/tkymmm) | | kn | ಕನ್ನಡ | [![Translation Progress](https://img.shields.io/endpoint?url=https%3A%2F%2Fraw.githubusercontent.com%2Fmayswind%2FezBookkeeping-i18n-badge%2Fmain%2Fbadges%2Fkn.json)](https://github.com/mayswind/ezBookkeeping-i18n-badge/blob/main/untranslated/kn.json) | [@Darshanbm05](https://github.com/Darshanbm05) | | ko | 한국어 | [![Translation Progress](https://img.shields.io/endpoint?url=https%3A%2F%2Fraw.githubusercontent.com%2Fmayswind%2FezBookkeeping-i18n-badge%2Fmain%2Fbadges%2Fko.json)](https://github.com/mayswind/ezBookkeeping-i18n-badge/blob/main/untranslated/ko.json) | [@overworks](https://github.com/overworks) | | nl | Nederlands | [![Translation Progress](https://img.shields.io/endpoint?url=https%3A%2F%2Fraw.githubusercontent.com%2Fmayswind%2FezBookkeeping-i18n-badge%2Fmain%2Fbadges%2Fnl.json)](https://github.com/mayswind/ezBookkeeping-i18n-badge/blob/main/untranslated/nl.json) | [@automagics](https://github.com/automagics) | | pt-BR | Português (Brasil) | [![Translation Progress](https://img.shields.io/endpoint?url=https%3A%2F%2Fraw.githubusercontent.com%2Fmayswind%2FezBookkeeping-i18n-badge%2Fmain%2Fbadges%2Fpt-BR.json)](https://github.com/mayswind/ezBookkeeping-i18n-badge/blob/main/untranslated/pt-BR.json) | [@thecodergus](https://github.com/thecodergus), [@balaios](https://github.com/balaios) | | ru | Русский | [![Translation Progress](https://img.shields.io/endpoint?url=https%3A%2F%2Fraw.githubusercontent.com%2Fmayswind%2FezBookkeeping-i18n-badge%2Fmain%2Fbadges%2Fru.json)](https://github.com/mayswind/ezBookkeeping-i18n-badge/blob/main/untranslated/ru.json) | [@artegoser](https://github.com/artegoser), [@dshemin](https://github.com/dshemin) | | sl | Slovenščina | [![Translation Progress](https://img.shields.io/endpoint?url=https%3A%2F%2Fraw.githubusercontent.com%2Fmayswind%2FezBookkeeping-i18n-badge%2Fmain%2Fbadges%2Fsl.json)](https://github.com/mayswind/ezBookkeeping-i18n-badge/blob/main/untranslated/sl.json) | [@thehijacker](https://github.com/thehijacker) | | ta | தமிழ் | [![Translation Progress](https://img.shields.io/endpoint?url=https%3A%2F%2Fraw.githubusercontent.com%2Fmayswind%2FezBookkeeping-i18n-badge%2Fmain%2Fbadges%2Fta.json)](https://github.com/mayswind/ezBookkeeping-i18n-badge/blob/main/untranslated/ta.json) | [@hhharsha36](https://github.com/hhharsha36) | | th | ไทย | [![Translation Progress](https://img.shields.io/endpoint?url=https%3A%2F%2Fraw.githubusercontent.com%2Fmayswind%2FezBookkeeping-i18n-badge%2Fmain%2Fbadges%2Fth.json)](https://github.com/mayswind/ezBookkeeping-i18n-badge/blob/main/untranslated/th.json) | [@natthavat28](https://github.com/natthavat28) | | tr | Türkçe | [![Translation Progress](https://img.shields.io/endpoint?url=https%3A%2F%2Fraw.githubusercontent.com%2Fmayswind%2FezBookkeeping-i18n-badge%2Fmain%2Fbadges%2Ftr.json)](https://github.com/mayswind/ezBookkeeping-i18n-badge/blob/main/untranslated/tr.json) | [@aydnykn](https://github.com/aydnykn) | | uk | Українська | [![Translation Progress](https://img.shields.io/endpoint?url=https%3A%2F%2Fraw.githubusercontent.com%2Fmayswind%2FezBookkeeping-i18n-badge%2Fmain%2Fbadges%2Fuk.json)](https://github.com/mayswind/ezBookkeeping-i18n-badge/blob/main/untranslated/uk.json) | [@nktlitvinenko](https://github.com/nktlitvinenko) | | vi | Tiếng Việt | [![Translation Progress](https://img.shields.io/endpoint?url=https%3A%2F%2Fraw.githubusercontent.com%2Fmayswind%2FezBookkeeping-i18n-badge%2Fmain%2Fbadges%2Fvi.json)](https://github.com/mayswind/ezBookkeeping-i18n-badge/blob/main/untranslated/vi.json) | [@f97](https://github.com/f97) | | zh-Hans | 中文 (简体) | [![Translation Progress](https://img.shields.io/endpoint?url=https%3A%2F%2Fraw.githubusercontent.com%2Fmayswind%2FezBookkeeping-i18n-badge%2Fmain%2Fbadges%2Fzh-Hans.json)](https://github.com/mayswind/ezBookkeeping-i18n-badge/blob/main/untranslated/zh-Hans.json) | / | | zh-Hant | 中文 (繁體) | [![Translation Progress](https://img.shields.io/endpoint?url=https%3A%2F%2Fraw.githubusercontent.com%2Fmayswind%2FezBookkeeping-i18n-badge%2Fmain%2Fbadges%2Fzh-Hant.json)](https://github.com/mayswind/ezBookkeeping-i18n-badge/blob/main/untranslated/zh-Hant.json) | / | ## 文档 1. [English](https://ezbookkeeping.mayswind.net) 2. [中文 (简体)](https://ezbookkeeping.mayswind.net/zh_Hans) ## 许可证 [MIT](https://github.com/mayswind/ezbookkeeping/blob/master/LICENSE)
标签:Docker, EVTX分析, Go语言, MITM代理, NAS工具, SQLite, 个人理财, 代码示例, 可视化图表, 安全防御评估, 家庭理财, 开源记账, 支出追踪, 数据分析, 日志审计, 测试用例, 程序破解, 自托管, 记账本, 记账软件, 请求拦截, 财务报表, 账单管理, 轻量级应用