Install Trade (start here)
A cloud server with 2 CPU cores and 2 GB of memory is enough. Follow along and one command installs it.
Install along with the video
Buy a serverZML Trade is installed on your own cloud server, and your exchange API keys are stored only there. The requirements are low: an entry-level cloud server is enough, from about 11 USD per month.
ZML Trade runs on your own cloud server, and your exchange API keys are stored only on that server. No technical skills needed: click a few times, copy and paste one command, and it is installed.
Minimum requirements
2 CPU cores, 2 GB of memory and 20 GB of disk, on x86_64 Linux (Ubuntu 24.04 LTS recommended).
Choose pay-by-traffic bandwidth.
Choose Japan (Tokyo) as the region.
An entry-level plan is enough, from about 11 USD per month (2026-10 official price; the order page is final). ZML Trade itself is free.
You don’t need to install Docker first or prepare a domain or certificate. The installer takes care of them.
Choose Japan (Tokyo): exchanges may reject API access from servers in other regions. The region can’t be changed after purchase.
Follow along: pick one
If you don’t have a server yet, pick one and follow along, from buying the server to opening Trade:
Install on Alibaba Cloud ECS: from about 11 USD per month.
Install on AWS EC2: from about 25 USD per month.
Both let you upgrade the server in the console at any time: when you run more combos, upgrade it without reinstalling Trade.
Using another cloud server
Any server that meets the minimum requirements above works; which provider and plan is up to you. Before you buy and install, check these points:
Choose x86 (x86_64), not an ARM machine.
Choose a clean Linux system image (Ubuntu 24.04 LTS recommended), not an image with apps such as BT Panel or WordPress: the programs they include take port 443, which Trade needs.
Choose pay-by-traffic bandwidth. On plans with very little bandwidth, or that cut bandwidth at peak hours, market data arrives late.
Choose Japan (Tokyo) as the region.
In your cloud console's security group (firewall), allow inbound TCP 443. Trade only uses this one port.
You can log in as root, or the user you log in as can use sudo.
Your exchange API keys' IP allowlists need this server's public IP. If the server's public IP can change, attach a fixed public IP (an elastic IP) before installing.
When you're ready, log in to the server and follow the steps below to run the install command.
Run the install command
Copy this command (the Trade install page on our website has a “Copy install command” button):
curl -fsSL --compressed https://api.zmarketlab.com/install.sh -o install.sh && sudo bash install.shRight-click in the command line and choose Paste, or press Ctrl+V (⌘V on Mac), then press Enter.
The screen lists 16 languages. Enter the number in front of the one you want and press Enter. The installer and Trade's web pages then use that language.
The rest is automatic and asks nothing more: check the server, install Docker, download ZML Trade, start it, and request an HTTPS certificate. The five steps are checked off one by one. The symbol in front of the current step keeps spinning and its seconds keep counting, so you can tell it is working.
When you see "Installation complete in …", it is installed. It usually takes a minute or two.
If Trade can't be installed (for example, not enough disk space, or another program is using port 443), the installer says why and stops. Fix it as described, then run the same command again; steps already done are skipped.
Open Trade and create the administrator account
At the end, the terminal says “Open this link in your browser (copy the whole line)”. The line by itself below it is your Trade address. Drag with the mouse from
httpsto the end of the address to select it, right-click and choose Copy, then paste it into your browser’s address bar. Ctrl+C in the command line doesn’t copy. If the address is long and wraps onto two lines, select both lines.The page shows Set up the administrator account. Enter a username and password, accept the terms, and choose Create and continue. You are now in Trade.
This link carries a one-time code for creating the administrator account. Keep it to yourself and don’t share it. The account is stored only on your own server, so keep the password safe. If you forget it, run curl -fsSL --compressed https://api.zmarketlab.com/install.sh -o install.sh && sudo bash install.sh --reset-admin on the server to set a new one.
If you lose the link, log in to the server again, open the command line, paste this command and press Enter to print the link again.
curl -fsSL --compressed https://api.zmarketlab.com/install.sh -o install.sh && sudo bash install.sh --setup-linkThe browser warns that the certificate isn’t trusted
The installer requests a trusted certificate for the server’s public IP automatically. When it gets one, the browser opens Trade directly. When it can’t (the server is behind NAT, or port 443 can’t be reached from the internet), it uses a self-signed certificate and the terminal prints an extra TLS SHA-256 fingerprint line. To check it, click the icon at the left of the browser’s address bar, open the certificate details, find the SHA-256 fingerprint and compare it character by character with the one printed in the terminal; continue only if they match, and stop if they don’t.
After you open the port, run this command to request a trusted certificate again:
curl -fsSL --compressed https://api.zmarketlab.com/install.sh -o install.sh && sudo bash install.sh --enable-ip-certAfter installation
Connect an exchange: add your exchange API keys. In each key’s IP allowlist, enter the egress IP that Trade lists, which is this server’s public IP.
Pair with Z Market Lab: send opportunities you like in Z Market Lab to this Trade in one click.
Use several public IPs: when you run many combos, add more public IPs to the server; Trade finds them by itself and spreads requests.
Updates
Trade installs signed releases. New installs update automatically by default as soon as a new version arrives. You can switch to manual updates in Trade and pick your own time, but a new version is still installed within 7 days of arriving. Urgent fixes that ZML marks as mandatory install without waiting. The database is backed up before the switch, and if anything fails before the new version starts, the current version keeps running. An update doesn’t require closing positions and never closes them for you. For the minute or two of an update, Trade pauses trading, and orders already on the exchange can still fill during that time.
Use your own domain (advanced)
To serve Trade on your own domain with a trusted certificate, edit the Caddyfile in the install directory. Updates don’t overwrite it. Before you add a site for your domain, move the default self-signed site out of the way; otherwise connections to your domain still get the self-signed certificate.