Build From Source

February 26, 2026 ยท View on GitHub

Install Go SDK

Go to the Go official website to download the Go SDK https://go.dev/dl/.

An example installation looks like this:

wget https://go.dev/dl/go1.17.4.linux-amd64.tar.gz
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf go1.17.4.linux-amd64.tar.gz

Then edit your ~/.profile or ~/.bashrc to have this line at the end:

export PATH=$PATH:/usr/local/go/bin

For the changes to be taken into action, you need to log in again, or run:

source $HOME/.profile

Make sure your go is successfully installed:

go version

Install go-sqlite

If you need to use go-sqlite, you will need to enable CGO first:

CGO_ENABLED=1 go get github.com/mattn/go-sqlite3

Install

Install bbgo via go install

Install bbgo:

go install -x github.com/c9s/bbgo/cmd/bbgo@main

Your binary will be installed into the default GOPATH ~/go/bin. You can add the bin path to your PATH env var by adding the following code to your ~/.zshrc or ~/.bashrc:

export PATH=~/go/bin:$PATH

And then, check the version, it should be 1.x-dev:

bbgo version

If not, try running ls -lh ~/go/bin/bbgo to see if the binary is installed. If it's already there, it means your PATH is misconfigured.

If you prefer other place for installing the go related binaries, you can set GOPATH to somewhere else, e.g.

export GOPATH=~/mygo

Then your bbgo will be installed at ~/mygo/bin/bbgo.

Install via git clone

Since the default GOPATH is located at ~/go, you can clone the bbgo repo into the folder ~/go/src/github.com/c9s/bbgo:

mkdir -p ~/go/src/github.com/c9s
git clone git@github.com:c9s/bbgo.git ~/go/src/github.com/c9s/bbgo
cd ~/go/src/github.com/c9s/bbgo

Download the go modules:

go mod download

And then you should be able to run bbgo with go run

go run ./cmd/bbgo run

You can also use the makefile to build bbgo:

cd apps/frontend && yarn install
make bbgo

NOTE: The above command will build the full version of bbgo, which includes the web interface. The web interface is test and build with node 22. If you have node 22 installed, you can run node -v to check the version. If you have an older version of node, you can use nvm to install node 22:

nvm install 22
nvm use 22

If you don't need the web interface, you can build the slim version of bbgo:

make bbgo-slim

Build inside a Alpine container

Starts a docker container with the alpine image:

docker run -it --rm alpine

Run the following command to install the dependencies:

apk add git go gcc libc-dev sqlite
export CGO_ENABLED=1
go get github.com/mattn/go-sqlite3
go install github.com/c9s/bbgo/cmd/bbgo@latest

Your installed bbgo binary will be located in:

/root/go/bin/bbgo version

You can use the above instruction to write your own Dockerfile.