This is my simple finances tracker that I use to keep track of my spending.
- Entities: The core building blocks of your finances.
- Accounts: Where you hold money (e.g., bank accounts, PayPal account, cash)
- Entities: Where you spend money (e.g., Walmart, Spotify, Netflix)
- Payments: Record money movement.
- Expenses: Money leaving an Account. (Account -> Entity)
- Income: Money entering an Account. (Entity -> Account)
- Categories (optional): Add labels to Payments for better tracking.
- Set up: Create Entities and Accounts that reflect your finances.
- Record a Payment:
- Enter the amount and date.
- Select payor and payee
- (optional) Assign a category or enter a note.
- Explore: View your payment history and view your statics at the dashboard
- Install the website as a PWA for easy access.
- Get in the habit of recording Payments as they happen for accurate tracking.
- Use categories to understand your spending patterns.
Clone this repository and run the following commands:
## create .env file
cp .env.example .env
## start the database
docker compose -f docker/finances-dev/docker-compose.yml up -d
## generate prisma client
bunx prisma generate
## apply database migrations
bunx prisma migrate deploy
## start the development server
bun run dev
This project relies on Auth0 authentication. To use it you will have to create an Auth0 account,
create an application of type 'Single Page Application' and now add the required details to your .env file.
You will also have to add http://localhost:3000/auth/callback
as an Allowed Callback URL
and http://localhost:3000
as an Allowed Logout URL
and Allowed Web Origins
in your Auth0 console.
Now open http://localhost:3000 with your browser and create an account. While in development mode, you can generate sample data from the Account page.
Copy the docker-compose.yaml file and the .env.example from 'docker/finances-prod' to your server.
Rename the .env.example
file to .env
and adjust the required environment variables.
The docker setup expects you to run a Traefik reverse proxy. It will then register itself automatically.
If your setup is different, you will need to adjust the docker-compose.yaml
file accordingly.
The finances containers will automatically register themselves to a running watchtower container if it is present.
Finally run docker-compose up -d
on your server to start the application.