# Ebenezer > A self-hosted ledger for everything an Indian investor owns: shares, mutual funds, bonds, gold, deposits, savings, loans and property. It prices holdings each evening from free exchange and AMFI data, works out XIRR against the Nifty 50 and inflation, judges news about your holdings, answers questions from your own books, and keeps your expenses and credit cards. It runs in Docker on your own server. Source, issues and the changelog: https://github.com/DimwitLabs/Ebenezer ## Table of Contents - [Overview](https://ebenezer.dimwit.me/docs): I am Ebenezer. I keep a ledger of everything you own, on your own server, and I tell you plainly how it is doing. - [First Run](https://ebenezer.dimwit.me/docs/first-run): The first time you open me, I need an owner, an AI model, a mail server and a portfolio. The last three can wait if you are in a hurry. The first c... - [Today](https://ebenezer.dimwit.me/docs/using/today): Today is the first thing you see when you open a portfolio. It tells you what you are worth, how that money has done against the index and inflatio... - [Portfolios And Sections](https://ebenezer.dimwit.me/docs/using/portfolios-and-sections): A portfolio is one set of books. A section is one kind of holding inside it. Keep yours and your parents' apart, or put the whole household in one.... - [Importing](https://ebenezer.dimwit.me/docs/using/importing): Everything I count comes from rows. You can bring them to me three ways: a table from a spreadsheet or a broker's export, a statement PDF from CAMS... - [Prices And Returns](https://ebenezer.dimwit.me/docs/using/prices-and-returns): Each weekday evening I fetch the day's closing prices and value what you hold. Then I work out what your money has really earned, as a yearly rate,... - [Expenses And Cards](https://ebenezer.dimwit.me/docs/using/expenses-and-cards): Tell me what you spent and I keep the ledger. Every rupee that leaves you gets a line, a category and the card or account it came from, and I tell ... - [News](https://ebenezer.dimwit.me/docs/using/news): Every story about a company you hold crosses my desk. I mark it signal or humbug, with one line on why. A broker's opinion: humbug. A price that mo... - [Ask Ebenezer](https://ebenezer.dimwit.me/docs/using/ask): Ask me about your money in plain words and I answer from your own ledger. Nothing else goes into the answer: no market gossip, no tips from a cousi... - [The Report](https://ebenezer.dimwit.me/docs/using/reports): Each portfolio can have a report: a short email with what changed, sent on the days and at the time you choose, through your own mail server. Read ... - [Voice](https://ebenezer.dimwit.me/docs/using/voice): You choose how I talk to you: my personality, my tone, the model that writes for me, and standing instructions on what to look for. I will follow t... - [Export](https://ebenezer.dimwit.me/docs/using/export): Every row you have put in can leave with you, as CSV files in one zip. Each file opens in a spreadsheet and comes back in through Import as it is. ... - [Installing](https://ebenezer.dimwit.me/docs/self-hosting/install): All you need is Docker, and the patience to fill in two lines of a file. I come as one image with everything in it: the server, the web app, and th... - [People](https://ebenezer.dimwit.me/docs/self-hosting/people): One person owns this Ebenezer. Everyone else is let in by the owner, and sees only the portfolios the owner shares with them. A household's money i... - [AI Model](https://ebenezer.dimwit.me/docs/self-hosting/ai-model): I reach AI models through OpenRouter, so you choose the model and pay only for what I use. The model reads and writes for me. The sums I do myself. - [Mail](https://ebenezer.dimwit.me/docs/self-hosting/mail): I send mail through a server you choose. Any SMTP service works, including your own mailbox's. I do not run a mail service of my own, and I would n... - [Alerts And Health](https://ebenezer.dimwit.me/docs/self-hosting/alerts-and-health): The files I read are public, and their owners change them without asking me. Every day I try each one and check it still looks as it should. After ... - [Schedules](https://ebenezer.dimwit.me/docs/self-hosting/schedules): Everything I do on my own runs on a schedule, and every schedule is in plain sight. Each one is a short chain of jobs run in order, named for what ... - [Upgrading](https://ebenezer.dimwit.me/docs/self-hosting/upgrading): Upgrading is a pull and a restart. Take a [backup](/docs/self-hosting/backups) first. It costs a minute, and not taking one has cost people a good ... - [Backups](https://ebenezer.dimwit.me/docs/self-hosting/backups): Everything I keep lives in Postgres, in one schema: `ebenezer`, unless you set `EBENEZER_DB_SCHEMA` to something else. Back up that schema and you ... - [Troubleshooting](https://ebenezer.dimwit.me/docs/self-hosting/troubleshooting): Most of what goes wrong with me goes wrong somewhere else first: an exchange, a mail server, a browser that will not keep a cookie. Here is what I ... - [Configuration](https://ebenezer.dimwit.me/docs/reference/configuration): Set these in `.env`. Everything else is in Settings, where it belongs. - [Data Sources](https://ebenezer.dimwit.me/docs/reference/data-sources): Every outside source I read, what I read it for, and when. None of them needs a key from you except OpenRouter.