In this tutorial, we will deploy OpenDAX3 - an open-source cloud-native cryptocurrency exchange software platform on the Digital Ocean cloud.
Apr 20 2021 | TutorialHello, world!
In this tutorial, we will deploy OpenDAX3 - an open-source cloud-native cryptocurrency exchange software platform on the Digital Ocean cloud.
OpenDAX™ stands for Open-Source Digital Assets Exchange is an open-source software which allows users to build a fully featured exchange service to facilitate trading of digital assets and cryptocurrencies.
Digital Ocean is a cloud infrastructure provider which will host the OpenDAX platform on its servers.
So, let's get started!
Sign up on Digital Ocean with your email or with Google or Github.
After signing in, set up the payment methods. Digital Ocean only allows credit cards or Paypal for now.
After providing the necessary details, you might have to top up with at least $5 dollars to proceed forward. There is also a free 100 dollar credit offer(https://try.digitalocean.com/freetrialoffer) from which you can sign up using your email.
Once you are set up with payments. Digital Ocean redirects to their dashboard, where you can create a new OpenDAX project. On the left-hand side, you will see a (+)new project button. Click on it, and you will see the following window
Fill up the fields and click on the green Create Project button, which will bring you to move the resources panel. Since we are
using the Digital ocean from scratch, there are no existing computing resources. We will click on the skip for now option.
After clicking skip for now, there is an option to get started with a new droplet for hosting your OpenDAX platform. Click on it
We are using Debian 9 for this tutorial.
We have chosen 4GB, 80GB, 2CPU's for this tutorial, but the recommended requirements for OpenDAX are 12GB,8 CPU's, 300GB SSD disk space.
We are attaching block storage of 100GB to the VM for handling large OpenDAX project files.
Authentication will be done using SSH keys. I have already created my own key named hmehndiratta, but you can click on add a new SSH key and follow these digital Ocean instructions on How to Add SSH Keys to Droplets
Leave other options to default and scroll down to select a project as OpenDAX3, and click on the green create droplet button.
Now the Droplet/VM would become ready and would have a public IP assigned(This one has 64.227.103.148)
To make the OpenDAX platform available to users. The Digital Ocean droplet has to be mapped to domain (www.example.com) which users will reach. There are many domain registrars available like GoDaddy, NameCheap, Hostgator, which provide domain names at easy rates. We are choosing Namecheap for this tutorial.
Setting up a domain is easy with NameCheap search for the desired domain name and buy. The domain will be activated just after the payment is made.
We have bought an OpenDAX testing domain called www.testopendax.xyz, which is active and running.
For connecting the domain to the digital ocean droplet, we have to add digital ocean name servers as a custom DNS*. For more detailed instructions, follow this guide from Namecheap
*Changes might take 24-48 hrs to reflect.
In your OpenDAX3 Digital ocean project, Click on the upper right create button and choose Domains/DNS.
Add Domain and Nameservers
Enter the domain, specify the OpenDAX3 project and click on add domain button
Now the domain (testopendax.xyz) redirects to nameservers mentioned in the Namecheap DNS settings.
Enter a hostname. In this case, we have entered "www" which will automatically add testopendax.xyz at the end of it, as shown in the screenshot. Choose the recently created droplet for redirection, leave TTL to default(3600) and click create a record.
Now the droplet is connected to the Namecheap Domain and directs to Droplet IP as shown in the DNS records list.
To check the connection between the domain and droplet IP, open https://whatismyipaddress.com/hostname-ip and enter your domain name. It should show your droplet IP.
Once the droplet is setup and the domain is connected to the droplet. We have to start the deployment of OpenDAX on droplet.
Open Terminal/Command Prompt on your local computer and ssh as an administrator into the droplet using this command
ssh root@<droplet IP>
It will ask you to continue connecting say Yes, and you will see the following result.
We highly recommend installing using docker and docker-compose from the below links if you are using a different Linux distribution.
Docker Installation instructions
Docker Compose Installation Instructions
But If you are using Debian, execute these commands in order.
1. Update the apt package index and install packages to allow apt
to use a repository over HTTPS:
sudo apt-get update
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg \
lsb-release
2. Add Docker’s official GPG key:
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
3. Command to set up the stable repository.
echo \
"deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
4.Update the apt
package index, and install the latest version of Docker Engine and containerd,
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
Once all the above commands are executed. Run this command to check docker is installed.
docker ps
You should see the following result.
1. Run this command to download the current stable release of Docker Compose:
sudo curl -L "https://github.com/docker/compose/releases/download/1.28.5/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
2. Apply executable permissions to the binary:
sudo chmod +x /usr/local/bin/docker-compose
For example:
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
3.Test the installation.
$ docker-compose --version
docker-compose version 1.28.5, build 1110ad01
OpenDAX is build using Ruby programming language, which has to be installed before cloning the OpenDAX repository.
Instructions
1.Dirmngr package has to be installed to add Ruby's GPG key
sudo apt-get install dirmngr
2. Add Ruby's GPG Key
gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
3. Get Ruby Version Manager(RVM)
curl -sSL https://get.rvm.io | bash -s stable
Clone the OpenDAX repository using the following command
git clone https://github.com/openware/opendax.git
After successful cloning, The output would be -
1. Close and restart the terminal window for Ruby Installation to take effect.SSH into droplet and navigate into Opendax directory using the command-
cd opendax
2. Once you navigate to the opendax directory, It will ask you to install ruby version 2.6.6, something like this
3. Install Ruby 2.6.6 and Bundler 2.1.4 package for installing OpenDAX ruby packages.
Command for Ruby
rvm install "ruby-2.6.6"
Command for Bundler
gem install bundler:2.1.4
1. Make sure you are in the OpenDAX directory to install OpenDAX dependencies using the following command
bundle install
1. In the opendax directory, navigate to the config folder using
cd config
and edit the app.yml using
nano app.yml
2. app.yml will look something like this
There are many variables to configure here, such as images,finex, and KYC, for better functionality, but for this tutorial, we will only configure the essential ones to get the platform started
Fields such as the domain, subdomain, and SSL has to be configured.
domain: testopendax.xyz (your domain name)
subdomain: www
ssl
enabled: true
After editing, the app.yml will look like this
Make changes to the file by hitting CTRL+X, typing y, and clicking enter.
Navigate back to the Opendax directory using the command
cd -
Fire all the OpenDAX dependencies using
rake service:all
This will take up to a minute or two.
After completion of the command, the terminal output would look something like this.
To open the OpenDAX UI. Enter the registered domain(www.testopendax.xyz) in the browser.OpenDAX platform would be fully functional and accessible.
Login with the given email and password or use the following default users for the demo.
Email: [email protected], password: 0lDHd9ufs9t@
Email: [email protected], password: Am8icnzEI3d!