Files
money/README.md
T
nmemmertandClaude Sonnet 5.5 6073279a1b
build-container / build (push) Successful in 33s
Add blank workbook template, example rules file, and Create blank workbook button
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-21 13:07:03 -04:00

2.1 KiB

money

Local tool that loads bank/card statements (Chase Visa, Ally, CVFCU PDFs; Capital One CSV) into Bills_Tracker.xlsx and shows a web dashboard. Everything runs locally; statements and the workbook are never committed or baked into the image.

Run on ZimaOS / CasaOS

Add the app: App Store -> Custom Install -> import compose.yaml (it follows the ZimaOS x-casaos format). Copy Bills_Tracker.xlsx into /DATA/AppData/money/data/ (the app's data folder), then open the app's Web UI (port 8765). The image is built by Gitea Actions (.gitea/workflows/build.yml) and pushed to git.necloud.us/nate/money. Add a repository secret REGISTRY_TOKEN (a Gitea access token with write:package), and on the ZimaOS box run docker login git.necloud.us once so it can pull the private image.

Run with plain Docker

mkdir -p data && cp /path/to/Bills_Tracker.xlsx data/
AppID=money PUID=1000 PGID=1000 TZ=America/New_York docker compose up -d   # then edit the bind path in compose.yaml or symlink

Starting fresh

template/Bills_Tracker.template.xlsx is a blank workbook (all tabs, formulas and charts; no data). The app's first-run screen has a "Create a blank workbook" button that copies it into the data folder. Then drop statements in; new payees land on the Lists tab as "Other / Unsorted" for you to categorize. loader_rules.example.json shows the private rules file format.

Personal rules (not in git)

Your name, card last-4 and similar live in loader_rules.json next to the workbook (git-ignored, not in the image):

{"own_names": ["JANE DOE"], "own_bank_hints": ["MY CREDIT UNION"], "csv_accounts": {"1234": "Capital One Card"}}

own_names lets the loader recognise transfers between your own accounts. Copy the file into the data folder (/DATA/AppData/money/data/ on ZimaOS).

Run without Docker

python3 -m venv .venv && .venv/bin/pip install -r requirements.txt && .venv/bin/python app.py

DATA_DIR (default: this folder) is where statements, the workbook and backups/ live.

The app has no login. Publish it on localhost only, or put it behind your own authentication.