OpenDAX is a multi-service container system for building your crypto-currency exchange
DigitalOcean, Vultr, GCP, AWS or any dedicated servers Ubuntu, Debian, Centos would work
SSH using root user, then create new user for the application
useradd -g users -s `which bash` -m app
We highly recommend using docker and compose from docker.com install guide, do not use the system provided package which would be deprecated.
su - app
git clone https://github.com/openware/opendax.git
gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
curl -sSL https://get.rvm.io | bash -s stable
rvm install .
rake -T # To see if ruby and lib works
rake -T you can see all available commands, and can create new ones in
Edit the file
Replace the license key in this block:
If using a VM you can point your domain name to the VM ip address before this stage.
Recommended if you enabled SSL, for local development edit the
Insert in file
You can login on
www.app.local with the following default users from seeds.yaml
Email: firstname.lastname@example.org, password: 0lDHd9ufs9t@
Email: email@example.com, password: Am8icnzEI3d!
All the OpenDax deployment files have their confguration stored in
Feel free to fill it out with correct values:
|Global application name
|Base domain name to be used
|Enable SSL certificate generation
|Email address to use for SSL generation requests
|Application images tags
|Frontend application Git repo URL
Once you're done with the configuration, render the files using
rake render:config. You can easily apply your changes at any time by running this command.
Note: be sure to append all the subdomains based on app.domain to your
/etc/hosts file if you're running OpenDax locally
The OpenDax stack can be brought up using two ways:
The components included in the stack are:
proxy - Traefik, a robust cloud native edge router/reverse proxy written in Go
backend - Vault, MySQL, Redis and RabbitMQ grouped together
cryptonodes - cryptocurrency nodes such as parity [Optional]
daemons - Peatio daemons and Ranger [Optional]
setup - setup hooks for Peatio and Barong to run before the application starts(DB migration etc.)
app - Peatio, Barong and the Ambassador API gateway
frontend - the frontend application located at
tower - the Tower admin panel application located at
For example, to start the
backend services, you'll simply need to run
Note: all the components marked as [Optional] need to be installed using
rake service:*component*[start] explicitly
Go ahead and try your deployment on www.your.domain!
Any component from the stack can be easily stopped or restarted using
rake service:*component*[stop] and
rake service:frontend[stop] would stop the frontend application container and
rake service:proxy[restart] would completely restart the reverse proxy container.
Each component has a config file (ex.
config/frontend/tower.js) and a compose file (ex.
All config files are mounted into respective component container, except from
config/app.yml - this file contains all the neccessary configuration of opendax deployment
Compose files contain component images, environment configuration etc.
These files get rendered from their templates that are located under
config/app.yml with correct image and run
This will rerender all the files from
templates directory and restart all the running services.
Alternitavely you can update the following files:
config/*component*/*config* and run
if you want the changes to be persistent, you also need to update
# Delete all generated files
git clean -fdx
# Re-generate config from config/app.yml values
# Restart the container you need to reload config
docker-compose up frontend -Vd
docker-compose -f compose/vendor.yaml up -d
You can easily bring up Opendax from scratch on Google Cloud Platform using Terraform!
To do this, just follow these simple steps:
app.yml with correct values
To destroy the provisioned infrastructure, just run
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/openware/opendax/master/bin/install)"