Weblutions Documentation > Product Documentation > FaxDesk

FaxDesk

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!

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 NameDescriptionTypeDefault Value
siteNameThe site name.[String][string]"FaxDesk"
processPortThe port you want the Node process to operate on. This must be the same as your Nginx configuration.[Number][number]3000
siteDescriptionThe description of your website.[String][string]"Demo FaxDesk"
siteThemeColorThe HEX color value to make your sitre. This color is used in various places.[String][string]"#7289da"
siteLogoThe file name for the website logo. Some may find it easier to replace the file itself.[String][string]"/assets/logo.png"
domainThe domain that your site is operating on. Ensure ther's no trailing forwardslash.[String][string]"http://localhost:3000"

tokens

Variable NameDescriptionTypeDefault Value
discordBotTokenThe Discord bot token. Used for user fetching and logs.[String][string]""
oAuth2ClientIdThe application Id. Used fore logins.[String][string]""
oAuth2ClientTokenThe Client Secret of the application. Used for logins.[String][string]""
faxesLicenseKeyThe license key to authorise the application.[String][string]""

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

SQLInformation

Variable NameDescriptionTypeDefault Value
hostThe hostname for the SQL server. Leave as default if the SQL server is on the same machine.[String][string]"localhost"
usernameThe username for the SQL server.[String][string]"root"
passwordThe password for the SQL server.[String][string]""
databaseThe database naed fore the SQL server to use.[String][string]"faxdesk"

homePage

Variable NameDescriptionTypeDefault Value
titleOneThe top home page title.[String][string]"Need help? We got you fam!"
descriptionOneThe text displayed under the first title.[String][string]""
titleTwoThe title displayed above the bottom buttons.[String][string]"Other ways to find us."
bottomButtonsAn array for buttons that are displayed at the bottom of the page.[Array][array][]
bottomButtons.titleThe title of the button.[String][string]""
bottomButtons.descriptionThe description text used on the button.[String][string]""
bottomButtons.linkThe link that the button directs too. Can be external or internal.[String][string]""
bottomButtons.imageThe image link used for the button.[String][string]""

autoReplies

Variable NameDescriptionTypeDefault Value
autoRepliesThe auto replies for support requests.[Array][array][]
autoReplies.titleThe title of the autop reply.[String][string]""
autoReplies.contentContent that will be placed into the reply text box when clicked.[String][string]""

discordConfig

Variable NameDescriptionTypeDefault Value
useDiscordChannelLogsWhether to enable Discord channel logs.[Boolean][bool]false
loggingChannelIdThe Discord channel Id used to log everything.[String][string]"CHANNEL_ID"

[array]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array

[string]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String

[hexcol]: https://www.w3schools.com/colors/colors_picker.asp

[bool]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean

[number]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number

[adminmanage]: https://docs.faxes.zone/overflowbot/customperms/


Suggest an edit

Review this page

FAXES

1 recommend this page