All apps · 0 apps
pinebridge-mt5
Docker app from Pinebridge's Repository
Overview
Readme
View on GitHub![]()
Pinebridge
TradingView alerts to MetaTrader 5, self-hosted.
Tired of paying a monthly fee just to get your TradingView alerts into MetaTrader 5? Or renting a VPS only so MT5 stays online around the clock? If you have an Unraid server, you already own the hardware for both. Pinebridge receives your TradingView strategy alerts and places the trades in MT5, which runs in a Windows container on your own server. No signal-relay subscription, no VPS bill, and your broker login stays on your own server instead of with a third-party service.
This executes real trades on a real or demo account with no human in the loop. Read the risk notice before using this with a live account, and test on a demo account first.
How it works
TradingView alert -> Cloudflare Tunnel -> pinebridge-bridge (Flask) -> ZeroMQ -> MT5 EA -> your broker
Three containers:
| Container | What it does |
|---|---|
pinebridge-tunnel |
Optional: exposes the webhook to the internet via a Cloudflare Tunnel — no port-forwarding. Skip it if you already run a tunnel. |
pinebridge-bridge |
Flask app: authenticates, parses, and translates TradingView alerts, then pushes them to MT5 over ZeroMQ |
pinebridge-mt5 |
A Windows 11 VM (dockur/windows) running MetaTrader 5 + the TradingViewZeroMQExecutor Expert Advisor |
The Pinebridge Dashboard (port 8081, LAN only) shows every signal and fill, slippage against TradingView's price, latency, win rate, PnL and equity. See docs/dashboard.md.
See docs/architecture.md for the full data-flow diagram and the reasoning behind each piece.
Quick start (Docker Compose)
cp .env.example .envand fill in the values (see comments in the file).- Set up a Cloudflare Tunnel per
docs/cloudflare-tunnel-setup.md and
put the token in
.env. docker compose up -d- Watch
pinebridge-mt5provision itself athttp://<host>:8006(noVNC) — see docs/mt5-ea-setup.md for what's automated and how to verify it worked. - Point a TradingView alert at your tunnel's
/webhookURL using the format in docs/tradingview-alert-format.md.
Quick start (Unraid)
See docs/unraid-install.md: add the templates with
one terminal command, then install the containers from Docker > Add
Container. Coming from the old tv-mt5-bridge names? See
Moving from tv-mt5-bridge.
Support
Questions and help: the Unraid forum support thread. Bugs and feature requests: GitHub issues.
Security
- The webhook requires a shared secret (
WEBHOOK_SECRET), sent either in the webhook URL (/webhook?secret=...) or as asecret=field in the alert body — TradingView can't send custom headers, so this is the auth mechanism. Use the URL form for strategies that send messages from Pinealert()calls. Don't disable this for anything reachable from the internet. - Public exposure goes through a Cloudflare Tunnel, not a forwarded port.
- No broker or Windows credentials are ever baked into the images — they're
supplied via
.env/ Unraid template fields at runtime.
Repo layout
signal-bridge/— source of thepinebridge-bridgeimage (Flask + ZeroMQ webhook receiver)mt5-windows/— source of thepinebridge-mt5image, built on dockur/windows;oem/holds the provisioning scripts + EA source baked into itunraid-templates/— Unraid container templates (the ones listed in Community Applications)extras/— the optionalpinebridge-tunneltemplate (.template, not.xml, so the CA scanner does not list it: CA already lists cloudflared)docs/— setup guides for each piece
Status
Tested on real Unraid hardware with a Forex.com demo account:
- Install: a fresh first boot installs MT5, compiles the EA and attaches it.
- Live alerts end to end: market entries and exits, resting limit orders (arm/cancel), double-down adds and SL/TP moves, all from live TradingView alerts through a Cloudflare Tunnel.
- Failure handling: close retries after a broker disconnect, and FIFO-compliant closing on a US account.
See docs/mt5-ea-setup.md for what was found along the way. Issues and PRs welcome.
Support the project
If Pinebridge saves you a VPS or a signal subscription, consider buying me a coffee.
License
MIT. Please also read the automated trading risk notice.
Install pinebridge-mt5 on Unraid in a few clicks.
Find pinebridge-mt5 in Community Apps on your Unraid server, review the template, and click Install. Unraid handles the Docker app or plugin setup from the published template.
Requirements
Categories
Related apps
Explore more like this
Explore allDetails
ghcr.io/jakeshake/pinebridge-mt5:latestRuntime arguments
- Web UI
http://[IP]:[PORT:8006]- Network
bridge- Shell
sh- Privileged
- false
- Extra Params
--device=/dev/kvm --device=/dev/net/tun --cap-add=NET_ADMIN --stop-timeout 120
Template configuration
noVNC web viewer -- watch/control the Windows desktop in a browser
- Target
- 8006
- Default
- 8006
- Value
- 8006
Optional RDP access
- Target
- 3389
- Default
- 3389
- Value
- 3389
ZeroMQ port the EA listens on -- pinebridge-bridge connects to 172.17.0.1 (this server, from Docker) or [Unraid IP]:this port
- Target
- 5555
- Default
- 5555
- Value
- 5555
Your MT5 broker account number
Your MT5 broker account password
Your broker's MT5 server name, exactly as shown in MT5 (e.g. MetaQuotes-Demo)
Chart symbol the EA attaches to on startup (the EA trades whatever symbol each signal names)
- Default
- EURUSD
- Value
- EURUSD
RAM allocated to the VM
- Default
- 8G
- Value
- 8G
CPU cores allocated to the VM
- Default
- 2
- Value
- 2
Virtual disk size
- Default
- 64G
- Value
- 64G
Windows account username (not your broker login)
- Default
- Docker
- Value
- Docker
Windows account password (not your broker login) -- change this
- Default
- admin
- Value
- admin
Persistent Windows VM disk image (keep this on cache/SSD if you can)
- Target
- /storage
- Default
- /mnt/user/appdata/pinebridge-mt5/storage
- Value
- /mnt/user/appdata/pinebridge-mt5/storage