ib-gateway-docker
ib-gateway-docker copied to clipboard
lightweight interactive brokers gateway docker
IB Gateway docker
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:
-
IB Gateway (10.19.2l)
-
IBC (3.18.0)
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 TRADING_MODE= \ #paper or live
-p 4002:4002 \ #brige IB gateway port to your local port 4002
manhinhang/ib-gateway-docker
Build & Run locally
git clone [email protected]: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 TRADING_MODE= \ #paper or live
-p 4002:4002 \ #brige IB gateway port to your local port 4002
ib-gateway-docker
Container usage example
| Example | Link | Description |
|---|---|---|
| ib_insync | examples/ib_insync | This example demonstrated how to connect IB Gateway |
Health check container
API
Healthcheck via api call http://localhost:8080/healthcheck
Config HEALTHCHECK_API_ENABLE=true in environment variable to enable API
curl -f http://localhost:8080/healthcheck
- Docker compose example
services:
ib-gateway:
image: manhinhang/ib-gateway-docker
ports:
- 4002:4002
environment:
- IB_ACCOUNT=$IB_ACCOUNT
- IB_PASSWORD=$IB_PASSWORD
- TRADING_MODE=$TRADING_MODE
- HEALTHCHECK_API_ENABLE=true
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8080/healthcheck"]
interval: 60s
timeout: 30s
retries: 3
start_period: 60s
CLI
Execute healthcheck to detect IB gateway haelth status
healthcheck
# output: Ping IB Gateway successful
echo $?
# output: 0
healthcheck
# output: Can not connect to IB Gateway
echo $?
# output: 1
- Docker compose example
services:
ib-gateway:
image: manhinhang/ib-gateway-docker
ports:
- 4002:4002
environment:
- IB_ACCOUNT=$IB_ACCOUNT
- IB_PASSWORD=$IB_PASSWORD
- TRADING_MODE=$TRADING_MODE
healthcheck:
test: /healthcheck/bin/healthcheck
interval: 60s
timeout: 30s
retries: 3
start_period: 60s
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 |
Disclaimer
This project is not affiliated with Interactive Brokers Group, Inc.'s.
Good luck and enjoy.