BoeClient - b2b cryptocurrency exchange made on Laravel Framework. It`s allows you to deploy your own crypto exchange in few minutes, but with some limitations (see below)
This project not allow you to have full control on exchange, cause it is only web part of complex architecture. That is why you will have some limitations:
- You can`t perform listing on your exchange
- You have no control on currency deposit and withdrawal statuses
- You have no direct access to crypto gateway
In other parts this exchange do not differ from others and you will have all functionality of normal exchange
Please check the official laravel 7.x installation guide for server requirements before you start. Official Documentation
Alternative installation is possible without local dependencies relying on Docker.
Clone the repository
git clone git@github.com:buyownex/boeclient.git
Switch to the repo folder
cd boeclient
Install all the dependencies using composer v2 for PHP 7
composer install
Install all the dependencies using composer v2 for PHP 8 with ignore flag of compatibility (due to incompatible of phpunit: phpunit/phpunit 8.5.9 requires php ^7.2)
composer install --ignore-platform-reqs
Copy the example env file and make the required configuration changes in the .env file
cp .env.example .env
Generate a new application key
php artisan key:generate
Run the database migrations (Set the database connection in .env before migrating)
php artisan migrate
Create the symbolic link to the public storage
php artisan storage:link
Make front-end build
npm install
npm run dev
Start the local development server
php artisan serve
You can now access the server at http://localhost:8000
TL;DR command list
git clone git@github.com:buyownex/boeclient.git
cd boeclient
composer install
cp .env.example .env
php artisan key:generate
Make sure you set the correct database connection information before running the migrations Environment variables
php artisan migrate
php artisan serve
To install with Docker, run following commands:
git clone git@github.com:buyownex/boeclient.git
cd boeclient
cp .env.example .env
docker run -v $(pwd):/app composer install
cd ./docker
docker-compose up -d
docker-compose exec php php artisan key:generate
docker-compose exec php php artisan migrate
docker-compose exec php php artisan storage:link
docker-compose exec php php artisan serve --host=0.0.0.0
- zendesk-laravel - For ticket system integration
- sanctum - For handling incoming API requests
- bacon-qr-code - For generating QR codes
.env - Environment variables can be set in this file
Specific variables to this project:
# API Server, that handles incoming requests. Use this demo server for test purposes.
SERVER=https://api.buyownex.com
MIX_WS_SERVER=wss://ws.buyownex.com/ws
API_PUBLIC_KEY=9ayqB8BIUTyhDkEFxoNzyAVCQv523Fx9ynUhlHvOka7PUCOn91PMbh560wROb66Gu8rgm3gqoJkrbCgv // demo public key for SERVER
API_SECRET_KEY=q2e78LdPopmKPVCaAwxrrNmXb1qWMD3WoY77F7glTzByWD4d8zQHcyPLunBJ5I2szzzrbbsQGG141yeO // demo secret key for SERVER
# Moble API keys
API_MOBILE_PUBLIC_KEY= // public key for mobile app (optional)
API_MOBILE_SECRET_KEY= // secret key for mobile app (optional)
# When you navigate to the main page, redirection occurs to the http://localhost/trading/{DEFAULT_MARKET}/{DEFAULT_CURRENCY} link
DEFAULT_MARKET=USDT
DEFAULT_CURRENCY=BTC
# Test server and credentials of KYC provider Sum&Substance. You can get own test account at https://sumsub.com/contact-us/
SUMSUB_SERVER=https://test-api.sumsub.com
SUMSUB_PUBLIC_KEY=
SUMSUB_SECRET_KEY=
# Zendesk credentials for ticket system. Get your own account at https://www.zendesk.com/register
ZENDESK_SUBDOMAIN=
ZENDESK_USERNAME=
ZENDESK_TOKEN=
# Is to use Geetest Captcha or not. It is recommended to use it. Disable it only if Geetest don`t work
CAPTCHA_ENABLED=true
# geetest ID and Key. Get your own account at https://www.geetest.com/en/
GEETEST_ID=
GEETEST_KEY=
# verification driver choice. Possible values: local or sumsub
MIX_KYC_DRIVER=local
# payment for verification option: false - payment excluded, true - payment included
MIX_VERIFICATION_PAYMENT_REQUIRED=false
Note : You can quickly set the database information and other variables in this file and have the application fully working.
