Get Started

Last updated: 4 months ago

Overview

CryptEx is a multi-featured peer to peer, self hosted cryptocurrency exchange platform. If you have ever used popular exchange platforms like paxful or localbitcoin, and you wanted to step a business as such. Look no further... With an interactive, responsive and flexible design, we give you CryptEx. Unlike no other Cryptocurrency exchange scripts out there, we support self hosted wallets, where you get to provide free wallet service along side peer to peer interactive exchange.

The cryptocurrencies supported at the moment are Bitcoin, Dash and Litecoin, we could take more of your time if we literally list out all its features here, so we leave that to the sales page.

For more information about the features of CryptEx please visit the sales page using the button below.

Here, you will find all the necessary information as regards to the installation and usage of the app. Feel free to check the FAQS section, you may discover one or two things which could be of benefit to you.

Sales Page

Installation

Requirement

Server/PHP Version We strongly advice that you get a VPS or Dedicated LINUX server running a minimum required PHP version of 7.2.0. So your server should run PHP 7.2.0+
Bcmath PHP bcmath extension must be installed and enabled.
gd PHP gd extension must be installed and enabled. This is used by the application for Image processing
gmp PHP gmp extension must be installed and enabled.
allow_url_fopen Value of allow_url_fopen setting in your php.ini file must be On. allow_url_fopen=On
mod_rewrite mod_rewrite module must be available on your apache server.
OpenSSL PHP OpenSSL extension must be installed and enabled. This is required for secure data encryption. OpenSSL version must be 1.0.1c or above.
PDO PHP PDO extension is required to create secure connection to MySQL server.
Tokenizer PHP Tokenizer extension must be installed and enabled.
Mbstring PHP mbstring extension must be installed and enabled.
XML PHP XML extension must be installed and enabled.
Ctype PHP Ctype extension must be installed and enabled.
JSON PHP JSON extension must be installed and enabled.

If you are using a cPanel hosted server, you may need to do the following to configure your PHP software

  • On your cPanel Main Page, Click on Select PHP Version | Extensions.
  • Click the Version select box and select php version 7.2
  • Click on Set as Current.
  • In the check box immediately below, chose the above required extensions
  • Click save.

While in some cases you may need to take the following extra step.

  • Go back to cPanel Main Page, Click on MultiPHP Manager
  • Select the domain to the Script
  • At the top right, open the dropdown menu tagged PHP Version, and select ea-php72
  • Then click Apply.

Permissions

Certain folders require special permissions. It will be stated during the installation wizard. Meanwhile, the following steps will show you how to change folder permissions on cPanel

  • Open the File Manager tool in cPanel and navigate to the file or folder that you need to change.
  • Click on the file/folder name. Then click on the Change Permissions button in the top menu of the File Manager page.
  • Click on as many check boxes as you require to create the right permission. The permission numbers underneath the check boxes will update automatically.
  • Click on the Change Permissions button when you are ready. The new permission level is saved and the display updated to show the modified file.

Upload & Install

The rest of the process is very easy and you may finish all process just in 2 minutes. Please read the following guide carefully.

Upload
  1. Upload the downloaded zip archive which contains all necessary files of app to any directory in your web hosting.
  2. Obtain a domain or subdomain and make sure it is pointed to the (/public) folder of the extracted location /(extracted location)/public/

    Warning!

    Do NOT access your site in this manner. example.com/public/. The domain example.com should be pointed directly inside of the public folder. If you attempt, you are at the risk of exposing sensitive data used for encryption of your data.

Install
  1. Visit your already set domain or subdomain as stated above to begin the installation
  2. At this stage, you should be asked of a few details, like your purchase code, database information, e.t.c. Take note of the following tips while setting up
    • Select your appropriate timezone.
    • By setting your mail server as SENDMAIL the script will try to use your servers default mail client to send mails, without the need of getting an SMTP server.
  3. BitGo & Pusher are both required at the point of installation. Refer to their sections at the bottom of the page to learn how to obtain the required API details
  4. Use any of the following default details to access the application dashboard.
    1. Role: Admin
      • Username: admin
      • Password: 123456
    2. Role: Moderator
      • Username: moderator
      • Password: 123456
    3. Role: User
      • Username: user
      • Password: 123456
  5. It is important that the root of your site must not be access by the external world, this is why we have directed that your domain should be pointed directly into public folder and MUST NOT be accessed in the manner of example.com/public/. The files located in the root are used for encryption of your site data. If it is exposed to the public, you are more vulnerable to attack.

    To ensure that the root of your server is not exposed, you should create a .htaccess file in the root, and save this entry into it. This is supported by apache only, you should convert to its equivalent on nginx
    #Disable index view
    options -Indexes
    
    #Hide a Specific File
    
    order allow,deny
    Deny from all
    

Cron Job

Ensure that this is properly setup, because without this, the script will not function.

  • Complete cron task should be similar to the following. Because of the differences in servers, we have listed out possible linux commands
    • * * * * * php /path-to-your-installation/artisan schedule:run >> /dev/null 2>&1
    • * * * * * /usr/local/bin/php /path-to-your-installation/artisan schedule:run >> /dev/null 2>&1
    • * * * * * /opt/php71/bin/php /path-to-your-installation/artisan schedule:run >> /dev/null 2>&1

    Information!

    The text /path-to-your-installation/ from above refers to the absolute path to your script.
    (e.g cPanel: /home/<username>/public_html/... )

  • The last part of the cron command >> /dev/null 2>&1 is used to disable the output of the cronjob. However some servers may see it as syntax error, simply change it to >/dev/null 2>&1
  • If you are unable to get it running, remove the last part used to disable output of the cron command (see above), and check the output you get.
  • How do you know if it is running? You can check its status at: Admin Panel >> License.

SMS

After successful installation, you may want to setup your sms notification channel in the administration section. Currently we give support for two sms channels which are listed below, along side details on how to integrate with it.

We will be adding more notification channels with time. Suggestions of preferred notification channels is highly welcome.

See the references below on how to obtain appropriate API keys for these services.

  • Nexmo: It supports many countries. However, you should check for the availability of your country before you proceed
  • Africas Talking: It supports mainly african countries.

Mail

You should integrate with any preferred mail provider using SMTP, just fill in your SMTP details during the installation or after (you can do this in the administration settings).

However, you may choose to use the built-in mail provider on your server (SENDMAIL), simply select this option during or after installation. This is definitely not recommended, since there could be some limitations with its usage.

Broadcast

Broadcast is the medium the platform uses for real time data transfer. This is required for realtime chat, realtime notifications, e.t.c

We have provided two possible medium to achieve this. One uses a third party service while the other requires direct installation on your server. More information is provided below.

See the references below on how to setup and obtain appropriate API keys for these services.

  • Pusher: is a third party channel that provides real time communication between client and servers. You should purchase a subscription package in order to use.
  • Socket.IO: is a library that enables real-time, bidirectional and event-based communication between the browser and the server. This is completely FREE to setup and it is independent of any third party.

Blockchain

The application needs to connect to the blockchain network in order to create wallets and perform cryptocurrency transactions. We have successfully integrated with BitGo services. See the references below on how to setup your application with BitGo services

Important!

If your previous installation is of version 1.x.x we strongly recommend that you run a fresh installation for version 2.0.0 and above because of the breaking changes which is a result of the integration with BitGo services. If you already have an active set of users, you may need to do that on a separate server and inform them about moving coins into the new server.

Upgrade Instruction

Manual

  • 1.0.0 to 2.0.0

    We strongly recommend that you run a fresh installation for version 2.0.0 and above because of the breaking changes which is a result of the integration with BitGo services. If you already have an active set of users, you may need to do that on a separate server and inform them about moving coins into the new server.

Automatic

  • Coming Soon!

Integration

BitGo SDK

  • Setup BitGo JavaScript SDK
    1. Requirements:
      1. Linux Server with Root Access (You should use the same server that hosts the application, for security purpose)
      2. Node 6.0+ (with NPM) & Git
    2. SSH into server, and execute the following code.

      git clone https://github.com/BitGo/BitGoJS

      cd BitGoJS

      npm install

    3. So we are going to start the server based on the type of environment you are running on. Navigate to "bin" folder which is located inside of BitGoJS folder. i.e cd bin

      To start in Test Environment.

      ./bitgo-express --port <port> --env test --bind <domain>


      To start in Production Environment.

      ./bitgo-express --port <port> --env prod --bind <domain> --disablessl


      Replace <port> with 3080 if it has not been taking, or you may set with whatever you wish as long as the server is opened with the range of the port.
      Replace <domain> with localhost if you are installing on the same server as the script. Otherwise, you should set the domain of the server.

      Warning!

      Installing & Running BitGo SDK on a different server from the script poses risk of the exposure of sensitive data to eavesdropper because SSL is disabled in the command above. If you insist on running on a different server, you may need to refer to the official BitGoJS doc on how you can setup SSL with the installation.

    4. After running the above command to start the BitGo SDK server in your preferred environment, you would want to ensure that it is running all the time.
      • Stop the BitGo SDK server, if already started.
      • Navigate to the bin directory inside of the BitGoJS folder and create a new file, say prod.sh
      • Copy, Replace & Paste this into the file, where <command> is the command used to start the BitGoJS in your preferred environment as mentioned in the previous step.
        #!/usr/bin/env bash
        
        <command>
        
        For instance, to keep the server running in production environment, you will have the following file.
        #!/usr/bin/env bash
        
        ./bitgo-express --port <port> --env prod --bind <domain> --disablessl
        
        where <port> and <domain> remains the same as the previous step.
      • Save.
      • Now install pm2 by running the following command: npm install pm2 -g
      • After successful installation, run the following command to start and keep the environment running. pm2 start prod.sh
    5. The following are the information you will need to integrate with the application.
      • Host/Domain: The domain from the previous steps used to start the SDK server. If it is running on the same server as the application, you should use http://localhost as the domain.
      • Port: 3080 or otherwise as specified in the setup from above.
      • Long Lived Access Token: Refer to the next section on how to acquire it.
  • Generate Long Lived Access Token
    1. Logon to the appropriate BitGo dashboard depending on the environment you want to setup on.

      Test: Uses testnet chain. Sign up & Login Here
      Production: Uses main chain. Sign up & Login Here

    2. Click your account name at the top right, click User Settings.

    3. Under Developer Options tab, click on Create Access Token.

    4. Generate a long lived token for your installation on this page.

      1. (Required) Set the label & live time of your token. You have ten years entered by default.
      2. (Required) Set the Lifetime Spending Limits of the token. You may set a maximum of 100000000 for all coins.
      3. (Required) Enter the unique IP address of your server where the official BitGoJS Javascript SDK has been installed. (see above)
      4. (Required) Grant the token all permissions as shown below

Sparkpost

  1. Login or Create an account on Sparkpost

  2. You can choose any of the two options SMTP or REST API.

  3. From your dashboard, choose the option to create an app so that you can get your API key

  4. Fill all the necessary fields

  5. Copy your API key.

Google reCaptcha

  1. Sign in with your google account on here

  2. Scroll down to register a new site

  3. A pair of keys is generated for you...

Pusher

  1. Login or Register on Pusher

  2. In your dashboard, click on create new app.

  3. Enter the name for your app

  4. Select a cluster, i.e. a server that handles requests from your channel app.

  5. Specify the application environment, i.e Production.

  6. Choose your front end framework as Jquery and Laravel as your backend framework.

  7. Enter a description for your app and click on create my app to set it up.

  8. Click on the App keys tab and copy your credentials.

Socket.IO

    Requirements
    1. Node 6.0+
    2. Redis 3+
  1. You have to make sure that both Node.js and Redis are both installed on your server.
  2. Go to to your Laravel root directory and run the command on your terminal. npm install laravel-echo-server -g

  3. In your laravel root directory, edit the file named laravel-echo-server.json and change the following details to yours.

    • authHost
    • redis
  4. If Redis is not installed on your local server, enter your server's redis url in the redis field indicated in the image below in the format redis://user:password@host:port. Replace user with your user and password with your password, host with your host and port with your port.

  5. Then start your server with the command laravel-echo-server start

  6. Another option to make sure that the server is always running is by using pm2. Install pm2 with the npm command npm install pm2 -g and then you can start the server with the command pm2 start socket.sh

Nexmo

  1. Log in or register on Nexmo

  2. For signing up, enter your details and it is required that you use a business email address.

  3. Verify with your email address and phone number.

  4. While in your dashboard, you need to copy your "key", "secret", and "from".

African is Talking

  1. Log in or register on Africa is Talking

  2. After you have signed up and have done the necessary verifications.

  3. To be able to create an app, on your dashboard, you need to create a team first.

  4. After that, you then create an app.

  5. Click on your app name to get the necessary details of the app.

  6. From the dashboard on the right, click on the Settings tab to find your API key.

  7. Enter your password to confirm its you and to be able to get your key.

  8. Copy your key.