Home
Softono

DumbBudget

Open source JavaScript
324
Stars
27
Forks
17
Issues
3
Watchers
9 months
Last Commit

 About DumbBudget

A stupid simple budget app!

Platforms

Web Self-hosted

Languages

JavaScript

Links

Need Help Installing DumbBudget?

We provide expert installation service for this software. Our team will install, configure, and secure DumbBudget on your server. plans start at just $30.

DumbBudget

View on GitHub

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