FAXES Documentation > Product Documenation > FaxDesk

FaxDesk

FAXES

FaxDesk is aimed to bring support to one location. With a full form creation and ability to view submitted forms FaxDesk makes it easy. Find your self always posting big articles? Bring it all to one location with custom categories too. FaxDesk just makes your support life easier!

To have FaxDesk 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 FaxDesk can run smoother and more efficient on a Linux system.

Step 1 - Installing a LEMP stack

This step will cover installing most of the requirments needed to operate FaxDesk. 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 FaxDEsk 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;
  }    
    error_page 502 /502.html;
    location = /502.html {
        root  /home/faxstore/public;
    }
}

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 FaxDesk to /home/faxdesk.

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

cd /home/faxdesk`

Install the packages required to run FaxDesk

npm i

Step 5 - Configuration and Startup

Now edit the config.json to your likeing. 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
siteName The site name. String "FaxDesk"
processPort The port you want the Node process to operate on. This must be the same as your Nginx configuration. Number 3000
siteDescription The description of your website. String "Demo FaxDesk"
siteThemeColor The HEX color value to make your sitre. This color is used in various places. String "#7289da"
siteLogo The file name for the website logo. Some may find it easier to replace the file itself. String "/assets/logo.png"
domain The domain that your site is operating on. Ensure ther's no trailing forwardslash. String "http://localhost:3000"

tokens

Variable Name Description Type Default Value
discordBotToken The Discord bot token. Used for user fetching and logs. String ""
oAuth2ClientId The application Id. Used fore logins. String ""
oAuth2ClientToken The Client Secret of the application. Used for logins. String ""
faxesLicenseKey The license key to authorise 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 naed fore the SQL server to use. String "faxdesk"

homePage

Variable Name Description Type Default Value
titleOne The top home page title. String "Need help? We got you fam!"
descriptionOne The text displayed under the first title. String ""
titleTwo The title displayed above the bottom buttons. String "Other ways to find us."
bottomButtons An array for buttons that are displayed at the bottom of the page. Array []
bottomButtons.title The title of the button. String ""
bottomButtons.description The description text used on the button. String ""
bottomButtons.link The link that the button directs too. Can be external or internal. String ""
bottomButtons.image The image link used for the button. String ""

autoReplies

Variable Name Description Type Default Value
autoReplies The auto replies for support requests. Array []
autoReplies.title The title of the autop reply. String ""
autoReplies.content Content that will be placed into the reply text box when clicked. String ""

discordConfig

Variable Name Description Type Default Value
useDiscordChannelLogs Whether to enable Discord channel logs. Boolean false
loggingChannelId The Discord channel Id used to log everything. String "CHANNEL_ID"