pinebridge-mt5

pinebridge-mt5

Docker app from Pinebridge's Repository

Overview

Pinebridge: TradingView alerts to MetaTrader 5. Send TradingView alerts straight to MetaTrader 5 on your own Unraid server. No paid signal-relay service, no VPS. This container is the MetaTrader 5 side: it runs a full Windows 11 VM (dockur/windows, KVM/QEMU) that installs MetaTrader 5 and the TradingViewZeroMQExecutor EA by itself on first boot -- no files to download. First boot takes roughly 15-70 minutes (Windows download + install, then MT5 setup); watch it via the WebUI. Requires /dev/kvm on the host (enable virtualization in BIOS) and your own Windows license for anything beyond evaluation use. Places real trades automatically: read the risk notice (https://github.com/jakeshake/pinebridge/blob/main/DISCLAIMER.md) and test on a demo account first.

Pinebridge

Pinebridge

TradingView alerts to MetaTrader 5, self-hosted.

Buy me a coffee

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)

  1. cp .env.example .env and fill in the values (see comments in the file).
  2. Set up a Cloudflare Tunnel per docs/cloudflare-tunnel-setup.md and put the token in .env.
  3. docker compose up -d
  4. Watch pinebridge-mt5 provision itself at http://<host>:8006 (noVNC) — see docs/mt5-ea-setup.md for what's automated and how to verify it worked.
  5. Point a TradingView alert at your tunnel's /webhook URL 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 a secret= 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 Pine alert() 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 the pinebridge-bridge image (Flask + ZeroMQ webhook receiver)
  • mt5-windows/ — source of the pinebridge-mt5 image, built on dockur/windows; oem/ holds the provisioning scripts + EA source baked into it
  • unraid-templates/ — Unraid container templates (the ones listed in Community Applications)
  • extras/ — the optional pinebridge-tunnel template (.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.

Buy 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.

Open the Apps tab on your Unraid server Search Community Apps for pinebridge-mt5 Review the template variables and paths Click Install

Requirements

Virtualization (VT-x/AMD-V) enabled in BIOS so /dev/kvm exists. Test with a demo broker account first.

Related apps

Details

Repository
ghcr.io/jakeshake/pinebridge-mt5:latest
Last Updated2026-09-30
First Seen2026-09-30

Runtime 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

WebUI PortPorttcp

noVNC web viewer -- watch/control the Windows desktop in a browser

Target
8006
Default
8006
Value
8006
RDP PortPorttcp

Optional RDP access

Target
3389
Default
3389
Value
3389
ZMQ PortPorttcp

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
MT5_LOGINVariable

Your MT5 broker account number

MT5_PASSWORDVariable

Your MT5 broker account password

MT5_SERVERVariable

Your broker's MT5 server name, exactly as shown in MT5 (e.g. MetaQuotes-Demo)

MT5_SYMBOLVariable

Chart symbol the EA attaches to on startup (the EA trades whatever symbol each signal names)

Default
EURUSD
Value
EURUSD
RAM_SIZEVariable

RAM allocated to the VM

Default
8G
Value
8G
CPU_CORESVariable

CPU cores allocated to the VM

Default
2
Value
2
DISK_SIZEVariable

Virtual disk size

Default
64G
Value
64G
USERNAMEVariable

Windows account username (not your broker login)

Default
Docker
Value
Docker
PASSWORDVariable

Windows account password (not your broker login) -- change this

Default
admin
Value
admin
StoragePathrw

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