Self-hosted Telegram bot for tracking personal income and expenses, with cash vs. transfer balance and automatic reports.
git clone https://github.com/your-username/telegram-finance-tracker.git
cd telegram-finance-tracker
cp .env.example .env # fill in your values
./setup.shRequired in .env:
| Variable | Description |
|---|---|
TELEGRAM_BOT_TOKEN |
From @BotFather |
TELEGRAM_CHAT_ID |
From @userinfobot |
HOST_DATA_DIR |
Host path where finance.db will be stored |
CURRENCY_SYMBOL |
e.g. ฿ $ ₭ (default: ฿) |
- Expense & Income tracking with category selection
- Cash / Transfer split — separate running balance per method
- Auto-cancel — pressing any menu button mid-flow cancels the current action and processes the new one
- Edit Transaction — edit amount, category, method, or note on any of the 10 most recent transactions
- Delete Last — remove the most recent transaction with confirmation
- Custom categories — add/remove per type from within the bot
- Automatic reports — daily at 23:30, monthly on last day, yearly on Dec 31 (Bangkok time)
- On-demand reports — Today, This Month, This Year, All-Time Summary
- Single-user — restricted to one Telegram Chat ID
docker compose logs -f # logs
docker compose down # stop
docker compose up -d --build # rebuild