Node Deployment
Deployment Methods Overview
This guide provides three deployment methods. If you are not sure which one to pick, start with Method 1: One-Command Deployment.
Method 1: One-Command Deployment (Recommended)
First-time deployment and fastest bootstrap
Less manual control
Method 2: Advanced Quick Deployment (Manual Variables)
Fast deployment with explicit environment variable control
Sensitive variables are handled directly in shell session
Method 3: Manual Deployment
Teams that need full control and manual review of each step
More setup time and manual work
Before running any method, review Preparation - Server Infrastructure.
Method 1: One-Command Deployment (Recommended)
For a fast bootstrap, run:
curl -fsSL https://on.nexus/install.sh | bashFor a fast upgrade, run:
curl -fsSL https://on.nexus/install.sh | bash -s upgradeRun this command on your target server. For production environments, review the script before execution.
Method 2: Advanced Quick Deployment (Manual Variables)
# Log in to the remote server
ssh root@xxx.xxx.xxx.xxUse sudo only if your current user cannot run Docker commands directly.
Remember to use your own address/private key/mnemonics
Method 3: Manual Deployment
Docker Installation
The recommended way to deploy DOTSWAP DEX is using Docker. To install Docker, please refer to Docker's Installation Guide. For questions regarding Docker installation, please refer to Docker's Troubleshooting Guide.
Get Deployment Script
Download the latest configuration file docker-compose.yml from DOTSWAP.
Environment Variable Configuration
Before running DEX, you need to modify the following environment variables in docker-compose.yml:
APP_ENV: Runtime environment.testmaps to testnet4,prodmaps to mainnet.DOTSWAP_HOST: Nexus API endpoint. Configure for both testnet4 and mainnet according toAPP_ENV.ORD_URL: Ord service endpoint. Configure for both testnet4 and mainnet according toAPP_ENV.NODES_BTC_NODE_CONFIG_HOST: Bitcoin node RPC endpoint (host:port). Configure for both testnet4 and mainnet according toAPP_ENV.NODES_BTC_NODE_CONFIG_USER: Bitcoin node RPC username. Configure for both testnet4 and mainnet according toAPP_ENV.NODES_BTC_NODE_CONFIG_PASS: Bitcoin node RPC password. Configure for both testnet4 and mainnet according toAPP_ENV.NODES_BTC_NODE_ZMQ_HOST: Bitcoin node ZMQ endpoint (tcp://host:port). Configure for both testnet4 and mainnet according toAPP_ENV.MPC_SIGNER: Signing backend. Uselocal(default, local private key),fireblocks, orsafeheron.DOTSWAP_ACCOUNT_ADDRESS: The wallet address to register with Nexus as the Market Making Account.DOTSWAP_ACCOUNT_PRIVATE_KEY_HEX: The private key (hex) of the wallet address to register with Nexus, used to prove ownership of this address.MNEMONIC: The wallet mnemonic phrase for allowing the independent Nexus instance to sign transaction and provide liquidity.POOLS_BTC_TOKEN: The key is the names of the involved tokens in a trading pair, and the value is the address information for providing liquidity. For example:To provide liquidity for BTC and DOG•GO•TO•THE•MOON, the environment variable is configured as
POOLS_BTC_DOGGOTOTHEMOON:addrIf BTC and DOG•GO•TO•THE•MOON are provided liquidity from different addresses (e.g. you're using Xverse wallet), the environment variable is configured as
POOLS_BTC_DOGGOTOTHEMOON:addr1,addr2Multiple trading pairs can be configured, but one address can only be configured for one trading pair.
Note that Token names should not contain the • symbol.
SINGLE_LIQUIDITY_POOLS_BTC_TOKEN: Single-sided liquidity pool address configuration. Supports one or two addresses (comma-separated). Example:SINGLE_LIQUIDITY_POOLS_BTC_USDCSTARKNETTEST: addr1,addr2Do not use special symbols (such as
•) in env variable names.
TAKER_MNEMONIC: The wallet mnemonic phrase for allowing the independent Nexus instance to sign transaction and swap.TAKERS_BTC_TOKEN: Same likePOOLS_BTC_TOKEN
If MPC_SIGNER=safeheron, see Safeheron Configuration for the complete variable list and key format options (PEM content or file path).
Configuration Example
Pay attention to the indentation level of the YAML configuration to ensure it is correct. If the value of a configuration item is a multi-line string, use | or > correctly to maintain the format and follow YAML's indentation rules.
Start Service
Check the docker-compose version; it needs to be greater than 1.21.0.
Execute the following command in the terminal to start DOTSWAP DEX:
Access Service
After successful startup, you can access it via http://:17610.
Security Operations
Security Hardening
After you have confirmed that your node is deployed and running stably, you must perform the following critical step:
Remove SSH Access Rule: Return to your firewall settings and delete or disable the rule allowing SSH (port 22) access that you created in Stage 1.

How to manage the server after closing SSH? You will no longer connect via public SSH. Instead, you should rely exclusively on the secure, in-browser management tools provided by your cloud provider (e.g., AWS Session Manager, Linode Lish Console), which is the industry-recommended best practice.

Never expose your private keys/mnemonics. And take the security of your server seriously.
Last updated