What PerkBridge does
PerkBridge sets up and runs MetaTrader 5 trading infrastructure on servers you own, and gives you one dashboard and one API to manage it.
The idea in one paragraph
PerkBridge (the product is called Nile) is self-hosted trading infrastructure. You bring your own Linux servers. PerkBridge prepares them over SSH, runs MetaTrader 5 headless in isolated containers on them, and lets you watch, trade and stop everything from one dashboard. Nothing runs on our machines: the management software and the trading servers are yours.
PerkBridge is an infrastructure manager first. It is not a trading strategy and it does not decide trades for you. It never assumes that an infrastructure action, such as stopping a container or losing a connection, closes a position at your broker.
Two parts: control plane and execution plane
An installation has two parts that you run on separate machines.
| PART | RUNS ON | WHAT IT DOES |
|---|---|---|
| Control plane | One management server you install with Docker Compose. | Holds your servers, deployments, users and permissions, the audit log, monitoring and the Trading API. Serves the dashboard over HTTPS. It never trades itself: it sends signed commands to your servers. |
| Execution plane | Your trading servers (Ubuntu 24.04, 64-bit). | Runs the Fleet Agent and the MetaTrader 5 terminals in Docker. Checks every command on its own and keeps running when the control plane is unreachable. |
The control plane is made of PostgreSQL 16, the management service, a Caddy web front end that serves the dashboard, and nile-notifier, which sends alert notifications. You can add a bundled Keycloak sign-in page, branded “Perkbridge Nile Connect”, when you install.
Architecture at a glance
Your team and your code talk only to the control plane. Each trading server connects out to it, so the servers need no inbound management port, and each MetaTrader 5 terminal talks to your broker directly.
What runs on your servers
- Fleet Agent. A native service on each server. It opens one outbound, mutually authenticated TLS connection to the control plane, so the server needs no inbound management port. It accepts only commands the control plane has signed, and checks each one itself.
- MetaTrader 5 runtimes. Each deployment is a Docker container with MetaTrader 5 running headless under Wine. You install MetaTrader 5 from MetaQuotes or from your broker’s installer link; PerkBridge does not ship or license it.
- nile-risk. The risk engine runs next to each terminal and checks your risk rules before an order reaches the broker. Because it runs on the server, your rules hold even when the control plane is down.
- Watchdog. An optional local service that watches the agent and its workloads, raises alerts and records diagnostics. It does not restart terminals.
- nile-vault. An optional service that keeps a broker password you choose to remember, split so that neither the server nor the control plane can open it alone. Add server can install it for you.
What you can do today
- Add a server from the dashboard. PerkBridge checks it, installs Docker and the Fleet Agent over SSH, writes its server policy from the options you pick, and enrols the agent. It can also install nile-vault. See Add a server.
- Pick a trading platform from the signed catalog, then create a deployment by typing your broker’s server name as MetaTrader 5 shows it, for example FTMO-Demo. If the platform is not on the server yet, Install and create downloads it first. See Deploy a trading account.
- Deliver broker passwords encrypted end to end to the server, or let the server remember them with nile-vault so a terminal can start again without anyone typing. See Broker credentials.
- Watch fleet health, metrics, alerts and events in one place, and send alerts to Telegram, Slack, email or a signed webhook. See Monitoring and Alert notifications.
- Set risk rules per account and route: loss and profit limits, trade and order counts, open positions, volume, price age and spread, plus trading hours, market close and news windows that can close positions and cancel pending orders in time. See Risk rules.
- Trade MetaTrader 5 demo accounts through a broker-style REST API with per-account tokens: market, limit, stop and stop limit orders, time in force, modify and cancel. See the Trading API reference.
- Choose a standby server per deployment and switch to it by hand or automatically. A deployment can also start again after its server reboots. See Failover.
- Stop new positions on every account at once with the emergency stop in the dashboard. See Stopping safely.
- Sign users in with passwords or single sign-on, and grant permissions per organization, server or deployment. See Users and single sign-on.
How it stays safe
- Only servers you registered can reach the agent gateway. Other addresses are refused before the TLS handshake.
- Your SSH key is used for one setup run, held in memory and wiped. It is never stored.
- You can always close. The emergency stop, risk blocks and time rules stop new positions only; a close still goes through, even while nile-risk is down.
- An order is never sent twice, also across a failover switch. Unclear outcomes are checked with the broker, never resent.
- Every sign-in, change and refused action is written to the audit log.
What it does not do yet
- Demo accounts only. Real-money and contest accounts are refused. Real-money accounts are planned.
- Stop loss and take profit on market orders are refused on MetaTrader 5 (stops_not_supported). They work on limit and stop orders. There is no call to change the stop loss or take profit of an open position, and closes are full closes.
- Not yet verified on real brokers. Orders, risk rules and failover are built and tested with automated tests, and are being qualified on real servers and broker demo servers.
- Risk-rule trips raise no alert yet, and a rule cannot close positions when it trips. Time rules can close and cancel before market close or news.
- Ubuntu servers only. Windows servers are in progress and are refused at setup.
- Docker Compose install only. In-place upgrade, rollback, uninstall and a native install mode are planned.
- Users are managed from the command line. A user page in the dashboard and two-factor sign-in for password accounts are planned.
- Early-access builds. The production release key is not published yet, so every bundle is a development build.
Coming next: DirectConnect. An opt-in, low-latency order path over a TLS WebSocket, for demo accounts, with the same risk checks. It is designed and not built yet. See the roadmap.
Where to start
- Install the control plane on a management server.
- Prepare your servers for trading.
- Add a server from the dashboard.
New to the terms? Keep Words used in these docs open in another tab.