DumbBudget

DumbBudget

Docker app from ZappyZap's Repository

Overview

A simple, secure personal budgeting app with PIN protection. Track your income and expenses with a clean, modern interface.

DumbBudget

A simple, secure personal budgeting app with PIN protection. Track your income and expenses with a clean, modern interface.

image

Features

  • ๐Ÿ”’ PIN-protected access
  • ๐Ÿ’ฐ Track income and expenses
  • ๐Ÿ“Š Real-time balance calculations
  • ๐Ÿท๏ธ Categorize transactions
  • ๐Ÿ“… Date range filtering
  • ๐Ÿ”„ Sort by date or amount
  • ๐Ÿ“ฑ Responsive design
  • ๐ŸŒ“ Light/Dark theme
  • ๐Ÿ“ค Export to CSV
  • ๐Ÿ” Filter transactions by type
  • ๐Ÿ’ฑ Multi-currency support
  • ๐ŸŒ PWA Support

Supported Currencies

DumbBudget supports the following currencies:

  • USD (US Dollar) ๐Ÿ‡บ๐Ÿ‡ธ
  • EUR (Euro) ๐Ÿ‡ช๐Ÿ‡บ
  • GBP (British Pound) ๐Ÿ‡ฌ๐Ÿ‡ง
  • JPY (Japanese Yen) ๐Ÿ‡ฏ๐Ÿ‡ต
  • AUD (Australian Dollar) ๐Ÿ‡ฆ๐Ÿ‡บ
  • CAD (Canadian Dollar) ๐Ÿ‡จ๐Ÿ‡ฆ
  • CHF (Swiss Franc) ๐Ÿ‡จ๐Ÿ‡ญ
  • CNY (Chinese Yuan) ๐Ÿ‡จ๐Ÿ‡ณ
  • HKD (Hong Kong Dollar) ๐Ÿ‡ญ๐Ÿ‡ฐ
  • NZD (New Zealand Dollar) ๐Ÿ‡ณ๐Ÿ‡ฟ
  • MXN (Mexican Peso) ๐Ÿ‡ฒ๐Ÿ‡ฝ
  • RUB (Russian Ruble) ๐Ÿ‡ท๐Ÿ‡บ
  • SGD (Singapore Dollar) ๐Ÿ‡ธ๐Ÿ‡ฌ
  • KRW (South Korean Won) ๐Ÿ‡ฐ๐Ÿ‡ท
  • INR (Indian Rupee) ๐Ÿ‡ฎ๐Ÿ‡ณ
  • BRL (Brazilian Real) ๐Ÿ‡ง๐Ÿ‡ท
  • ZAR (South African Rand) ๐Ÿ‡ฟ๐Ÿ‡ฆ
  • TRY (Turkish Lira) ๐Ÿ‡น๐Ÿ‡ท
  • PLN (Polish Zล‚oty) ๐Ÿ‡ต๐Ÿ‡ฑ
  • SEK (Swedish Krona) ๐Ÿ‡ธ๐Ÿ‡ช
  • NOK (Norwegian Krone) ๐Ÿ‡ณ๐Ÿ‡ด
  • DKK (Danish Krone) ๐Ÿ‡ฉ๐Ÿ‡ฐ
  • IDR (Indonesia Rupiah) ๐Ÿ‡ฎ๐Ÿ‡ฉ
  • PKR (Pakistani Rupee) ๐Ÿ‡ต๐Ÿ‡ฐ

Set your preferred currency using the CURRENCY environment variable (defaults to USD if not set).

Using Docker

docker run -d \
  -p 3000:3000 \
  -v /path/to/your/data:/app/data \
  -e DUMBBUDGET_PIN=12345 \
  -e CURRENCY=USD \
  -e BASE_URL=http://localhost:3000 \
  -e SITE_TITLE='My Account' \
  dumbwareio/dumbbudget:latest
services:
  dumbbudget:
    image: dumbwareio/dumbbudget:latest
    container_name: dumbbudget
    restart: unless-stopped
    ports:
      - ${DUMBBUDGET_PORT:-3000}:3000
    volumes:
      - ${DUMBBUDGET_DATA_PATH:-./data}:/app/data
    environment:
      - DUMBBUDGET_PIN=${DUMBBUDGET_PIN:-} # PIN to access the site
      - BASE_URL=${DUMBBUDGET_BASE_URL:-http://localhost:3000} # URL to access the site
      - CURRENCY=${DUMBBUDGET_CURRENCY:-USD} # Supported Currency Code: https://github.com/DumbWareio/DumbBudget?tab=readme-ov-file#supported-currencies
      - SITE_TITLE=${DUMBBUDGET_SITE_TITLE:-DumbBudget} # Name to show on site
      - INSTANCE_NAME=${DUMBBUDGET_INSTANCE_NAME:-} # Name of instance/account
      # (OPTIONAL)
      # Restrict origins - ex: https://subdomain.domain.tld,https://auth.proxy.tld,http://internalip:port' (default is '*')
      # - ALLOWED_ORIGINS=${DUMBBUDGET_ALLOWED_ORIGINS:-http://localhost:3000}
    # healthcheck:
    #   test: wget --spider -q  http://127.0.0.1:3000
    #   start_period: 20s
    #   interval: 20s
    #   timeout: 5s
    #   retries: 3

Note: Replace /path/to/your/data with the actual path where you want to store your transaction data on the host machine.

Environment Variables

Variable Description Required Default Example
DUMBBUDGET_PIN PIN code for accessing the application Yes - 12345
PORT Port number for the server No 3000 8080
CURRENCY Currency code for transactions No USD EUR
BASE_URL Base URL for the application No http://localhost:PORT https://budget.example.com
SITE_TITLE Allows you to name each instance should you have multiple. No - My Account

Development Setup

  1. Clone the repository:
git clone https://github.com/DumbWareio/DumbBudget.git
cd DumbBudget
  1. Install dependencies:
npm install
  1. Create a .env file:
DUMBBUDGET_PIN=12345
PORT=3000
NODE_ENV=development
BASE_URL=http://localhost:3000
CURRENCY=USD
SITE_TITLE='DumbBudget'
INSTANCE_NAME='My Account'
ALLOWED_ORIGINS=* # Restrict origins - ex: https://subdomain.domain.tld,https://auth.proxy.tld,http://internalip:port' (default is '*')
  1. Start the development server:
npm run dev
  1. Open http://localhost:3000 in your browser

Building from Source

# Build the Docker image
docker build -t dumbwareio/dumbbudget:latest .

# Create a directory for persistent data
mkdir -p ~/dumbbudget-data

# Run the container
docker run -d \
  -p 3000:3000 \
  -v ~/dumbbudget-data:/app/data \
  -e DUMBBUDGET_PIN=12345 \
  -e BASE_URL=http://localhost:3000 \
  -e SITE_TITLE='My Account' \
  dumbwareio/dumbbudget:latest

Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Security

DumbBudget includes several security features:

  • PIN protection for access
  • Rate limiting on PIN attempts
  • Temporary lockout after failed attempts
  • No sensitive data stored in browser storage
  • Secure session handling

Support

Support the Project

Buy Me A Coffee

Made with โค๏ธ by DumbWare.io

Install DumbBudget on Unraid in a few clicks.

Find DumbBudget in Community Apps on your Unraid server, review the template, and click Install. Unraid handles the Docker app or plugin setup from the published template.

Open the Apps tab on your Unraid server Search Community Apps for DumbBudget Review the template variables and paths Click Install

Categories

Download Statistics

336,720
Total Downloads
34,361
This Month
22,554
Avg / Month

Total Downloads Over Time

Loading chart...

Related apps

Explore more like this

Explore all

Details

Repository
dumbwareio/dumbbudget:latest
Last Updated2025-11-03
First Seen2025-02-07

Runtime arguments

Web UI
http://[IP]:[PORT:3000]
Network
bridge
Shell
sh
Privileged
false

Template configuration

WebUIPorttcp

The port on which the application will run.

Target
3000
Default
3000
Value
3000
DataPathrw

Data Dir

Target
/app/data
Value
/mnt/user/appdata/dumbbudget
PINVariable

PIN protection

Target
DUMBBUDGET_PIN
Value
12345
CURRENCYVariable

Currency code for transactions

Default
USD
Value
USD