docker-compose.example.yml
Rama main · réplica de lectura del repositorio original.
services:
ib-gateway:
image: ghcr.io/gnzsnz/ib-gateway:stable
container_name: ib-gateway
restart: unless-stopped
environment:
TWS_USERID: ${IBKR_USER_1}
TWS_PASSWORD: ${IBKR_PASS_1}
TRADING_MODE: ${IBKR_MODE_1:-paper}
TWOFA_TIMEOUT_ACTION: restart
RELOGIN_AFTER_TWOFA_TIMEOUT: "yes"
EXISTING_SESSION_DETECTED_ACTION: primaryoverride
TWS_SETTINGS_PATH: /home/ibgateway/tws_settings
SAVE_TWS_SETTINGS: "yes"
READ_ONLY_API: "no"
volumes:
- ./tws_settings:/home/ibgateway/tws_settings
networks:
- trading
ibkr-telegram:
image: drumsergio/ibkr-telegram:0.1.33
container_name: ibkr-telegram
restart: unless-stopped
environment:
TELEGRAM_BOT_TOKEN: ${TELEGRAM_BOT_TOKEN}
TELEGRAM_ADMIN_CHAT_ID: ${TELEGRAM_ADMIN_CHAT_ID}
WEBHOOK_SECRET: ${WEBHOOK_SECRET:-}
WEBHOOK_PORT: ${WEBHOOK_PORT:-8080}
CONFIG_PATH: /app/config.yaml
volumes:
- ./config.yaml:/app/config.yaml:ro
- ./data:/app/data
# NOTE: /pause and /resume require Docker access. Use a docker-socket-proxy
# or manage gateway containers externally. Do NOT mount docker.sock directly.
depends_on:
ib-gateway:
condition: service_started
networks:
- trading
read_only: true
tmpfs:
- /tmp
cap_drop:
- ALL
security_opt:
- no-new-privileges:true
healthcheck:
test: ["CMD-SHELL", "python -c 'import urllib.request; urllib.request.urlopen(\"http://localhost:8080/health\")'"]
interval: 30s
timeout: 5s
retries: 3
start_period: 15s
networks:
trading:
name: trading
driver: bridge