Personal finance tracker — FastAPI/Svelte web app with a native Android client
  • HTML 39.5%
  • Python 36.3%
  • Kotlin 14.3%
  • JavaScript 6.2%
  • CSS 3.6%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Ivan Pavlina 5f718d19f5
All checks were successful
web / check (push) Successful in 2m31s
web / image (push) Successful in 6s
web / deploy (push) Successful in 10s
web / notify (push) Successful in 1s
Keep account picker icons in the account colour inside a row's edit form
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 11:55:47 +01:00
.forgejo/workflows ci: remove a leftover CI database container before starting a new one 2026-10-22 09:00:21 +02:00
android Replace Gotify with notifications the Android app polls 2026-10-26 09:01:24 +01:00
local_deployment Use named volumes in the local stack and seed vehicles, services and tire sets 2026-10-16 15:57:16 +00:00
scripts Use the new bead-ring mark everywhere and align the Android colours 2026-10-21 16:48:44 +02:00
web Keep account picker icons in the account colour inside a row's edit form 2026-11-01 11:55:47 +01:00
.env.example Replace Gotify with notifications the Android app polls 2026-10-26 09:01:24 +01:00
.gitignore Align the workflows with the newer repos and drop the manual APK build 2026-10-12 21:02:39 +02:00
CLAUDE.md Replace Gotify with notifications the Android app polls 2026-10-26 09:01:24 +01:00
DEVELOPMENT.md Replace Gotify with notifications the Android app polls 2026-10-26 09:01:24 +01:00
FABLE_AUDIT.md Pin docksys' SSH host key in the deploy workflow 2026-10-12 10:43:55 +02:00
README.md Add README and CLAUDE.md, refresh DEVELOPMENT.md, untrack android/local.properties 2026-10-16 15:49:34 +00:00

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.