Skip to main content
Glama

📊 Controtto

A self-hosted, P&L tracker made with Go, HTMX and no JavaScript. Controtto, keeps track of your transaction saving it in a sqlite file, and returns all sorts of calculations including:

  • Avg. Buy price

  • Current asset value

  • Transaction history

  • Import / Export transaction (see sample)

  • Profit & Loss

In order to fetch the price of an asset, Controtto relies on mainly 4 APIs (see code).

  • Binance - Public API, no token needed.

  • BingX - Public API, no token needed.

  • Alpha Vantage - Stocks, free but short rate limit. (get an token and set CONTROTTO_AVANTAGE_TOKEN)

  • Tiingo - Stocks, crypto and Forex. (create account/token and set CONTROTTO_TIINGO_TOKEN)

Demo

You can also check out the demo at demo.contre.io, the database resets every hour.

https://github.com/user-attachments/assets/28bf8782-6118-47c0-a94b-085e1a7045b2

All configurations are set in the .env file and passed as environment variables. Variables CONTROTTO_PORT and CONTROTTO_DB_PATH are available.

# Install the dependencies
go mod tidy
# Set the .env
mv .env.example .env
# Source the env variables
export $(grep -v '^#' .env | grep -v '^$' | xargs)

Related MCP server: Arch-Expert-MCP

Build and Run

go run ./cmd/main.go # go build ./cmd/main.go to just build it

Development env

go install github.com/cosmtrek/air@latest # Download air
air -c air.toml

and access localhost:3000

Run with Podman

A Container image is available on Docker's public registry. If you want to use Docker, simply replace podman with docker.

mkdir data
podman container run --rm -p 8000:8000 -v $(pwd)/data:/data contre95/controtto

Run tests

go test -cover ./...
#   Expected result
#   ?       controtto/cmd   [no test files]
#   ?       controtto/src/app/managing      [no test files]
#   ?       controtto/src/domain/pnl        [no test files]
#   ?       controtto/src/gateways/markets  [no test files]
#   ?       controtto/src/gateways/sqlite   [no test files]
#   ?       controtto/src/presenters        [no test files]
#   ok      controtto/src/app/querying      0.003s  coverage: 40.7% of statements

TODO

  • More tests

  • Wrappers for logging and metrics would be nice as well.

  • Add Accounts to keep track of the total net worth.

  • Remove all the CSS and use custom style.css + Tailwind CDN.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Strict AI code reviewer powered by Groq. Finds bugs, vulnerabilities and security issues in your code. Supports analyze, compare versions, explain code, generate tests, and HTML reports.
    7
    2
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Real-time architecture governance tool that enforces Clean Architecture, DDD, SOLID, TDD, and Security rules across 8 languages using 11 specialized agents.
    14
    MIT