Noureddine RAMDI / ezBookkeeping: a lightweight, AI-augmented self-hosted personal finance tool

Created Tue, 05 May 2026 22:24:55 +0000 Modified Sat, 23 May 2026 20:41:27 +0000

mayswind/ezbookkeeping

ezBookkeeping tackles a common problem for personal finance enthusiasts who want full control over their data without relying on cloud services. It’s a self-hosted finance application written in Go, designed to run on modest hardware like Raspberry Pi or NAS devices. What sets it apart is the integration of AI features directly into the app’s core, including receipt image recognition and support for the Model Context Protocol (MCP) to interact with AI agents. This approach marries practical bookkeeping with emerging AI capabilities in a way that’s rare for self-hosted finance tools.

What ezBookkeeping is and how it’s built

ezBookkeeping is a personal finance application that allows individuals to manage their financial data locally. It supports multiple database backends—SQLite, MySQL, and PostgreSQL—offering flexibility depending on the user’s setup and scale requirements. The backend is implemented in Go, which provides a good balance between performance and resource efficiency, crucial for running on ARM-based devices like Raspberry Pi or on NAS hardware.

The project supports deployment on x86, amd64, and ARM architectures, reflecting its intention to be accessible across a range of hardware. Deployment is streamlined via Docker images, enabling single-command launches suitable for users looking for a low-friction setup.

On the frontend side, ezBookkeeping offers Progressive Web App (PWA) support, which means it can be used seamlessly on both desktop and mobile browsers with app-like experiences. Authentication features include two-factor authentication and OpenID Connect (OIDC) integration, enhancing security for self-hosted environments.

The app also supports importing financial data from over a dozen formats such as OFX, QIF, GnuCash, and Firefly III, making migration and data integration less painful for users moving from other systems.

Technical strengths and architectural tradeoffs

The standout technical strength of ezBookkeeping is its AI integration. It includes receipt image recognition powered by AI, which automates data entry from scanned receipts—a common pain point in bookkeeping. This reduces manual input errors and saves time.

More interestingly, ezBookkeeping supports the Model Context Protocol (MCP), a protocol designed for interoperability among AI agents. This positions the app as not just a passive tool but an interactive platform capable of leveraging AI-driven insights and automation. The inclusion of Agent Skill/API CLI tools further extends these AI capabilities, allowing advanced users to script and automate financial workflows with AI assistance.

Under the hood, the use of Go is a pragmatic choice. Go’s concurrency model and static typing help maintain performance and reliability, especially on constrained hardware. The Dockerized deployment ensures a consistent runtime environment, mitigating setup complexity across platforms.

On the database side, supporting SQLite caters to lightweight, single-user setups, while MySQL and PostgreSQL support enable scaling and multi-user scenarios. This multi-backend approach comes with a tradeoff: extra complexity in maintaining compatibility and ensuring consistent behavior across different database engines.

The PWA implementation means users don’t need to install native apps to get a mobile-friendly interface, but it might not match the performance or native integration of dedicated mobile apps. However, for a self-hosted tool, this is a reasonable compromise.

Security-wise, the app includes two-factor authentication and OIDC, which is notable for a self-hosted project. These features help protect sensitive financial data, which is essential but often overlooked in open-source personal finance tools.

The project’s focus on resource-constrained environments means the code and dependencies must be lightweight. However, integrating AI features can increase resource demands, especially for image recognition tasks. Users running ezBookkeeping on very low-powered devices should monitor performance and may need to balance AI feature usage accordingly.

Quick start with ezBookkeeping

Getting started with ezBookkeeping is straightforward, especially if you use Docker. The project provides official Docker images on Docker Hub, enabling quick deployment with a single command:

# Run the latest stable release
$ docker run -p8080:8080 mayswind/ezbookkeeping

# Run the latest daily build snapshot
$ docker run -p8080:8080 mayswind/ezbookkeeping:latest-snapshot

Alternatively, you can download precompiled binaries from the GitHub releases page (https://github.com/mayswind/ezbookkeeping/releases) and run the server directly:

# Linux / macOS
$ ./ezbookkeeping server run

# Windows
> .\ezbookkeeping.exe server run

By default, the server listens on port 8080, so you can access the web interface by navigating to http://{YOUR_HOST_ADDRESS}:8080/ in your browser.

For users interested in building from source, the repository includes scripts to package the application or build a Docker image. This requires Go, GCC, Node.js, and npm installed on the build machine:

# Linux / macOS
$ ./build.sh package -o ezbookkeeping.tar.gz

# Windows
> .\build.bat package -o ezbookkeeping.zip
# or
> .\build.ps1 package -Output ezbookkeeping.zip

You can also build the Docker image yourself:

# Linux
$ ./build.sh docker

This flexibility in installation methods makes ezBookkeeping accessible to a variety of users, from those who want a quick Docker deploy to those who want to customize or contribute to the codebase.

Verdict: who should consider ezBookkeeping?

ezBookkeeping is a solid choice for technically inclined users who want a self-hosted personal finance solution that respects privacy and offers AI-powered conveniences. Its support for ARM architectures and Docker makes it particularly suitable for homelab enthusiasts using Raspberry Pi or NAS devices.

The AI integration, especially receipt OCR and MCP protocol support, sets it apart from most personal finance tools in this space, which typically lack such features. However, these AI capabilities might require more resources and technical know-how to fully leverage.

The app’s multi-database support and security features like two-factor authentication and OIDC make it viable for users who want a more secure and scalable setup.

Limitations include the tradeoffs inherent in PWA versus native mobile apps and potential performance constraints on very low-end hardware when using AI features. The Docker-based deployment simplifies setup but may not suit those who prefer traditional package managers or cloud-hosted SaaS.

Overall, ezBookkeeping is worth exploring if you want a privacy-first, self-hosted finance app that pushes the envelope by incorporating AI as a first-class feature. It’s not a plug-and-play consumer app but offers a compelling blend of practicality and forward-looking AI integration for personal finance management.


→ GitHub Repo: mayswind/ezbookkeeping ⭐ 4,735 · Go