186 lines
12 KiB
Markdown
186 lines
12 KiB
Markdown
# ezBookkeeping
|
|
|
|
> ## Personal fork notice
|
|
>
|
|
> This repository is a personal fork of [mayswind/ezbookkeeping](https://github.com/mayswind/ezbookkeeping) (MIT) with the following custom additions on top of upstream releases:
|
|
>
|
|
> - **信用卡账户**:信用额度字段,账户列表显示可用额度
|
|
> - **账户筛选交易**:单账户筛选时顶部显示账户信息卡(图标 / 名称 / 余额 / 可用额度)
|
|
> - **账户编辑**:直接修改余额字段,自动生成「余额调整」交易
|
|
> - **记账页**:选择账户后实时显示余额或信用卡可用额度
|
|
> - **小键盘**:自定义布局(计算器风格 4 列) + `touch-action` 修复点击延迟
|
|
> - **移动端动画**:通用过渡 300ms → 150ms
|
|
> - **交易详情**:移动端三点菜单加编辑/删除入口
|
|
> - **分类选择**:移动端可设默认全部展开(云同步白名单)
|
|
> - **交易时间**:移动端点击标题默认日期选择器
|
|
>
|
|
> Full list with implementation details: [`FORK.md`](FORK.md)
|
|
> Branch model / upstream sync / CI troubleshooting: [`CLAUDE.md`](CLAUDE.md)
|
|
>
|
|
> All modifications are released under the same MIT License as upstream — see [`LICENSE`](LICENSE).
|
|
>
|
|
> ---
|
|
>
|
|
> Upstream README content follows below.
|
|
|
|
---
|
|
|
|
[](https://github.com/mayswind/ezbookkeeping/blob/master/LICENSE)
|
|
[](https://goreportcard.com/report/github.com/mayswind/ezbookkeeping)
|
|
[](https://github.com/mayswind/ezbookkeeping/releases)
|
|
[](https://github.com/mayswind/ezbookkeeping/actions)
|
|
[](https://hub.docker.com/r/mayswind/ezbookkeeping)
|
|
[](https://hub.docker.com/r/mayswind/ezbookkeeping)
|
|
[](https://deepwiki.com/mayswind/ezbookkeeping)
|
|
|
|
[](https://hellogithub.com/en/repository/mayswind/ezbookkeeping)
|
|
[](https://trendshift.io/repositories/12917)
|
|
|
|
## Introduction
|
|
ezBookkeeping is a lightweight, self-hosted personal finance app with a user-friendly interface and powerful bookkeeping features. It helps you record daily transactions, import data from various sources, and quickly search and filter your bills. You can analyze historical data using built-in charts or perform custom queries with your own chart dimensions to better understand spending patterns and financial trends. ezBookkeeping is easy to deploy, and you can start it with just one single Docker command. Designed to be resource-efficient, it runs smoothly on devices such as Raspberry Pi, NAS, and MicroServers.
|
|
|
|
ezBookkeeping offers tailored interfaces for both mobile and desktop devices. With support for PWA (Progressive Web Apps), you can even [add it to your mobile home screen](https://raw.githubusercontent.com/wiki/mayswind/ezbookkeeping/img/mobile/add_to_home_screen.gif) and use it like a native app.
|
|
|
|
Live Demo: [https://ezbookkeeping-demo.mayswind.net](https://ezbookkeeping-demo.mayswind.net)
|
|
|
|
## Features
|
|
- **Open Source & Self-Hosted**
|
|
- Built for privacy and control
|
|
- **Lightweight & Fast**
|
|
- Minimal resource usage, runs smoothly even on low-resource devices
|
|
- **Easy Installation**
|
|
- Docker support
|
|
- Supports SQLite, MySQL, PostgreSQL
|
|
- Cross-platform (Windows, macOS, Linux)
|
|
- Works on x86, amd64, ARM architectures
|
|
- **User-Friendly Interface**
|
|
- UI optimized for both mobile and desktop
|
|
- PWA support for native-like mobile experience
|
|
- Dark mode
|
|
- **AI-Powered Features**
|
|
- Receipt image recognition
|
|
- MCP (Model Context Protocol) support for AI integration
|
|
- Agent Skill and API command-line script tools support for AI integration
|
|
- **Powerful Bookkeeping**
|
|
- Two-level accounts and categories
|
|
- Image attachments for transactions
|
|
- Location tracking with maps
|
|
- Scheduled transactions
|
|
- Advanced filtering, search, visualization and analysis
|
|
- **Localization & Internationalization**
|
|
- Multi-language and multi-currency support
|
|
- Multiple exchange rate sources with automatic updates
|
|
- Multi-timezone support
|
|
- Custom formats for dates, numbers and currencies
|
|
- **Security**
|
|
- Two-factor authentication (2FA)
|
|
- OIDC external authentication
|
|
- Login rate limiting
|
|
- Application lock (PIN code / WebAuthn)
|
|
- **Data Import & Export**
|
|
- Supports CSV, OFX, QFX, QIF, IIF, Camt.052, Camt.053, MT940, GnuCash, Firefly III, Beancount and more
|
|
|
|
For a full list of features, visit the [Full Feature List](https://ezbookkeeping.mayswind.net/comparison/).
|
|
|
|
## Screenshots
|
|
### Desktop Version
|
|
[](https://raw.githubusercontent.com/wiki/mayswind/ezbookkeeping/img/desktop/en.png)
|
|
|
|
### Mobile Version
|
|
[](https://raw.githubusercontent.com/wiki/mayswind/ezbookkeeping/img/mobile/en.png)
|
|
|
|
## Installation
|
|
### Run with Docker
|
|
Visit [Docker Hub](https://hub.docker.com/r/mayswind/ezbookkeeping) to see all images and tags.
|
|
|
|
**Latest Release:**
|
|
|
|
$ docker run -p8080:8080 mayswind/ezbookkeeping
|
|
|
|
**Latest Daily Build:**
|
|
|
|
$ docker run -p8080:8080 mayswind/ezbookkeeping:latest-snapshot
|
|
|
|
### Install from Binary
|
|
Download the latest release: [https://github.com/mayswind/ezbookkeeping/releases](https://github.com/mayswind/ezbookkeeping/releases)
|
|
|
|
**Linux / macOS**
|
|
|
|
$ ./ezbookkeeping server run
|
|
|
|
**Windows**
|
|
|
|
> .\ezbookkeeping.exe server run
|
|
|
|
By default, ezBookkeeping listens on port 8080. You can then visit `http://{YOUR_HOST_ADDRESS}:8080/` .
|
|
|
|
### Build from Source
|
|
Make sure you have [Golang](https://golang.org/), [GCC](https://gcc.gnu.org/), [Node.js](https://nodejs.org/) and [NPM](https://www.npmjs.com/) installed. Then download the source code, and follow these steps:
|
|
|
|
**Linux / macOS**
|
|
|
|
$ ./build.sh package -o ezbookkeeping.tar.gz
|
|
|
|
All the files will be packaged in `ezbookkeeping.tar.gz`.
|
|
|
|
**Windows**
|
|
|
|
> .\build.bat package -o ezbookkeeping.zip
|
|
|
|
or
|
|
|
|
PS > .\build.ps1 package -Output ezbookkeeping.zip
|
|
|
|
All the files will be packaged in `ezbookkeeping.zip`.
|
|
|
|
You can also build a Docker image. Make sure you have [Docker](https://www.docker.com/) installed, then follow these steps:
|
|
|
|
**Linux**
|
|
|
|
$ ./build.sh docker
|
|
|
|
## Contributing
|
|
We welcome contributions of all kinds.
|
|
|
|
If you find a bug, please [submit an issue](https://github.com/mayswind/ezbookkeeping/issues) on GitHub.
|
|
|
|
If you would like to contribute code, you can fork the repository and open a pull request.
|
|
|
|
Improvements to documentation, feature suggestions, and other forms of feedback are also appreciated.
|
|
|
|
You can view existing contributors on the [Contributor Graph](https://github.com/mayswind/ezbookkeeping/graphs/contributors).
|
|
|
|
## Translating
|
|
Help make ezBookkeeping accessible to users around the world. We welcome help to improve existing translations or add new ones. If you would like to contribute a translation, please refer to the [translation guide](https://ezbookkeeping.mayswind.net/translating).
|
|
|
|
Currently available translations:
|
|
|
|
| Tag | Language | Progress | Contributors |
|
|
| --- | --- | --- | --- |
|
|
| de | Deutsch |  | [@chrgm](https://github.com/chrgm), [@1270o1](https://github.com/1270o1) |
|
|
| en | English |  | / |
|
|
| es | Español |  | [@Miguelonlonlon](https://github.com/Miguelonlonlon), [@abrugues](https://github.com/abrugues), [@AndresTeller](https://github.com/AndresTeller), [@diegofercri](https://github.com/diegofercri) |
|
|
| fr | Français |  | [@brieucdlf](https://github.com/brieucdlf) |
|
|
| it | Italiano |  | [@waron97](https://github.com/waron97) |
|
|
| ja | 日本語 |  | [@tkymmm](https://github.com/tkymmm) |
|
|
| kn | ಕನ್ನಡ |  | [@Darshanbm05](https://github.com/Darshanbm05) |
|
|
| ko | 한국어 |  | [@overworks](https://github.com/overworks) |
|
|
| nl | Nederlands |  | [@automagics](https://github.com/automagics) |
|
|
| pt-BR | Português (Brasil) |  | [@thecodergus](https://github.com/thecodergus), [@balaios](https://github.com/balaios) |
|
|
| ru | Русский |  | [@artegoser](https://github.com/artegoser), [@dshemin](https://github.com/dshemin) |
|
|
| sl | Slovenščina |  | [@thehijacker](https://github.com/thehijacker) |
|
|
| ta | தமிழ் |  | [@hhharsha36](https://github.com/hhharsha36) |
|
|
| th | ไทย |  | [@natthavat28](https://github.com/natthavat28) |
|
|
| tr | Türkçe |  | [@aydnykn](https://github.com/aydnykn) |
|
|
| uk | Українська |  | [@nktlitvinenko](https://github.com/nktlitvinenko) |
|
|
| vi | Tiếng Việt |  | [@f97](https://github.com/f97) |
|
|
| zh-Hans | 中文 (简体) |  | / |
|
|
| zh-Hant | 中文 (繁體) |  | / |
|
|
|
|
## Documentation
|
|
1. [English](https://ezbookkeeping.mayswind.net)
|
|
1. [中文 (简体)](https://ezbookkeeping.mayswind.net/zh_Hans)
|
|
|
|
## License
|
|
[MIT](https://github.com/mayswind/ezbookkeeping/blob/master/LICENSE)
|