/ib-gateway-docker

lightweight interactive brokers gateway docker

Primary LanguagePythonMIT LicenseMIT

IB Gateway docker

Build test Docker Pulls GitHub

lightweight interactive brokers gateway docker

It's just pure IB Gateway and don't include any VNC service (for security reason, I don't like expose extra port)

This docker image just installed:

Pull the Docker image from Docker Hub

docker pull manhinhang/ib-gateway-docker

Create a container from the image and run it

docker run -d \
--env IB_ACCOUNT= \ #YOUR_USER_ID 
--env IB_PASSWORD= \ #YOUR_PASSWORD  
--env TRADE_MODE= \ #paper or live 
--p 4002:4002 \ #brige IB gateway port to your local port 4002
manhinhang/ib-gateway-docker tail -f /dev/null

Build & Run locally

git clone git@github.com:manhinhang/ib-gateway-docker.git
cd ib-gateway-docker
docker build --no-cache -t ib-gateway-docker .
docker run -d \
--env IB_ACCOUNT= \ #YOUR_USER_ID 
--env IB_PASSWORD= \ #YOUR_PASSWORD  
--env TRADE_MODE= \ #paper or live 
-p 4002:4002 \ #brige IB gateway port to your local port 4002
ib-gateway-docker \
tail -f /dev/null

Container usage example

Example Link Description
ib_insync examples/ib_insync This example demonstrated how to connect IB Gateway
google cloud secret manager examples/google_cloud_secret_manager retreive your interactive brokers account from google cloud secret manager

Tests

The test cases written with testinfra.

Run the tests

pytest

Github Actions for continuous integration

After forking IB Gateway docker repository, you need config your interactive brokers paper account & password in github secret

Key Description
IB_ACCOUNT your paper account name
IB_PASSWORD your paper account password

Other environment variable

Variable Name Description Default value
IB_GATEWAY_PING_CLIENT_ID ib gateway client id for pinging client status 1
IBGW_WATCHDOG_CONNECT_TIMEOUT Ref to ib_insync.ibcontroller.Watchdog.connectTimeout 30
IBGW_WATCHDOG_APP_STARTUP_TIME ib_insync.ibcontroller.Watchdog.appStartupTime 30
IBGW_WATCHDOG_APP_TIMEOUT Ref to ib_insync.ibcontroller.Watchdog.appTimeout 30
IBGW_WATCHDOG_RETRY_DELAY Ref to ib_insync.ibcontroller.Watchdog.retryDelay 2
IBGW_WATCHDOG_PROBE_TIMEOUT Ref to ib_insync.ibcontroller.Watchdog.probeTimeout 4

Disclaimer

This project is not affiliated with Interactive Brokers Group, Inc.'s.

Good luck and enjoy.