Files
money/README.md
T
nmemmertandClaude Sonnet 5.5 3dba054dca
build-container / build (push) Successful in 31s
Statement loader web app with Docker image and Gitea Actions build
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-21 12:58:29 -04:00

1.7 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

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.