📊 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.

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
. <(cat .env | grep -v -e '^$' | grep -v "#" | awk '{}')
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.
Controtto
Project Details
- contre95/controtto
- GNU General Public License v3.0
- Last Updated: 4/18/2025
Recomended MCP Servers
Two Truths and a Twist: The world's first Model Context Protocol game
mcp-1panel is an implementation of the Model Context Protocol (MCP) server for 1Panel.
MCP server for Dart VM and Flutter
simple web ui to manage mcp (model context protocol) servers in the claude app
A simple MCP server that delivers you jobs based on your needs
A Model Context Protocol (MCP) server for the POX SDN controller
A Model Context Protocol (MCP) server enabling AI assistants to interact with Outline documentation services.
MCP Server for YouTube API, enabling video management, Shorts creation, and advanced analytics
Make MCP Server
A mcp server for tracking cryptocurrency whale transactions.





