FAXES Documentation > Product Documentation > The Bot Portfolio

The Bot Portfolio

Hyperz

The Bot Portfolio is aimed to bring all of your bots to one location. With a list of bots and the ability to view bot developers bots, this website makes finding bots easy. Find your-self always looking for new things to add to your server? Find it all in one location with custom bots. The Bot Portfolio just makes your development skills shine!

To have The Bot Portfolio installed for you please visit https://support.faxes.zone

Requirements:

  • Server to host the site

  • Nginx, Apache or similar web-server software

  • Node.Js

  • MySQL Server

  • Domain

  • SSL

If you don't have any of the above, it's okay, that's also in the guide!


Installation

This installation guide covers installing the requirments, if you already have the requirements skip to step Step 3 - Nginx Configuration.

The installation guide uses Ubuntu (Linux) as the method of installation as The Bot Portfolio can run smoother and more efficient on a Linux system.

Step 1 - Installing a LEMP stack

This step will cover installing most of the requirements needed to operate The Bot Portfolio. We used this guide as reference.

This step is a quick run through of the installation. For detailed steps view the referenced guide.

Ensure your system is up to date and install Nginx

sudo apt update
sudo apt install nginx

Install MySQL Server

sudo apt install mysql-server

Setup your SQL server

sudo mysql_secure_installation

Step 2 - Installing Node & NPM

View this guide for further detail.

Run the below commanmds by themselves and not together

sudo apt update
sudo apt install nodejs
sudo apt install npm

Step 3 - Nginx Configuration

As The Bot Portfolio uses Node.Js to operate we need a proxy in Nginx so we can direct it to the webserver. In your Nginx confiuration file; /etc/nginx/sites-available/default

server {
    
  server_name example.com; # Change domain to yours
    
  location / {
    proxy_pass http://localhost:3000; # Change the port if needed
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header Host $host;
    proxy_cache_bypass $http_upgrade;
    proxy_set_header X-Real-IP $remote_addr;
  }    
}

Now restart Nginx

sudo systemctl restart nginx

Once saved use certbot to create an SSL.

Run below commands one by one. From this guide.

sudo add-apt-repository ppa:certbot/certbot
sudo apt install python-certbot-nginx

sudo certbot --nginx -d example.com

Then pick the second option (2) to ensure everything is redirected to HTTPS.

Run sudo certbot renew --dry-run to make sure your SSL auto-renews.

Step 4 - Installing packages.

Extract your copy of The Bot Portfolio to /home/botportfolio.

Now in a screen session navigate to your Bot Portfolio directory with the CD command.

cd /home/botportfolio`

Install the packages required to run The Bot Portfolio

npm i

Step 5 - Configuration and Startup

Now edit the config.json to your liking. Read below for what everything means.

Once configured run the below to start the application

node .

Configuration Variables

siteInformation

Variable Name Description Type Default Value
processPort The port you want the Node process to operate on. This must be the same as your Nginx configuration. Number 3000
domain The domain that your site is operating on. Ensure there's no trailing forward slash. String "http://localhost:3000"
adminUsers A list of Discord IDs that can access the admin panel. Array "OWNER_IDS"
apiSecret The API secret to avoid API Abuse. String "API_SECRET_KEY"

tokens

Variable Name Description Type Default Value
oAuth2ClientId The application Id. Used fore logins. String ""
oAuth2ClientToken The Client Secret of the application. Used for logins. String ""
faxesLicenseKey The license key to authorize the application. String ""

Generate the key at http://license.faxes.zone.

SQLInformation

Variable Name Description Type Default Value
host The hostname for the SQL server. Leave as default if the SQL server is on the same machine. String "localhost"
username The username for the SQL server. String "root"
password The password for the SQL server. String ""
database The database name for the SQL server to use. String "botportfolio"

These are the buttons to display on the navbar of the page.

img


Was this article helpful?

101 out of 210 found this helpful