The whole record of your money, on a server you own.
Kosh keeps your accounts, transactions, budgets, bills, and reports in a database you run yourself. No cloud account holds your ledger, and nothing here sells or studies what you spend.
Good evening, Aditya
You're on steady ground this month.
Net worth
₹18,42,600
+₹42,300
Safe to spend
₹31,400
through 31 Jul
This month
+₹58,200
income − spend
Net worth · 12 months
+14.6%12 to review
imported from HDFC
Electricity due
BESCOM · in 3 days
Eating out over
₹6,900 of ₹6,000
Most finance apps keep your ledger on their servers. Kosh keeps it on yours — that single difference shapes everything else.
Self-hosted
One Docker command on your own machine. The app and its PostgreSQL database run where you put them, and stay there.
Private by default
No analytics on your spending, no third-party trackers, no data sold on. What you record is read by you and the software you run.
Yours to keep
Plain PostgreSQL underneath, with backups and CSV export you trigger. Leave whenever you like and take everything with you.
The product
A place for every part of your money — composed, not crammed.
Everything that moved, in one honest ledger.
Every account posts into the same tabular record — mono figures, categories, tags, and the account each line came from. Search it, filter it, split it, and reconcile without leaving the page.
Monthly salary
Income · HDFC Salary
+₹1,85,000
1 Jul
Skyline Residency
Rent · HDFC Salary
₹32,000
2 Jul
BigBasket
Groceries · Millennia Card
₹3,120
4 Jul
Swiggy
Eating out · Millennia Card
₹480
5 Jul
Index fund SIP
Investments · ICICI Savings
₹15,000
5 Jul
BESCOM electricity
Utilities · HDFC Salary
₹2,340
6 Jul
Netflix
Subscriptions · Millennia Card
₹649
7 Jul
Bring in a statement, keep the mess out.
Add banks, cards, cash, loans, and savings, then import a CSV. Kosh matches what it recognises, suggests a category for the rest, and holds duplicates back for you to confirm.
hdfc-jul-2025.csv
38 rows parsed · 34 matched · 3 need a category · 1 duplicate held
THIRD WAVE COFFEE BLR
→ Eating out
₹380
RENTPAY SKYLINE
→ Rent
₹32,000
CROMA RETAIL BANGALORE
→ Shopping
₹8,499
SWIGGY INSTAMART
→ Duplicate of 5 Jul
₹480
HDFC Salary
Bank
₹2,14,300
ICICI Savings
Savings
₹8,90,000
HDFC Millennia
Credit card
−₹41,200
SBI Emergency Fund
Savings
₹4,20,000
Car Loan
Loan
−₹3,10,000
Jio Fiber
Due tomorrow
₹999
BESCOM electricity
In 3 days
₹2,340
Car loan EMI
In 9 days
₹18,500
Skyline rent
1 Aug
₹32,000
Plan the month; meet every due date.
Set monthly envelopes and watch them fill as you spend. Track recurring bills with their real due dates, so rent, EMIs, and the electricity bill never arrive as a surprise.
Let the repetitive parts run themselves.
Write a rule once — this merchant, that category — and it applies to matching transactions from then on. Recurring income and payments arrive as drafts you confirm, never posted behind your back.
When merchant contains “Swiggy”, set category Eating out and tag food.
Monthly on the 1st · next draft 1 Aug. Kosh prepares it; you confirm before it posts.
6 months of expenses
December
on track
Save toward the things you're actually planning.
An emergency fund, a trip, a laptop. Give each goal a target and follow the progress, funded from the accounts you already track — no separate pots to reconcile.
Ownership
You hold the data and the infrastructure.
There is no Kosh account in a datacentre you can't see. The app runs on your hardware, writes to your PostgreSQL, and — when you set an encryption key — protects the sensitive columns with AES-256-GCM before they ever touch disk. Back it up on your schedule; export to CSV whenever you want a copy in hand.
Your server
a VPS, a NAS, a spare box
Your database
PostgreSQL you control
Your keys
encryption key never leaves
For self-hosters
Boring, legible infrastructure.
The Compose stack starts PostgreSQL, runs the migrations, then starts Kosh. Nothing exotic to operate and nothing to phone home.
$ cp .env.example .env
$ docker compose up -d- App
- Next.js
- Database
- PostgreSQL 16
- Runtime
- Node.js 22.13+
- Encryption
- AES-256-GCM
- License
- AGPL-3.0
- Deploy
- Docker Compose
Kosh shows you its own health — the database connection, migrations, backups, and encryption status — so operating it never means guessing.
Run your own money software.
Stand it up in a few minutes, import a statement, and see where you actually are. It stays on your server for as long as you want it.