Spawn a live account gateway alongside paper
This is like, super first-draft-y (and ideally we move to offering an `piker.data._ahab` super for this) but, it's a start at allowing easy setup of both paper and live `ib-gw` container spawning. We Expect the user to input creds for the live account manually and the vnc server is (hackily) only run inside the paper instance which most of the time seems to make it possible click on the live gui window and input creds manually. We also add extra files for the live instance: - a `dockering/ib/run_x11_vnc_live.sh` which is is a blank script that avoids running an `x11vnc` server in the line account cntr. - a `dockering/ib/jts_live.ini` config which manually sets the live gw to use the `4001` port for api connections. Further config tweaks: - IBC: drop the api dynamic port override, decrease login display timeout to the riskier but likely to be faster 20s. - `x11vnc` cmd: got back to using `rfbport` instead of `autoport`, drop `-logappend` so we see logging on docker console again, drop the frame cacheing flags and add in some x-hack disable flags.livenpaper
parent
739a231afc
commit
3a9bc8058f
|
@ -3,11 +3,12 @@
|
||||||
version: "3.5"
|
version: "3.5"
|
||||||
|
|
||||||
services:
|
services:
|
||||||
ib-gateway:
|
ib_gw_paper:
|
||||||
# other image tags available:
|
# other image tags available:
|
||||||
# https://github.com/waytrade/ib-gateway-docker#supported-tags
|
# https://github.com/waytrade/ib-gateway-docker#supported-tags
|
||||||
image: waytrade/ib-gateway:981.3j
|
# image: waytrade/ib-gateway:981.3j
|
||||||
restart: always
|
image: waytrade/ib-gateway:1012.2i
|
||||||
|
restart: always # restart whenev there's a crash or user clicsk
|
||||||
network_mode: 'host'
|
network_mode: 'host'
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
|
@ -39,14 +40,12 @@ services:
|
||||||
# this compose file which looks something like:
|
# this compose file which looks something like:
|
||||||
# TWS_USERID='myuser'
|
# TWS_USERID='myuser'
|
||||||
# TWS_PASSWORD='guest'
|
# TWS_PASSWORD='guest'
|
||||||
# TRADING_MODE=paper (or live)
|
|
||||||
# VNC_SERVER_PASSWORD='diggity'
|
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
TWS_USERID: ${TWS_USERID}
|
TWS_USERID: ${TWS_USERID}
|
||||||
TWS_PASSWORD: ${TWS_PASSWORD}
|
TWS_PASSWORD: ${TWS_PASSWORD}
|
||||||
TRADING_MODE: ${TRADING_MODE:-paper}
|
TRADING_MODE: 'paper'
|
||||||
VNC_SERVER_PASSWORD: ${VNC_SERVER_PASSWORD:-}
|
VNC_SERVER_PASSWORD: 'doggy'
|
||||||
|
VNC_SERVER_PORT: '3003'
|
||||||
|
|
||||||
# ports:
|
# ports:
|
||||||
# - target: 4002
|
# - target: 4002
|
||||||
|
@ -62,3 +61,39 @@ services:
|
||||||
# - "127.0.0.1:4001:4001"
|
# - "127.0.0.1:4001:4001"
|
||||||
# - "127.0.0.1:4002:4002"
|
# - "127.0.0.1:4002:4002"
|
||||||
# - "127.0.0.1:5900:5900"
|
# - "127.0.0.1:5900:5900"
|
||||||
|
|
||||||
|
ib_gw_live:
|
||||||
|
image: waytrade/ib-gateway:1012.2i
|
||||||
|
restart: always
|
||||||
|
network_mode: 'host'
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
- type: bind
|
||||||
|
source: ./jts_live.ini
|
||||||
|
target: /root/jts/jts.ini
|
||||||
|
# don't let ibc clobber this file for
|
||||||
|
# the main reason of not having a stupid
|
||||||
|
# timezone set..
|
||||||
|
read_only: true
|
||||||
|
|
||||||
|
# force our own ibc config
|
||||||
|
- type: bind
|
||||||
|
source: ./ibc.ini
|
||||||
|
target: /root/ibc/config.ini
|
||||||
|
|
||||||
|
# force our noop script - socat isn't needed in host mode.
|
||||||
|
- type: bind
|
||||||
|
source: ./fork_ports_delayed.sh
|
||||||
|
target: /root/scripts/fork_ports_delayed.sh
|
||||||
|
|
||||||
|
# force our noop script - socat isn't needed in host mode.
|
||||||
|
- type: bind
|
||||||
|
# source: ./run_x11_vnc.sh
|
||||||
|
source: ./run_x11_vnc_live.sh
|
||||||
|
target: /root/scripts/run_x11_vnc.sh
|
||||||
|
read_only: true
|
||||||
|
|
||||||
|
# NOTE: to fill these out, define an `.env` file in the same dir as
|
||||||
|
# this compose file which looks something like:
|
||||||
|
environment:
|
||||||
|
TRADING_MODE: 'live'
|
||||||
|
|
|
@ -188,7 +188,7 @@ AcceptNonBrokerageAccountWarning=yes
|
||||||
#
|
#
|
||||||
# The default value is 60.
|
# The default value is 60.
|
||||||
|
|
||||||
LoginDialogDisplayTimeout = 60
|
LoginDialogDisplayTimeout=20
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -292,7 +292,7 @@ ExistingSessionDetectedAction=primary
|
||||||
# be set dynamically at run-time: most users will never need it,
|
# be set dynamically at run-time: most users will never need it,
|
||||||
# so don't use it unless you know you need it.
|
# so don't use it unless you know you need it.
|
||||||
|
|
||||||
OverrideTwsApiPort=4002
|
; OverrideTwsApiPort=4002
|
||||||
|
|
||||||
|
|
||||||
# Read-only Login
|
# Read-only Login
|
||||||
|
|
|
@ -0,0 +1,33 @@
|
||||||
|
[IBGateway]
|
||||||
|
ApiOnly=true
|
||||||
|
LocalServerPort=4001
|
||||||
|
# NOTE: must be set if using IBC's "reject" mode
|
||||||
|
TrustedIPs=127.0.0.1
|
||||||
|
; RemoteHostOrderRouting=ndc1.ibllc.com
|
||||||
|
; WriteDebug=true
|
||||||
|
; RemotePortOrderRouting=4001
|
||||||
|
; useRemoteSettings=false
|
||||||
|
; tradingMode=p
|
||||||
|
; Steps=8
|
||||||
|
; colorPalletName=dark
|
||||||
|
|
||||||
|
# window geo, this may be useful for sending `xdotool` commands?
|
||||||
|
; MainWindow.Width=1986
|
||||||
|
; screenHeight=3960
|
||||||
|
|
||||||
|
|
||||||
|
[Logon]
|
||||||
|
Locale=en
|
||||||
|
# most markets are oriented around this zone
|
||||||
|
# so might as well hard code it.
|
||||||
|
TimeZone=America/New_York
|
||||||
|
UseSSL=true
|
||||||
|
displayedproxymsg=1
|
||||||
|
os_titlebar=true
|
||||||
|
s3store=true
|
||||||
|
useRemoteSettings=false
|
||||||
|
|
||||||
|
[Communication]
|
||||||
|
ctciAutoEncrypt=true
|
||||||
|
Region=usr
|
||||||
|
; Peer=cdc1.ibllc.com:4001
|
|
@ -1,20 +1,35 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
# start vnc server and listen for connections
|
||||||
|
# on port specced in `$VNC_SERVER_PORT`
|
||||||
|
|
||||||
# start VNC server
|
|
||||||
x11vnc \
|
x11vnc \
|
||||||
-listen 127.0.0.1 \
|
-listen 127.0.0.1 \
|
||||||
-allow 127.0.0.1 \
|
-allow 127.0.0.1 \
|
||||||
-autoport 3003 \
|
-rfbport "${VNC_SERVER_PORT}" \
|
||||||
-no6 \
|
|
||||||
-noipv6 \
|
|
||||||
-display :1 \
|
-display :1 \
|
||||||
-bg \
|
|
||||||
-forever \
|
-forever \
|
||||||
-shared \
|
-shared \
|
||||||
-logappend /var/log/x11vnc.log \
|
-bg \
|
||||||
-ncache_cr \
|
-nowf \
|
||||||
-ncache \
|
-noxdamage \
|
||||||
|
-noxfixes \
|
||||||
|
|
||||||
# can't use this because of ``asyncvnc`` issue:
|
|
||||||
|
# -nowcr \
|
||||||
|
# TODO: can't use this because of ``asyncvnc`` issue:
|
||||||
# https://github.com/barneygale/asyncvnc/issues/1
|
# https://github.com/barneygale/asyncvnc/issues/1
|
||||||
# -passwd 'ibcansmbz'
|
# -passwd 'ibcansmbz'
|
||||||
|
|
||||||
|
# XXX: optional graphics caching flags that seem to rekt the overlay
|
||||||
|
# of the 2 gw windows? When running a single gateway
|
||||||
|
# this seems to maybe optimize some memory usage?
|
||||||
|
# -ncache_cr \
|
||||||
|
# -ncache \
|
||||||
|
# -no6 \
|
||||||
|
# -noipv6 \
|
||||||
|
|
||||||
|
# NOTE: this will prevent logs from going to the console.
|
||||||
|
# -logappend /var/log/x11vnc.log \
|
||||||
|
|
||||||
|
# where to start allocating ports
|
||||||
|
# -autoport "${VNC_SERVER_PORT}" \
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
#!/bin/sh
|
Loading…
Reference in New Issue