You can support us by downloading this article as PDF from the Link below. Download the guide as PDF

The process of building a company can be one of the most challenging endeavours one can undertake especially if they have a lean budget and they need tools to make it easy for them to reach and respond to customers’ concerns. A ticketing system is one essential tool that every business needs in order to streamline, quicken and ensure order is achieved when responding to the needs of customers. For the companies that are starting off or the ones that prefer building their own, good news is that there are OpenSource projects already built by good developers to help you get started immediately and even build upon it to achieve more.

UVdesk is one such Open Source Helpdesk Ticketing System that you can rely on as you continue to build your business one step or one corner after the other. In this guide, we shall venture into getting to see the features of UVDesk then later get it installed and have a personal feel of it. As you can already feel, it is going to be a good journey as we plant this flower on our CentOS 8 bed.

Features of UVdesk

  • UVdesk offers SaaS-based and Open Source helpdesk solution to easier the overall support process to deliver best customer service.
  • UVdesk Open Source is free fully-functional helpdesk software, designed on very famous framework which recongnize among all developer such as Symfony, a PHP framework.

Software Requirements

UVdesk needs the following software packages installed before it can run and serve you:

  • PHP7.2 or higher
  • Composer: 1.6.5 or higher
  • IMAP
  • MailParse
  • Server: Apache
  • Database: MySQL/MariaDB

Step 1: Server preparation

Jump into the terminal of your fresh CentOS 8 server, update it and install essential tools we shall use in our installation process.

sudo dnf update
sudo dnf -y install git unzip vim httpd nano 

Disable SELinux

This is optional if you can handle SELinux with ease. To set it in Permissive mode, run the command below in your server.

sudo setenforce 0
sudo sed -i 's/^SELINUX=.*/SELINUX=permissive/g' /etc/selinux/config

Step 2: Install PHP on CentOS 8

Let us get the PHP requirements above met by installing it in our server. Kindly follow How To Install PHP 7.4 on CentOS 8 | RHEL 8 guide to get everything up and running fast.

Once your PHP 7.4 is well installed, add the following modules as illustrated below

sudo dnf install -y php-cli php-pdo php-common php-mysql php-curl php-json php-zip php-gd php-xml php-mbstring php-pecl-mailparse php-imap php-mysql

Next, open up your php-fpm ini file and add/edit the details shown below. They include Timezone, and memory limit settings. Add your date.timezone and change memory_limit to 512MB.

$ sudo vim /etc/php.ini

memory_limit = 512M

[Date]

date.timezone = Africa/Nairobi

Configure PHP-FPM

Here, we will edit PHP-FPM configuration file for Apache:

sudo vim /etc/php-fpm.d/www.conf

Create a configuration file with details as shown below.

listen = /run/php-fpm/www.sock

user = apache
group = apache

listen.allowed_clients = 127.0.0.1
listen.owner = apache
listen.group = apache
listen.mode = 0660
pm = dynamic

Restart php-fpm after you have made those changes to apply them.

sudo systemctl restart php-fpm

Step 3: Install and setup database for UVdesk

UVdesk requires a Database as it had been mentioned in the requirements section. Due to that, we are going to setup and use MariaDB. Fortunately, we have a detailed guide already to get MariaDB 10.5 installed on CentOS 8. Check out Install MariaDB on CentOS 8 | CentOS 7

After you have the database installed, create a database and user that UVdesk will use. Get this accomplished as illustrated below. You are free to name your database and user differently and ensure you use a safe password.

$ mysql -u root -p

MariaDB [(none)]> CREATE DATABASE uvdeskdb;
MariaDB [(none)]> GRANT ALL ON uvdeskdb.* TO 'uvdeskadmin' IDENTIFIED BY 'SafePassword';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> quit

Step 4: Install Composer

Composer 1 is required to in order to get UVdesk’s dependencies installed. Do the following to setup composer version 1 which is compatible with UVdesk files.

cd ~
curl -sS https://getcomposer.org/installer -o composer-setup.php
sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer --version=1.10.17

Test if composer is successfully installed by running the composer version command

$ composer -V
Composer version 1.10.17 2020-10-30 22:31:58

Step 5: UVdesk installation

We are going to create a directory that we shall drop UVdesk files in. This will also help us in setting up the root directory that our web server will be looking into serve the files.

sudo mkdir /var/www/html-udvesk && cd /var/www/html-udvesk
sudo chown $USER:$USER /var/www/ -R

Let us now use composer to fetch and install UVdesk files on our root direcctory

First, Clear Cache:

cd /var/www/html-udvesk
composer clear-cache

Then Create the Project thus:

composer create-project uvdesk/community-skeleton helpdesk-project

You should see a cute banner as shown below when the installation completes.

uvdesk terminal logo

Step 6: Allow ports on the firewall for UVdesk

In order to access the webserver, we will have to allow http or https services to be accessible. For that to happen, modify firewall rules in order to allow port 80 or 443 as you wish:

sudo firewall-cmd --permanent --add-port={80,443}/tcp && sudo firewall-cmd --reload

Step 7: Configure UVdesk VirtualHost

In this step we shall configure Apache to use php-fpm for processing PHP files. We shall configure FPM for this specific virtual host only. Open up a new file and populate it with the following config. Notice the root directory points to the “public” folder.

$ sudo vim /etc/httpd/conf.d/uvdesk.conf

<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot /var/www/html-udvesk/helpdesk-project/public

    ServerName example.com
    ServerAlias www.example.com

    # Proxy declaration
    <Proxy "unix:/run/php-fpm/www.sock|fcgi://php-fpm">
       # we must declare a parameter in here (doesn't matter which) or 
       # it'll not register the proxy ahead of time

       ProxySet disablereuse=off

       # Note: If you configure php-fpm to use the "pm = ondemand" 
       #then use "ProxySet disablereuse=on"
     </Proxy>

     <FilesMatch \.php$>
           SetHandler proxy:fcgi://php-fpm
     </FilesMatch>

    ErrorLog /var/log/httpd/uvdesk-error.log
    CustomLog /var/log/httpd/uvdesk-access.log combined
</VirtualHost>

Then on the main Apache configuration file, Allow Override on the following part of the config file

$ sudo vim /etc/httpd/conf/httpd.conf

<Directory "/var/www">
    AllowOverride All #This part

    # Allow open access:
    Require all granted
</Directory>

Modify the permissions on the root directory and restart the webserver

sudo chown -R apache:apache /var/www/
sudo chmod -R 755 /var/www/
sudo systemctl restart httpd

After that, open up your favourite browser and point it to the IP or FQDN of your server. http://ip-or-server-fqdn. You should see a page as shown below. Click on “Let’s Begin

uvdesk install page 1

On the next page, UVdesk will check if you meet all requirements it needed for it to run. If all is good, click on “Proceed

uvdesk install page 2 check requirements

Next, you will be needed to add Database details that we created in Step 3 as illustrated below. Once you are done, click on “Proceed

uvdesk install page 3 database configuration

The page after this presents a form for you to add a super admin account into the system. Key in the information then hit “Proceed

uvdesk install page 4 create super admin account

After that, for UVdesk to configure the customer-facing and member-facing sides of the system, it requires you to enter your preferred prefix. Any prefix for members/staff and customer you prefer here is okay here. Enter them then click “Proceed

uvdesk install page 5 website configuration

Next, the only thing remaining is for you to install UVdesk. Click on “Install Now” to get the stone rolling.

uvdesk install page 6 install now

Installation progress

uvdesk install page 7 installation progerss

Once installation is complete, UDdesk will present you with two links: Admin and Frontend. You can click on either and check them out.

uvdesk install page 8 admin or front end prompt

Clicking on the “Admin Panel” link leads you to a login form like the one illustrated below. Enter the Super Admin credentials and login.

uvdesk install page 9 admin login

You will be presented with a dashboard as shown below.

uvdesk install page 10 dashboard

Conclusion

UVdesk presents an easy to use platform that anyone can use. You also get maximum flexibility to do whatever you want and respond to tickets powerfully as you grow your business without any limitations. As usual, give it a try guys and check out if it will make a difference in your businesses or online projects. We appreciate you for stopping by.

Other interesting guides are shared below for you to relish.

You can support us by downloading this article as PDF from the Link below. Download the guide as PDF