Find a file
2026-05-19 11:02:39 +12:00
AkahuClient more changes 2026-05-19 11:02:39 +12:00
EmoneyScraper more changes 2026-05-19 11:02:39 +12:00
IngestionService more changes 2026-05-19 11:02:39 +12:00
sql/database-init lots of vibe coded changes 2026-05-19 10:47:46 +12:00
.dockerignore more changes 2026-05-19 11:02:39 +12:00
.gitignore installed deps, got the initial page returning 2026-05-09 17:24:37 +12:00
config.py lots of vibe coded changes 2026-05-19 10:47:46 +12:00
Dockerfile more changes 2026-05-19 11:02:39 +12:00
emoney_cache.json lots of vibe coded changes 2026-05-19 10:47:46 +12:00
main.py more changes 2026-05-19 11:02:39 +12:00
README.md more changes 2026-05-19 11:02:39 +12:00
requirements.txt some progress 2026-05-18 21:10:09 +12:00

AkahuSync

This is my attempt to use NZ's open banking, along with some web scraping, to try and make sense of my financial position over time
My intention is to gather daily, weekly, and monthly snapshots of my networth, to the end that some visibilty will help steer me in the right direction
I also have some enhancements planned, such as writing transactional data to Firefly, where I will categorize and report on purchases

make sure to install playwright (pip install playwright), then run:

playwright install --with-deps

to get the correct drivers and dependencies for the host system

Runtime flags

These env vars let you split Akahu vs Emoney runs (useful for separate k8s cron jobs):

  • RUN_AKAHU (default true)
  • RUN_EMONEY (default true)
  • RUN_NORMALIZE (default true)

Example:

RUN_AKAHU=true RUN_EMONEY=false RUN_NORMALIZE=true python main.py

Container notes

  • The Docker image uses Playwright's Python base image.
  • The Emoney scraper runs headless by default.

Normalization gotchas

  • Akahu org is derived from the connection name (BNZ/Sharesies), not the source name.
  • Emoney transactions are hardcoded to vendor "Finance Now".
  • Akahu descriptions with "INTERNET XFR" are rewritten to include the counterparty info and meta fields.