All apps · 0 apps
ezBookkeeping
Docker app from Yusseiin's Repository
Overview
Readme
View on GitHubezBookkeeping
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 and use it like a native app.
Live Demo: 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.
Screenshots
Desktop Version
Mobile Version
Installation
Run with Docker
Visit Docker Hub 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
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, GCC, Node.js and NPM 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 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 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.
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.
Currently available translations:
| Tag | Language | Progress | Contributors |
|---|---|---|---|
| de | Deutsch | @chrgm, @1270o1, @martinschilliger | |
| en | English | / | |
| es | Español | @Miguelonlonlon, @abrugues, @AndresTeller, @diegofercri | |
| fr | Français | @brieucdlf | |
| it | Italiano | @waron97 | |
| ja | 日本語 | @tkymmm, @Mink16 | |
| kn | ಕನ್ನಡ | @Darshanbm05 | |
| ko | 한국어 | @overworks | |
| nl | Nederlands | @automagics | |
| pt-BR | Português (Brasil) | @thecodergus, @balaios | |
| ro | Română | @gg64nou | |
| ru | Русский | @artegoser, @dshemin | |
| sl | Slovenščina | @thehijacker | |
| ta | தமிழ் | @hhharsha36 | |
| th | ไทย | @natthavat28 | |
| tr | Türkçe | @aydnykn, @snizamaddinov | |
| uk | Українська | @nktlitvinenko, @grid-pilot, @infinit1ve | |
| vi | Tiếng Việt | @f97 | |
| zh-Hans | 中文 (简体) | / | |
| zh-Hant | 中文 (繁體) | / |
Documentation
License
Install ezBookkeeping on Unraid in a few clicks.
Find ezBookkeeping in Community Apps on your Unraid server, review the template, and click Install. Unraid handles the Docker app or plugin setup from the published template.
Categories
Download Statistics
Related apps
Explore more like this
Explore allDetails
mayswind/ezbookkeeping:latestRuntime arguments
- Web UI
http://[IP]:[PORT:8080]- Network
bridge- Shell
sh- Privileged
- false
Template configuration
HTTP port for the ezBookkeeping web interface.
- Target
- 8080
- Default
- 8080
- Value
- 8080
Persistent data directory. Holds the SQLite database when using the default database backend.
- Target
- /ezbookkeeping/data
- Default
- /mnt/user/appdata/ezbookkeeping/data
- Value
- /mnt/user/appdata/ezbookkeeping/data
Object storage for user uploads (avatars, transaction pictures, etc.).
- Target
- /ezbookkeeping/storage
- Default
- /mnt/user/appdata/ezbookkeeping/storage
- Value
- /mnt/user/appdata/ezbookkeeping/storage
Application log directory.
- Target
- /ezbookkeeping/log
- Default
- /mnt/user/appdata/ezbookkeeping/log
- Value
- /mnt/user/appdata/ezbookkeeping/log
Optional. Mount a folder containing a custom ezbookkeeping.ini to override the built-in config. Leave blank to use defaults plus EBK_* environment variables.
- Target
- /ezbookkeeping/conf
Random string used to encrypt sensitive user data. CHANGE this to a long random string before first start (e.g. openssl rand -hex 32). Changing it later will invalidate existing tokens/2FA secrets.
- Target
- EBK_SECURITY_SECRET_KEY
- Value
- change-me-to-a-long-random-string
The domain or IP used to reach the WebUI (e.g. ezbookkeeping.example.com or 192.168.1.50). Used to build correct URLs in emails and the PWA.
- Target
- EBK_SERVER_DOMAIN
Allow new users to register accounts from the login page. Set to false after creating your own account to prevent strangers from signing up.
- Target
- EBK_USER_ENABLE_REGISTER
- Default
- true
- Value
- true
Database backend: sqlite3 (default, no extra setup), mysql, or postgres. When set to mysql/postgres, also fill in the Database Host/Name/User/Password fields below.
- Target
- EBK_DATABASE_TYPE
- Default
- sqlite3
- Value
- sqlite3
Only used when Database Type is mysql or postgres. host:port of the database server — e.g. mariadb:3306 if you run MariaDB as a separate Unraid container on the bridge network.
- Target
- EBK_DATABASE_HOST
Only used when Database Type is mysql or postgres. Name of the database to use (must already exist on the DB server).
- Target
- EBK_DATABASE_NAME
Only used when Database Type is mysql or postgres. Username with full privileges on the database above.
- Target
- EBK_DATABASE_USER
Only used when Database Type is mysql or postgres. Password for the database user.
- Target
- EBK_DATABASE_PASSWD
Optional. Log output mode: console, file, or console,file. Leave blank for the image default.
- Target
- EBK_LOG_MODE

