A lightweight PHP dashboard for Interactive Brokers that shows:
- Net liquidation chart (last 30 days)
- Positions with P&L and base-currency P&L
- Cash balances
- Intraday P&L (partitioned)
- Gateway status
- Privacy toggle to blur sensitive amounts for sharing
The app depends on the IBKR Client Portal Gateway. For long-lived sessions, ibeam is recommended.
- PHP 8.x (tested with built-in server)
- IBKR Client Portal Gateway running locally
- APCu (optional, but recommended for 5‑minute API caching)
- Copy the environment file:
cp .env.example .env- Adjust
.envif needed:
GATEWAY_BASE_URL=https://localhost:5050/v1/api
Optional dashboard basic auth:
USERNAME=...
PASSWORD=...
php -S 127.0.0.1:5080Open:
http://127.0.0.1:5080/
docker run --rm -e GATEWAY_BASE_URL=https://host.docker.internal:5050/v1/api -p 5080:5080 --pull=always ghcr.io/niek/ibkr-dash:latesttelegram.php sends a daily summary (yesterday’s performance, CET/CEST) to a Telegram chat.
TELEGRAM_TOKEN=...
TELEGRAM_CHAT=...
Run:
php telegram.php- API calls are cached for 5 minutes when APCu is available.
- Base-currency P&L uses
/pa/transactions(days param) for historical FX and cost basis. - Intraday P&L uses
/iserver/account/pnl/partitioned. - The dashboard assumes the Client Portal Gateway is already authenticated.