πŸ’Έ OpenBudgeteer

MIT licensed F/OSS software for managing your monthly budget and getting your finances under control.

GitHub - TheAxelander/OpenBudgeteer: OpenBudgeteer is a budgeting app based on the Bucket Budgeting Principle
OpenBudgeteer is a budgeting app based on the Bucket Budgeting Principle - TheAxelander/OpenBudgeteer

OpenBudgeteeer (Code) is a project for keeping track of your money – using the Bucket Budgeting Principle. You may not have heard of it, but luckily there are some nice summaries around the internet:

Bucket Budgeting: An Easy Way To Manage Cash Flow
Like dieting or exercise, budgeting requires consistency to produce results. But budgeting can be difficult to make into a habit, as it can feel

The basic idea is to:

  1. Identify Categories: List out all the categories where you spend money or want to save, such as rent, groceries, entertainment, and savings goals.
  2. Allocate Income: Divide your monthly income into these categories (buckets) based on your spending priorities and financial goals.
  3. Track Spending: As you spend throughout the month, deduct amounts from the appropriate buckets to ensure you don't exceed the allocated budget.
  4. Adjust as Needed: At the end of the month, review your spending and make adjustments to your allocations if necessary to better align with your goals or unexpected expenses.

OpenBudgeteer helps you get that done. While of course it's much easier to say than do, budgeting is important, and having F/OSS software that helps you take care of it is great for society and for people individually.

Screenshot
OpenBudgeteer screenshot (source: DockerHub)

The app even looks great, and is filled with clear illustrations and a flow that is relatively easy to follow.

There are lots of tools in this area, but OpenBudgeteer is one of the first that we've covered here at Awesome F/OSS and hopefully it helps you achieve your financial budgeting related goals.

🌠 Features

OpenBudgeteer does a lot of things, but at it's heart it's a budgeting software, so the scope is quite limited (it's not going to do your taxes!):

πŸ€– As described by AI

OpenBudgeteer is an open-source personal budgeting tool that allows users to manage their finances through a bucket-based budgeting approach. It provides a simple and intuitive interface for tracking income, expenses, and savings by categorizing them into different "buckets" or categories. Users can allocate their income to various budget categories, track their spending, and monitor their progress toward financial goals. OpenBudgeteer is designed to be self-hosted, making it a flexible and privacy-friendly option for those who prefer to keep their financial data under their control.

The tool is built with a focus on transparency and simplicity, offering features such as transaction tracking, budget summaries, and visual insights into spending patterns. OpenBudgeteer is particularly useful for individuals who want a hands-on approach to managing their finances without relying on third-party services. Its open-source nature allows users to customize the tool to their needs, and the community-driven development ensures continuous improvements and updates.

πŸ“Ί Watch this

While it's hard to find stuff about OpenBudgeteer in particular, there's lots of content out there about budgeting (and bucket budgeting in particular), so we dug deep to find one from 5 years ago that explains the concept thoroughly:

πŸ‘Ÿ Getting started

With docker

OpenBudgeteer has an official docker image which you can use to get started quickly:

OpenBudgeteer DockerHub page

The image is updated quite frequently, which is really hard to do – kudos to the maintainer for well, maintaining the project well!

Since it has some requirements, you can get started even quicker by using docker-compose instead:

services:
  openbudgeteer:
    image: axelander/openbudgeteer:latest
    #image: axelander/openbudgeteer:pre-release
    #image: axelander/openbudgeteer:1.7
    container_name: openbudgeteer
    ports:
      - 8080:8080
    environment:
      - CONNECTION_PROVIDER=mariadb
      - CONNECTION_SERVER=openbudgeteer-mariadb
      - CONNECTION_PORT=3306
      - CONNECTION_DATABASE=openbudgeteer
      - CONNECTION_USER=openbudgeteer
      - CONNECTION_PASSWORD=openbudgeteer
      - APPSETTINGS_CULTURE=en-US
      - APPSETTINGS_THEME=solar
    depends_on:
      - mariadb

  mariadb:
    image: mariadb
    container_name: openbudgeteer-mariadb
    environment:
      MYSQL_ROOT_PASSWORD: myRootPassword
    volumes:
      - data:/var/lib/mysql

  # optional    
  phpmyadmin:
    image: phpmyadmin/phpmyadmin
    container_name: openbudgeteer-phpmyadmin
    links:
      - mariadb:db
    ports:
      - 8081:80

volumes:
  data:
πŸ’‘
The app also supports Postgres and SQLite as backends, so if you change the CONNECTION_PROVIDER environment variables and other details, you can update the above docker compose file to work with the DB of your choice!

Here's an example with Postgres as the main database:

services:
  openbudgeteer:
    image: axelander/openbudgeteer
    container_name: openbudgeteer
    ports:
      - 8081:8080
    environment:
      - CONNECTION_PROVIDER=postgres
      - CONNECTION_SERVER=openbudgeteer-db
      - CONNECTION_DATABASE=openbudgeteer
      - CONNECTION_USER=openbudgeteer
      - CONNECTION_PASSWORD=My$uP3rS3creTanDstr0ngP4ssw0rD!!!
      - APPSETTINGS_CULTURE=en-US
      - APPSETTINGS_THEME=solar
    depends_on:
      - db

  # optional
  openbudgeteer-api:
    image: axelander/openbudgeteer-api
    container_name: openbudgeteer-api
    ports:
      - 8082:8080
    environment:
      - CONNECTION_PROVIDER=postgres
      - CONNECTION_SERVER=openbudgeteer-db
      - CONNECTION_DATABASE=openbudgeteer
      - CONNECTION_USER=openbudgeteer
      - CONNECTION_PASSWORD=My$uP3rS3creTanDstr0ngP4ssw0rD!!!
    depends_on:
      - db

  db:
    image: postgres:alpine
    container_name: openbudgeteer-db
    environment:
      - POSTGRES_USER=openbudgeteer
      - POSTGRES_PASSWORD=My$uP3rS3creTanDstr0ngP4ssw0rD!!!
      - POSTGRES_DB=openbudgeteer
    volumes:
      - data:/var/lib/postgresql/data

volumes:
  data:

You can read more about it here:

Configuration - OpenBudgeteer Documentation

πŸ§‘β€πŸ’» Want to contribute?

OpenBudgeteer is written in C# which is somewhat rare, but it's an MIT licensed (πŸŽ‰) project and fully open source – waiting for you to contribute! Check out the open issues:

Issues Β· TheAxelander/OpenBudgeteer
OpenBudgeteer is a budgeting app based on the Bucket Budgeting Principle - Issues Β· TheAxelander/OpenBudgeteer

While C# can seem intimidating to contribute to compared to a language like Javascript, reading existing code and being careful to imitate patterns that are already in the repository can be a great way to learn to use the language and to contribute to a tool you use every day.

πŸ“¬ Want Awesome F/OSS in your inbox?

We'll send you new articles as soon as they go live.