No description
Find a file
2026-05-26 16:28:33 +10:00
data update dashboard, fix commodities.bean, fix redirects, fix git functionality 2026-05-26 16:28:33 +10:00
docs fixes 2026-05-01 16:54:14 +10:00
images lazy beancount 2026-03-18 09:01:56 +10:00
notebooks add jupyter 2026-03-19 12:08:14 +10:00
queries rename things, fix things, delete things 2026-03-19 23:44:21 +10:00
scripts fix problems, add batch script 2026-03-19 16:39:21 +10:00
src update dashboard, fix commodities.bean, fix redirects, fix git functionality 2026-05-26 16:28:33 +10:00
.gitignore update git ignore 2026-04-28 14:42:59 +10:00
docker-compose.yml lazy beancount 2026-03-18 09:01:56 +10:00
Dockerfile fix problems, add batch script 2026-03-19 16:39:21 +10:00
lazy_beancount.bat run in background 2026-03-20 12:06:29 +10:00
lazy_beancount.sh update dashboard, fix commodities.bean, fix redirects, fix git functionality 2026-05-26 16:28:33 +10:00
LICENSE lazy beancount 2026-03-18 09:01:56 +10:00
main.py begin to do the bean count 2025-10-07 17:02:03 +10:00
Makefile lazy beancount 2026-03-18 09:01:56 +10:00
pylock.toml update from lazybeancount 2026-03-20 11:36:32 +10:00
README.md improvements 2026-03-24 16:41:23 +10:00
requirements-extra.txt update from lazybeancount 2026-03-20 11:36:32 +10:00
requirements.txt update from upstream, add glide stuff, fix git 2026-04-28 14:36:16 +10:00
start.sh merge changes 2025-11-05 08:46:11 +10:00

LB logo

Lazy Beancount

Beancount accounting in Docker, guide and batteries included

License: GPL v2 Docker Image Version Docker Pulls

Lazy Beancount is Beancount accounting system packaged in Docker with batteries included:

with the goal to enable gradual and incremental migration of personal finances into Beancount.

lazy-beancount

Full guide is located at https://lazy-beancount.xyz/. The approach follows these principles:

  • Some of the values should be tracked precisely (e.g. net worth)
  • Other things are an approximation (e.g. in expenses breakdown, unclassified or some misclassified entires are ok)
  • Data entry should be automated or easy
  • But it should be possible to track things to any level of precision if you choose to

Screenshots

Dashboard

Custom fava-dashboards setup (data/dashboards.tsx) with the following tabs:

Tab What it shows
Overview Net worth trend, monthly income vs expenses, top expense categories
Assets Balance history across all accounts, asset allocation breakdown
Accounts Per-account balances and recent transaction history
Super Super balance history (UniSuper + PSSap), FY SG contributions, voluntary contributions, concessional cap usage, projection to retirement with adjustable growth/salary/inflation/extra-contrib variables
Income and Expenses Monthly income and expense totals by category, savings rate
Expenses Detailed Drill-down into expense categories by month
Subscriptions Recurring subscription spend tracking
Sankey Cash flow diagram from income through expenses and savings
Projection FIRE progress: accessible assets vs target (25× annual expenses), path-to-FIRE projection chart
Tax Australian tax summary for current FY: gross income, estimated tax, Medicare levy, MLS (avoided with PHI), PAYG withheld, refund/liability estimate, tax-deductible donations, work expenses, union fees
Savings Savings rate over time, breakdown of where savings go

⚙️ Setup

Make sure you have Docker installed first. Then:

git clone https://github.com/Evernight/lazy-beancount

cd lazy-beancount/example_data
env UID=$(id -u) GID=$(id -g) docker compose up

This will pull repository with the example and config templates, and also pull and run the latest version of the package from the Docker Hub. The service will start at http://localhost:8777/ by default.

Fava is also available on port 5003, importer interface is available on port 8101 (ports are overridable via config in docker-compose.yml).

On Mac you can also remove user parameter from docker-compose.yaml and just use docker compose up

Update image to the latest version from time to time using docker compose pull

🐳 Docker

You can pull image from the public repository:

docker pull vandereer/lazy-beancount:latest

or build it yourself:

git clone https://github.com/Evernight/lazy-beancount
cd lazy-beancount

docker build . -t vandereer/lazy-beancount:latest

To start, run:

./lazy_beancount.sh example_data

Use ./lazy_beancount.sh data when you want to start adding your own data under the data directory.

Commands are available in the container as:

docker exec -it lazybean bean-price example_data/main.bean -i --date=2024-01-05

You can also run container using Podman, adding "podman" as an additional argument to the lazy_beancount.sh script (e.g. lazy_beancount.sh data podman).

Extra dependencies

Additional vandereer/lazy-beancount:extra image exists that will contain more optional dependencies defined in requirements-extra.txt

🐍 Local development: conda/venv

If you want to be able to upgrade individual packages and experiment with other (and your own) plugins or additional importers, use venv or conda to make sure you run correct dependencies. Conda is used in the example as it's a little bit easier to manage Python versions with it compared to venv.

First, clone this repository into your desired location

git clone https://github.com/Evernight/lazy-beancount
cd lazy-beancount

Install conda

brew install miniconda

Then create and activate the environment

conda create -n lazy-beancount-env python=3.12.11
conda activate lazy-beancount-env

Install required packages in the environment

pip3 install -r requirements.txt

Run Fava on your ledger from the repository folder

fava main.bean

Go to http://127.0.0.1:5000 and explore Fava.

Note

I'd not recommend exposing the ports, various system and data through a public server unless you really know what you're doing. This setup has not been developed and tested for security and authentication when run as a public service. If you're interested in self-hosting Lazy Beancount, vote for the feature or feel free to contribute ideas and code.

🙏 Acknowledgements

This is mostly an integration project and would not have been possible without all of the great code from authors and contributors of all the repositories mentioned above, the Beancount and plain text accounting community. Please support, star and otherwise contribute to respective projects.

🔗 Similar projects

See also:

💬 Feedback and contributions