MCPSERV.CLUB
ezBookkeeping

ezBookkeeping

Self-Hosted

Personal finance made simple and self‑hosted

Active(100)
2.6kstars
0views
Updated 18 hours ago
ezBookkeeping screenshot 1
1 / 2

Overview

Discover what makes ezBookkeeping powerful

`ezBookkeeping` is a lightweight, self‑hosted personal finance platform written in Go. It exposes a RESTful API and serves a single‑page application built with Vue.js, allowing developers to interact programmatically while still providing a polished UI for end users. The core engine is a pure Go backend that runs on any x86_64, ARMv7, or ARM64 machine, making it ideal for embedded devices such as Raspberry Pi or enterprise servers. The application stores data in a relational database; it supports SQLite for single‑node setups and MySQL/PostgreSQL for multi‑user or clustered deployments, giving developers flexibility in choosing persistence layers.

Backend

Frontend

Containerization

Deployment

Overview

ezBookkeeping is a lightweight, self‑hosted personal finance platform written in Go. It exposes a RESTful API and serves a single‑page application built with Vue.js, allowing developers to interact programmatically while still providing a polished UI for end users. The core engine is a pure Go backend that runs on any x86_64, ARMv7, or ARM64 machine, making it ideal for embedded devices such as Raspberry Pi or enterprise servers. The application stores data in a relational database; it supports SQLite for single‑node setups and MySQL/PostgreSQL for multi‑user or clustered deployments, giving developers flexibility in choosing persistence layers.

Architecture

  • Backend – Go 1.22+, using the standard net/http package with Gorilla Mux for routing, GORM as an ORM abstraction over SQLite/MySQL/PostgreSQL. The business logic is split into domain services (accounts, transactions, reporting) and adapters for external APIs.
  • Frontend – Vue 3 with Vite, TypeScript, and Pinia for state management. The SPA is compiled into a static bundle that the Go server serves from /static. PWA manifests and Service Workers enable offline usage on mobile devices.
  • Containerization – A multi‑stage Dockerfile builds the Go binary and Vite bundle, then packages them into a minimal Alpine image. The docker-compose.yml example demonstrates volume mounting for database persistence and optional TLS termination.
  • Deployment – The application can run as a single binary, a Docker container, or be built from source. It supports environment variables for configuration (DB DSN, port, JWT secrets) and can be orchestrated with Kubernetes via Helm charts or plain manifests.

Core Capabilities

  • REST API – CRUD endpoints for users, accounts, categories, transactions, recurring rules, and import/export jobs. The API follows HATEOAS principles, providing hypermedia links for navigation.
  • Webhooks & MCP – The server emits webhook events on transaction creation/update and can act as an MCP client for AI services (e.g., receipt OCR). Developers can subscribe to events or integrate custom ML models.
  • Data Import/Export – Built‑in parsers for CSV, OFX/QFX, QIF/IIF, Camt.053, MT940, GnuCash XML, Firefly III JSON, and Beancount text. Import jobs are queued via Go channels, allowing asynchronous processing.
  • Reporting & Analytics – Exposes aggregated data (spending by category, cash flow charts) via GraphQL‑like query endpoints. Developers can embed these metrics in dashboards or third‑party BI tools.

Deployment & Infrastructure

The application is engineered for low resource consumption: a single instance on a Raspberry Pi can handle dozens of concurrent users with < 200 MB RAM. For higher workloads, developers can spin up multiple replicas behind a load balancer; the stateless API and external database make horizontal scaling straightforward. Docker images are kept under 100 MB, and the Alpine runtime reduces attack surface. Kubernetes users can deploy using a StatefulSet for MySQL/PostgreSQL or a headless Service for SQLite file sharing across pods.

Integration & Extensibility

  • Plugin System – Although currently minimal, the codebase exposes hooks for authentication backends (OAuth2, LDAP) and payment processors. Future releases plan a plugin API that allows dynamic loading of Go modules.
  • Custom Scripts – The import engine accepts user‑supplied scripts in Go templates, enabling transformation pipelines before persisting data.
  • Webhooks – Clients can register URLs to receive JSON payloads on key events, facilitating integration with Slack, email, or custom monitoring dashboards.

Developer Experience

Configuration is declarative: a single config.yaml file or environment variables dictate database connections, JWT secrets, and feature flags. The Go codebase follows idiomatic patterns with clear module boundaries, making it approachable for contributors. Documentation is hosted on GitHub Pages and includes API reference, deployment guides, and a developer‑contribution roadmap. The community is active on GitHub Discussions and the project’s Discord channel, where feature requests and bug reports are triaged promptly.

Use Cases

  • Personal Finance Manager – A solo developer can deploy on a NAS to manage household budgets, leveraging the PWA for mobile access.
  • Small Business Accounting – With PostgreSQL and multi‑user support, a small firm can use ezBookkeeping as an internal bookkeeping tool without paying for SaaS subscriptions.
  • Embedded Finance – The lightweight binary is ideal for IoT gateways that need to log transaction data locally before syncing with a central server.
  • Educational Projects – The clear separation of concerns makes it an excellent teaching resource for Go, REST APIs, and Vue.js development.

Advantages

  • Performance & Size – A single binary under 50 MB with < 200 MB RAM usage outperforms many commercial bookkeeping SaaS offerings.
  • Open Source & Privacy – MIT license and local deployment give full control over data, satisfying GDPR or HIPAA‑like requirements.
  • Extensibility – Built‑in AI hooks and webhook support let developers add custom analytics or integrate with existing ecosystems.
  • Cross‑Platform & Architecture Agnostic – Native binaries for Windows, macOS, Linux, and ARM make it usable on a wide range of hardware.
  • Community & Support – Active issue tracking, frequent releases, and clear contribution guidelines reduce friction for new developers.

ezBookkeeping blends

Open SourceReady to get started?

Join the community and start self-hosting ezBookkeeping today

Weekly Views

Loading...
Support Us

Featured Project

$30/month

Get maximum visibility with featured placement and special badges

Repository Health

Loading health data...

Information

Category
other
License
MIT
Stars
2.6k
Technical Specs
Pricing
Open Source
Database
Multiple
Docker
Official
Supported OS
LinuxWindowsmacOSDocker
Author
mayswind
mayswind
Last Updated
18 hours ago