Installation Documentation - xScorts

 

 

Version

Description

Date

Version

Description

Date

2.0.0

Updated software requirements for v2.1.0

08 Oct 2024

1.1

Update nginx config

17 Aug 2022

1.0

Initial document

30 Dec 2021

I. Server requirement

xScorts needs a VPS server with at least:

  • 4GB of RAM

  • 40GB of HDD

  • 2 CPU core

  • 3 domains / sub domains

    • api.[your-domain] and point to server IP address

    • admin.[your-domain] and point to server IP address

    • [your-domain] and point to server IP address

II. Software requirements

xScorts architecture needs these softwares

Ensure all softwares above are running before setup source code

Helpful links

Testing

From command line / terminal please run these commands to check

1. NodeJS

$ node -v v16.3.2

2. MongoDB

$ mongo --version MongoDB shell version v4.0.7 git version: 1b82c812a9c0bbf6dc79d5400de9ea99e6ffa025 allocator: system modules: none build environment: distarch: x86_64 target_arch: x86_64

3. Redis server

$ redis-server --version Redis server v=5.0.4 sha=00000000:0 malloc=libc bits=64 build=d4ba11298acbb366

4. FFMPEG

5. NGINX

6. Pm2

7. Yarn

III. Setup and test project locally

We provide source code with 4 folders, check below and use in the app accordingly

  • user web frontend (front office)

  • admin backend (back office), admin control panel

  • api api of the app

  • config-example

    • env product environment example config

    • nginx nginx config example

1. API

  • Ensure node v16.x, MongoDB, Redis server, FFMPEG and yarn are running

  • CD to your API folder

  • Run yarn to install nodeJS dependencies. Make sure your NODE_ENV is not production or run yarn install --production=false to install both dependencies and devDependencies

  • Create new .env from config-example > env > api.env in the root dir


    image-20241011-103601.png

  • Content looks like below

  • Check Migration point and seed default data

  • Run yarn start:dev to start development env

 

  • Open browsers and run http://localhost:8080 it should show success message or Hello World!

2. User Frontend web

  • Ensure nodejs and yarn are running

  • From user root directory run yarn to install nodeJS dependencies. Make sure your NODE_ENV is not productionor run yarn install --production=false to install both dependencies and devDependencies

  • Create .env file from config-example > env > user.env and edit information accordingly. Content looks like below

  • Run yarn run dev to start development env

  • Then you can open browser http://localhost:8081 to see the web

3. Admin web

  • Similar Frontend web, same steps.

  • CD to admin fodler

  • Create .env file from config-example > env > admin.env and edit information accordingly. Content looks like below

  • You should change default port with yarn run dev -p 9001 then open http://localhost:8082 to see your admin app

IV. Setup and setup production environment with nginx

1. API

  • Make sure you have installed nodeJS dependencies by yarn command or run yarn install --production=false to install both dependencies and devDependencies

  • In API root directory, run yarn build

  • Testing by run command yarn start:prod or node dist/main.js

  • Run pm2 start dist/main.js --name=api to run API under background

Or run pm2 start yarn --interpreter bash --name xscorts-api -- start:prod to run application under port 8080

Note: If have error when starting with Pm2, please try to start without interpreter

2. Frontend web

  • Make sure you have installed nodeJS dependencies by yarn command or run yarn install --production=false to install both dependencies and devDependencies

  • Run yarn build

  • Testing by run yarn start or node dist/index.js it should show success message

  • Run export NODE_ENV=production

  • Run export PORT=8081

  • Run pm2 start dist/index.js --name xscorts-web -- start to run application

3. Admin web

  • Similar Frontend web, same steps. Make sure all node dependencies are installed or run yarn install --production=false to install both dependencies and devDependencies

  • Run yarn build

  • Run export NODE_ENV=production

  • Run export PORT=8082

  • Run pm2 start dist/index.js --name xscorts-admin -- start to run application

4. Setup nginx

a. Api

  • Let say our api code is in /var/www/api.xscorts.info folder and api is running under port 8080, add new file in /etc/nginx/sites-enabled/api.xscorts.info and content as bellow

  • You have to change with our server name and source code path

b. Frontend

  • Let say our frontend code is in /var/www/xscorts.info folder and Frontend app is running under port 8081, add new file in /etc/nginx/sites-enabled/xscorts.info and content as bellow

  • You have to change with our server name and source code path

c. Admin

  • Let say our frontend code is in /var/www/admin.xscorts.info folder and Frontend app is running under port 8082, add new file in /etc/nginx/sites-enabled/admin.xscorts.info and content as bellow

  • You have to change with our server name and source code path

d. Testing

5. Check applications are running under pm2

  • Run pm2 ls to see your applications

  • Run pm2 stop [id] to stop app or pm2 reload [id] to reload

  • Run applications in start up by pm2 startup then pm2 save

6. Set up nginx with https

7. Migration

  • From API root directory run yarn migrate to seed default values for settings and users

    • Default admin: admin@[yourdomain] with domain is in .env file

    • Default password: adminadmin

    • If admin password is wrong, you can run node script reset-admin-pw to reset it to adminadmin

  • You can change default values in src > migrations folder