Skip to content

audemed44/pocket-log

Repository files navigation

PocketLog

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.

Screenshots

Dashboard
Dashboard Dashboard — budget & heatmap
Expenses Recurring
Expenses Recurring
Budgets Categories & Tags
Budgets Categories
Add Expense
Add Expense

Features

  • 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

Running with Docker

Pre-built image (recommended)

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 -d

Open http://localhost:7897.

Build from source

git clone https://github.com/audemed44/pocket-log.git
cd pocket-log
docker compose up --build

Local development

Requires Node.js 22+ and npm 10+.

git clone https://github.com/audemed44/pocket-log.git
cd pocket-log
npm install
npm run dev

Environment variables

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

About

Self hosted web app to log and track expenses

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors