filipeforattini / ontrack

:money_with_wings: A simple self-hosted budgeting app

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

logo

Buy Me A Coffee

About

In a nutshell: a private budgeting tool that can be self-hosted.

This project is an attempt to understand and control my own spending better without giving my banking/financial info to a 3rd party. The app is meant to be used with 1 login, and you can host easily your own instance.

The app was designed by Iana Noda.

Features

Dashboard

The dashboard lets you quickly see how you're doing in the current month. You can set a spend goal per month and/or per category. This is also where you quickly add individual expenses.

dashboard

Insights

The insights page lets you review any year or month in more detail.

insights

History

The history page lets you drill down into actual purchases, as well as do any tweaking (e.g. changing category or deleting).

history

Importing

Although you can't connect banking info, you can still streamline entering expenses. The CSV import lets you flexibly import expenses from bank exports.

import

Fun and mobile friendly

OnTrack has a light and fun voice that makes it a pleasure to use. The entire app is also mobile friendly.

voice

Installation

Creating a user

  • bundle exec rails c to run Rails console
  • User.create!(username: "...", password: "...") The username and password will be hashed.
  • If you ever need to change your username/password: User.first.update!(username: "...", password: "...")

Hosting your own

I'd recommend using Heroku since it's super simple (and free) to deploy a Rails app. Keep it awake with my Heroku Pinger! All you need to do once your instance is deployed is run heroku run bundle exec rails c to open the Rails console and create your user.

Deploy

Local development with Docker

Building docker container

npm run build
# or
docker build --rm --compress -t inoda/ontrack .

Using docker-compose

docker-compose up -d

Running

docker run --rm -d \
  -e "POSTGRESQL_DATABASE=ontrack" \
  -e "POSTGRESQL_USERNAME=ontrack" \
  -e "POSTGRESQL_PASSWORD=secret" \
  --name "ontrack-postgres" \
  bitnami/postgresql:latest

docker run --rm -d \
  --link "ontrack-postgres" \
  -e "DATABASE_URL=postgres://ontrack:secret@ontrack-postgres/ontrack" \
  -p 80:3000 \
  inoda/ontrack

Usage and feedback

Feel free to use this however you'd like! If you use this, credit would be nice but I don't really care that much. I'm primarily maintaining this for my own use cases. But...if you have features you'd like to see built, or changes that you think should be made, please open issues on this repo and tag me in them! I'd love to improve the tool from your feedback.

About

:money_with_wings: A simple self-hosted budgeting app

License:MIT License


Languages

Language:JavaScript 46.9%Language:Ruby 35.9%Language:CSS 10.4%Language:HTML 4.9%Language:Shell 1.3%Language:Dockerfile 0.6%