A personal finance tracker for logging expenses, recurring payments, and monthly budgets.
Built with React 19, Express 5, and SQLite. Runs as a single Docker container — the server serves both the API and the built client.
| Dashboard | |
|---|---|
![]() |
![]() |
| Expenses | Recurring |
|---|---|
![]() |
![]() |
| Budgets | Categories & Tags |
|---|---|
![]() |
![]() |
| Add Expense | |
|---|---|
![]() |
- Expenses — log spending with descriptions, categories, tags, and dates; filter by category, tag, or date range
- Recurring expenses — define subscriptions and regular payments; expense entries are generated automatically on schedule
- Budgets — set monthly spending limits per category or overall, with live progress bars on the dashboard
- Categories — custom categories with color and icon
- Tags — colour-coded tags for cross-category grouping and filtering, applicable to both expenses and recurring rules
- Dashboard — monthly bar chart, category donut, spending trend, category comparison, budget progress, and calendar heatmap
- Import / Export — back up and restore all data as a single CSV file
Create a docker-compose.yml:
services:
pocketlog:
image: ghcr.io/audemed44/pocket-log:latest
ports:
- '7897:7897'
environment:
- PORT=7897
- DB_PATH=/app/data/pocketlog.db
- NODE_ENV=production
- TZ=UTC
volumes:
- db-data:/app/data
restart: unless-stopped
volumes:
db-data:docker compose up -dOpen http://localhost:7897.
git clone https://github.com/audemed44/pocket-log.git
cd pocket-log
docker compose up --buildRequires Node.js 22+ and npm 10+.
git clone https://github.com/audemed44/pocket-log.git
cd pocket-log
npm install
npm run dev- API server: http://localhost:7897
- Client (Vite): http://localhost:5173 — proxies
/apito the server automatically
| Variable | Default | Description |
|---|---|---|
PORT |
7897 |
Port the server listens on |
DB_PATH |
server/data/pocketlog.db |
Path to the SQLite database file |
NODE_ENV |
— | Set to production to enable static file serving |
TZ |
Asia/Kolkata |
Timezone used to determine today's date |






