Skip to content

ft-t/go-money

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

55 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Go Money

build workflow codecov go-report PkgGoDev

Go Money is an open-source personal finance manager written in Go, built for speed, flexibility, and advanced customization.

Unlike most finance apps, Go Money is designed for more advanced users who want full control over their transaction data and storage.

It enables customizations through Lua scripting and external reporting with Grafana.

Key Features

  • Support for multi currency transactions
  • Custom Lua hooks to process transactions
  • Grafana-based reporting (bring your own dashboards)
  • Import data from other finance apps (Firefly for now)
  • Scriptable and developer-friendly architecture
  • High test coverage and stable api
  • Multiple client libraries provided via ConnectRPC

Demo

A demo instance of Go Money is available at https://demo.go-money.top and grafana dashboards at https://grafana.go-money.top.

Login credentials for the demo instance:

  • Username: demo
  • Password: demo4vcxsdfss231

Note: The demo instance is reset every 3 hours, so any data you enter will be lost after that time, also possible downtime during the reset process.

Note2: The demo instance is not intended for production use, it is provided for demonstration purposes only.

Note3: The demo instances is running on cheapest 1$ VPS, so it may be slow or unstable at times.

Installation

Go Money is available as a Docker image, making it easy to deploy and run on any system that supports Docker. For detailed installation instructions, please refer to the Installation guide.

UI

GO Money provides a simple web UI for managing transactions, accounts, and other financial data.

API

Go Money provides multi-protocol API (gRPC, JSON-RPC) for more details and documentation, please refer to the API documentation

Reporting

Go Money does not come with built-in reports. Instead, it allows you to use Grafana to create custom dashboards and reports based on your transaction data.

Grafana guide

Database schema

Query examples

Scripting

Go Money allows you to write Lua scripts to process transactions. This makes it highly flexible and adaptable to your specific needs.

Lua scripting guide

Lua scripts examples

Multi currency support

Go Money supports multiple currencies, allowing you to manage transactions in different currencies seamlessly.

Withdrawal transaction always has source_currency set to the account currency, but at same time you can set foreign currency for the transaction, so you can track exchange rates and conversions.

Go Money stores additional fields to track amounts in primary currency, so its much easier to work with that information in reports. For more details refer to Currencies guide

Documentation

Full documentation and examples are available in the Wiki