Setup

This section requires a full exchange configuration through bitHolla Dashboard, HollaEx Kit folder as well as HollaEx CLI installed on your machine. Please check Get Started and Installation sections if you haven't already done these.

Exchange Server Initialization

If you are looking for a way to deploy HollaEx on Kubernetes, Please checkout Kubernetes docs available here.

You can now move on to initialize and setup your exchange by using the command below:

hollaex setup

You could alternatively do the automated downloading part for exchange configurations manually. Please check this page to see how. It is not recommended for most of users.

The CLI will ask your credentials for bitHolla Dashboard to login. You will be able to select your exchange through CLI once it's done. The CLI will automatically download your exchange configurations from bitHolla Dashboard.

The CLI will immediately proceed to build a custom HollaEx Core image based on your HollaEx Kit configuration. This custom image includes a /mail folder and /plugins folder in your HollaEx Kit. Both components can be customized based on your needs.

It is possible to set a custom name for the built image. We recommend you push the image to your docker registry as a backup for future usage and history.

Note: For Kubernetes deployment you require to host your image on a docker registry.

Once it's all done, Press Y again to bring up the docker containers and configurations.

The CLI then creates Docker containers for your exchange's server, currencies, and trading pairs that you configured at bitHolla Dashboard. This process typically takes few minutes so be patient!

Once the hollaex setup process is done, you will have to manually start the exchange. Simply run the command below to actually start up the exchange.

hollaex start

You can see the exchange status briefly by using hollaex status command once exchange is up.

Checking exchange

After starting your exchange, you can reach it through your web browser via the endpoints /v1/health and /v1/constant.

This API displays your exchange's name, HollaEx Core version number, host URL, base URL, and activation status.

This API shows the list of currencies and trading pairs that you have on your exchange. You would be able to see all currencies and trading pairs you configured through the bitHolla Dashboard. If you don't see a list of your currencies or trading pairs, restart the exchange by running the command hollaex restart. If that doesn't solve the issue, you can always bring it up to our forum.

You can view the API documentation for the exchange here.

Bringing up the Exchange website

HollaEx Kit provides a web client server as an open source project for a HollaEx Kit exchange. It's included in the /web directory of your HollaEx Kit. The default client contains everything needed for your exchange but feel free to customize it based on your needs. Check here to see more about web customization.

hollaex web --setup

This command will build the web client Docker image and do the initialization jobs for it. The build process could take longer than 5 minutes depends on your system resources. Hold tight with patient!

During the build, There could be warnings and errors printed by the npm package manager. Most of them would not going to affect the build process itself. You could ignore them unless the build procedure gets killed.

Once it gets all set, Simply starts it by using the command below.

hollaex web --start

You'll be able to reach it by using the domain that you configured earlier through the bitHolla Dashboard. If you are running it locally, go to the localhost:8080 url mentioned below.

Please check here to see more about hollaex web command sets.

You could also read more details at here, including how to customize the web client, how to do a manual build, and what are the system requirements.

Opening the exchange to the internet

Once you finished enough testing for the exchange, it is time to bring it up on the internet, with your own domain address. There's a command we've built to help you to expose the exchange to the public world.

You should own and have control (DNS settings) of it to run the command.

hollaex prod

There are 2 domains required for the exchange. One is for the exchange web, the other one is for the exchange API server. Provide the domain for the exchange web first. The CLI will automatically set the API domain based on the provided web domain. You could type 'N' on this menu and set the custom domain for API too.

The CLI will attempt to resolve the domains both for the web and the API. Once the test all get passed, You'll get the success message.

If it gets failed, the CLI will instruct about how to set up domain DNS. You could follow the guide from CLI to set up your domains and try the resolve test again.

Once the CLI successfully resolved both domains, you could issue SSL certificates for HTTPS connection for the next. Type 'Y' to continue. If you are planning to use an external load balancer with external SSL, or just want to skip it for now, type 'N'.

It runs hollaex toolbox --issue_ssl to start up the Let's Encrypt certbot. You'll see 2 domains both for the web and the API at the list. Select one of them to continue.

Since certbot only allows issuing single SSL per each, you should repeat the issuing process once again.

Your exchange would be reachable with the domains you've added, with SSL. Before jumping in the use, the web server should be rebuilt to prevent a communication issue between the API server. Run the command below to rebuild the web server image. You should type 'N' to not use the existing image.

hollaex web --restart