- HTML 39.5%
- Python 36.3%
- Kotlin 14.3%
- JavaScript 6.2%
- CSS 3.6%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
|
||
| .forgejo/workflows | ||
| android | ||
| local_deployment | ||
| scripts | ||
| web | ||
| .env.example | ||
| .gitignore | ||
| CLAUDE.md | ||
| DEVELOPMENT.md | ||
| FABLE_AUDIT.md | ||
| README.md | ||
Mantra
Self-hosted personal finance tracker: a FastAPI web app (server-rendered UI plus a JSON API) and an Android companion that captures bank notifications, quick transactions, fill-ups and receipts.
Quick start
cd local_deployment
cp ../.env.example .env # fill in POSTGRES_PASSWORD, REDIS_PASSWORD, JWT_SECRET_KEY
docker compose up --build # app, celery worker, PostgreSQL, Redis; migrations run on start
Open http://localhost:8000 and register the first account (registration closes afterwards). More options (running without Docker, tests, migrations) are in DEVELOPMENT.md.
Build and deploy
Forgejo Actions does everything. A push to main that touches web/ runs the checks (lint,
migrations, tests), builds the Docker image, pushes it to the git.exithub.net registry and deploys
it to the home Docker host. A push that touches android/ builds a signed APK and publishes it as a
Forgejo release, which Obtainium installs on the phone.
More
CLAUDE.md has the architecture, verified commands, CI details and gotchas.