Aurum README

The project's README from github.com/Zproger/Aurum. As one markdown file: README.md.

Aurum

See where every dollar comes from. Know where every dollar goes.

Aurum is a source-available personal finance operating system — a complete, granular, real-time picture of your money: cash flow, net worth, budgets, subscriptions, assets, and every income stream you own.

License: PolyForm Noncommercial 1.0.0 PRs Welcome

Features • Screenshots • Getting Started • API Docs • Security • Contributing • License

🖼️ Screenshots

Aurum dashboard — real income, spending, savings rate, spending by category, and recent transactions



Aurum net worth timeline with full asset allocation breakdown



Capital grouped by type (income / neutral / drain) and by risk level Transactions list with filters
Cash flow chart, income vs. expense by month Category spending report over time

📖 Overview

Most finance apps show you a pie chart of last month's spending and call it a day. Aurum goes further.

It's built for people who don't just want to log transactions — they want to understand the mechanics of their money: how capital grows or shrinks over time, which assets are pulling their weight, which subscriptions are quietly draining them, and which income streams are actually passive versus which just look that way on paper.

Aurum treats your financial life as a system, not a spreadsheet.

💡 Why Aurum

🧩 Core Features

💰 Cash Flow & Transactions

Log income, expenses, and transfers across as many accounts as you want, organized into categories (with one level of subcategories) plus free-form tags, and searchable. One purchase spanning multiple subcategories of the same parent (a grocery receipt part "Sweets", part "Alcohol") can be recorded as a single split transaction instead of several — every report and chart still counts each share under its own category. Already have history elsewhere? Import a bank's CSV export in a guided 3-step wizard instead of typing every line by hand. A dedicated Cash Flow view charts income vs. expense month by month.

📈 Net Worth Engine

A live net worth timeline (30 days to all-time) aggregating cash and every manually tracked asset — investments, crypto, real estate, vehicles, precious metals — into one number, with a full breakdown by asset class, by how each asset behaves (income / neutral / drain), and by risk level.

🪙 Crypto Tracker

A CoinMarketCap-style portfolio tab for the coins you actually hold: live price plus 1h/24h/7d change, your holdings value, average buy price, and profit/loss — computed from a full buy/sell history, no separate portfolio tracker needed. Refresh on demand with one button, or let it auto-refresh once a day; either way it plugs straight into the Net Worth engine above as just another tracked asset.

🎯 Budgets, Goals & Recurring Payments

Set a monthly limit per category and watch progress bars fill up. Track savings goals with a running contribution log. Register recurring bills and post them with one click when they're due — nothing runs automatically in the background.

📊 Reports & Advice

Rank every category by total spend over any custom period to find what's actually eating your budget. A rules-based Advice tab surfaces rising spending categories, unbudgeted top expenses, and month-over-month savings rate trends in plain language.

🧮 Returns Calculator

A standalone ROI calculator: enter what you'd invest and what it would pay you monthly, and see the annual return, payback period, and a compound-interest projection — with a year-by-year comparison chart of compounding vs. just banking the cash — before you commit to a purchase.

🔔 Proactive Alerts

Aurum watches your numbers in the background and surfaces a warning the moment something crosses a threshold you configure: a sustained negative cash flow streak, a declining net worth trend, an over-budget category, too much capital sitting at risk, or cash sitting idle in an account for too long.

🌐 Bilingual, Mobile-First

Full Russian/English UI with a language switch in Settings, a light/dark/system theme toggle, and every screen designed mobile-first from day one.

💾 Full Backup & Restore

Export your entire dataset — accounts, transactions, assets, budgets, goals — to a single JSON file at any time, and restore it later on a fresh install.

🚀 Getting Started

Aurum ships as three containers — Postgres, a FastAPI backend, and an nginx-served frontend — wired together with Docker Compose. No local Python, Node, or Postgres installation needed; Docker is the only requirement.

1. Install Docker

You need Docker Engine and the Docker Compose plugin (the docker compose command, not the older standalone docker-compose).

Confirm both are available:

docker --version
docker compose version

2. Get the code

git clone https://github.com/Zproger/Aurum.git
cd Aurum

3. Configure your environment

Copy the template and open it in an editor:

cp .env.example .env

At minimum, change these two before going any further:

Variable What it does
AURUM_POSTGRES_PASSWORD Password for Aurum's own Postgres container. The template ships with change-me on purpose — replace it with something real.
AURUM_BASIC_AUTH_USER / AURUM_BASIC_AUTH_PASSWORD Aurum has no login screen of its own. Leave these blank and the app has no password at all — fine if it's only reachable from localhost, not fine anywhere else. Set both to put an HTTP Basic Auth prompt in front of the whole app. See Security & Self-Hosting below.

Everything else in .env (currency, CORS, the port Aurum listens on) has a sensible default and can be left alone for a first run.

4. Start it

docker compose up -d --build

This builds the backend and frontend images, starts Postgres, waits for it to report healthy, then starts the backend (which runs every database migration automatically — nothing to do by hand) and finally the frontend. First run takes a minute or two; after that, images are cached and it's seconds.

5. Open it

Visit http://localhost:3000 (or whatever port you set via AURUM_WEB_PORT in .env). A default account and the standard expense/income categories are seeded automatically — there's nothing to configure before you can add your first transaction.

6. Check it's healthy (optional)

docker compose ps

All three containers (db, backend, web) should show healthy. If web or backend doesn't, check its logs:

docker compose logs backend
docker compose logs web

Everyday operations

docker compose down          # stop everything, keep your data
docker compose up -d         # start it again later
docker compose down -v       # stop AND permanently delete your data — be sure
git pull && docker compose up -d --build   # update to newer code

Your data lives in a Docker named volume (aurum_pgdata), not in the repo folder — it survives docker compose down, image rebuilds, and git pull. It's only gone if you explicitly run docker compose down -v or delete the volume yourself. For anything short of that, use the in-app Settings → Backup & Restore to export a JSON snapshot of everything before making risky changes.

🔌 API

Everything Aurum's UI can do — adding transactions, managing accounts and budgets, importing a CSV, tracking assets, exporting a backup — is also available as a plain JSON REST API at /api, so you can script Aurum or connect it to other programs. See DOCS.md for the full reference, or open /api/docs on your running instance for interactive Swagger docs.

🔒 Security & Self-Hosting

Aurum has no built-in login system. It's built for one person to self-host one private instance of their own financial data — not as a multi-tenant service with per-user accounts. That's a deliberate trade-off, not an oversight, but it means:

If you find a security issue, please open a private report via GitHub's Security tab rather than a public issue.

🛠️ Tech Stack

🤝 Contributing

Aurum is built in the open, for everyone. Contributions of all kinds are welcome — code, design, documentation, ideas, and bug reports. See CONTRIBUTING.md for how to get a dev environment running and what a good pull request looks like.

📄 License

Aurum is released under the PolyForm Noncommercial License 1.0.0.

In plain terms: you can read the code, self-host it, modify it, and use it for any personal, educational, or noncommercial purpose, for free, forever. What you can't do is take it (or a modified version of it) and sell it, host it as a paid service for others, or otherwise build a commercial product on top of it. This is not an OSI-approved open source license — it's source-available. See the LICENSE file for the exact terms, and open an Issue if you have a use case you're not sure is covered.

❤️ Support Aurum

Aurum is free and always will be for personal use. If it's helped you get a handle on your money and you'd like to help it keep growing, a donation goes a long way: Donate via Lava.


If Aurum helps you understand your money better, consider giving it a ⭐ — it genuinely helps the project grow.

Aurum (Zproger/Aurum)

Searching Database…

258 ·GitHub
这是什么?Aurum 是一个可自托管的个人财务操作系统,在一个实时仪表盘里追踪现金流、净值、预算、订阅、资产和加密货币持仓。
这是我自己托管的网页应用,还是桌面程序?它是一个自托管网页应用,以三个 Docker 容器(Postgres、FastAPI 后端和 nginx 托管的 React 前端)的形式运行,通过浏览器访问。
怎么让它跑起来?安装 Docker,获取代码,复制 .env 模板并设置 Postgres 密码和可选的 Basic Auth 凭据,然后运行 docker compose up——它会自动构建镜像、执行迁移并生成一个默认账户,你马上就能开始记账。
我需要先装 Python 或 Node 吗?不需要——带 Compose 插件的 Docker Engine 是唯一要求;无需在本地安装 Python、Node 或 Postgres。
开箱即用地暴露到公网上安全吗?不安全——Aurum 没有内置登录系统,如果 Basic Auth 变量不设置,任何能访问到容器的人都可以读取、修改和删除所有内容;在把它暴露到 localhost 之外之前,你必须设置这些变量(并自行添加 TLS 反向代理)。
我的财务数据实际会去哪里?数据永远不会离开你自己的服务器——Aurum 的设计是让一个人自托管一份属于自己的私密财务数据实例,而不是多租户云服务。
我可以商用或转售它吗?不可以——Aurum 以 PolyForm Noncommercial License 1.0.0 开放源代码:你可以永久免费地自托管、修改和个人使用,但不能出售它,也不能把它作为付费服务托管给他人。
它能在追踪银行账户的同时追踪加密货币吗?可以——一个类似 CoinMarketCap 的投资组合标签页会追踪你的币种持仓、实时价格、平均买入价和基于完整买卖历史的盈亏,并作为另一种受追踪资产直接汇入净值引擎。
它会自动提醒我不良的消费趋势吗?会——基于规则的“建议”标签页和主动预警系统会标记支出上涨的类别、未纳入预算的开支、下滑的储蓄率、连续的负现金流以及过度集中的风险。
我可以导入现有的银行交易记录吗?可以——通过一个三步引导向导,你可以导入银行的 CSV 导出文件,而不必手动录入每一笔交易。
如果我运行 docker compose down,数据会怎样?很安全——你的数据保存在具名 Docker 卷(aurum_pg_data)中,容器重启、重建和 git pull 都不影响它;只有你显式删除该卷或运行“docker compose down -v”时才会被删除。
Creator
Zproger
Size
1.7 MB
Stars
258
Updated
CommitSep 22
Age
2mo
Commits · 90 Days