- Interactive Brokers Gateway API
- gnzsnz/ib-gateway
- TypeScript
- grammY
- SQLite
Use /ibkr [instance_url] [flex_token] [flex_query_id] in Telegram to persist
an Interactive Brokers integration for the current user.
Use /f24 [api_key] [secret_key] [history_years] to persist a Freedom24
integration. history_years is optional and defaults to 10.
Use /buckets to list buckets, /bucket new NAME to create one, and
/bucket remove NAME to delete one. Bucket names can contain up to 20 letters,
numbers, and underscores, and must start with a letter.
Use /bucket move NAME to render order history with /move_NAME_IDX and
/remove_NAME_IDX shortcuts. Moving a transaction puts it in that bucket and
removes it from any other bucket. Unbucketed /perf, /stocks, /options,
/dpnl, and /history views exclude bucketed transactions; pass NAME to
/perf NAME, /stocks NAME, /options NAME, /dpnl NAME, or /history NAME
to view a bucket.
Use /restart in Telegram to request an IB Gateway restart for the current
user's IBKR integration. The bot derives the container name from the saved IBKR
instance_url host. For example, ib_gateway:4003 restarts the
ib_gateway container.
The app container talks to the host Podman API through
/run/podman/podman.sock, which is mounted by compose.yaml.
Before starting the compose stack, enable the host user Podman socket:
systemctl --user enable --now podman.socketeyri_app mounts that socket read-write and disables SELinux container
labeling for the service so /restart can connect to the socket from inside
the app container. If you use a different in-container socket path, set
PODMAN_SOCKET_PATH to match it.