Does your company need a Help Desk platform to better enable your support staff to assist customers and clients? For that, you’d want a tool that includes features like:

  • Ticket creation

  • Ticket administration

  • Task management

  • Multi-channel support

  • Customer follow up

  • Knowledge base

  • Workflow

  • Data import

  • Email management

  • Form builders

  • Security

If that sounds just the ticket to help make your business a success, There’s an open source help desk platform you might want to try–UVdesk.

I’m going to walk you through the process of getting UVdesk installed. Although the installation might not be the easiest you’ll ever experience, once up and running UVdesk is pretty simple to work with.

SEE: Incident response policy (TechRepublic Premium)

What you’ll need

I’ll be demonstrating the installation on Ubuntu Server 20.04. Make sure you have an updated instance of Canonical’s platform ready to go and a user with sudo privileges.

How to install the web server

The first thing to take care of is the installation of the dependencies. Log in to your Ubuntu server instance and issue the command:

sudo apt install git unzip curl libapache2-mod-fcgid -y

Install the LAMP server with the command:

sudo apt-get install lamp-server^ -y

Next, enable the necessary Apache modules with the command:

sudo a2enmod actions fcgid alias proxy_fcgi rewrite

Restart Apache:

sudo systemctl restart apache2

How to secure MySQL and create the database

Before we can create the database we need to secure MySQL with the command:

sudo mysql_secure_installation

Give the admin user a password and answer “Y” for the remaining questions.

Log in to the MySQL shell with the command:

sudo mysql -u root -p

Create the database with the command:


Create a new user with the command:

CREATE USER 'uvdesk_user'@'localhost';

Grant the necessary permissions with the command:

GRANT ALL PRIVILEGES ON uvdeskdb . * TO 'uvdesk_user'@'localhost';

Flush the privileges and exit the database console with the commands:


How to install and configure PHP

UVdesk depends on PHP, so we’ll install it with the following commands:

sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt install -y php
sudo apt install php-{cli,fpm,json,common,mysql,zip,gd,mbstring,curl,xml,bcmath,imap,intl,mailparse} php-pear

Open the php.ini file for editing with the command:

sudo nano /etc/php/7.4/fpm/php.ini

In that file, look for the line starting with:

memory_limit =

Change that line to:

memory_limit = 512M

Next, locate the line beginning with:

;date.timezone =

Remove the comment character (semicolon) and add your locale, as in America/Chicago.

Save and close the file. Restart the PHP Fast Process Manager (FPM) with the command:

sudo systemctl restart php7.4-fpm

How to install Composer

The actual installation of UVdesk is handled with Composer, so we have to install it. This is done with the following two commands:

curl -sS -o composer-setup.php
sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer --version=1.10.17

How to install UVdesk

It’s now time to install UVdesk. First, create a directory to house the server with the command:

sudo mkdir /var/www/uvdesk && cd /var/www/uvdesk

Give the new directory the proper permissions with the command:

sudo chown $USER:$USER /var/www/ -R

Change into the newly created directory with the command:

cd /var/www/uvdesk

Clear the Composer cache with the command:

composer clear-cache

Create the UVdesk project with the command:

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

The above command will take a few minutes to complete. When it does, you’re ready to configure the web server.

How to configure Apache

In order for Apache to know about the new installation, we must create a new configuration file with the command:

sudo nano /etc/apache2/sites-available/uvdesk.conf

In that file, paste the following:

Listen 8080

DocumentRoot /var/www/uvdesk/helpdesk-project/public

DocumentRoot /var/www/uvdesk/helpdesk-project/public
Options -Indexes +FollowSymLinks +MultiViews
AllowOverride All
Require all granted

SetHandler "proxy:unix:/var/run/php/php7.4-fpm.sock|fcgi://localhost"

ErrorLog /var/log/apache2/uvdesk-error.log
CustomLog /var/log/apache2/uvdesk-access.log combined

Save and close the file.

Enable the new configuration with the command:

sudo a2ensite uvdesk

Open the main Apache configuration file with the command:

sudo nano /etc/apache2/apache2.conf

In that file, look for the following section:

Options FollowSymLinks
AllowOverride denied
Require all denied

Change that to:

Options FollowSymLinks
AllowOverride All
Require all denied

Save and close the file.

Change the permissions and ownership of the UVdesk directory with the commands:

sudo chown -R www-data:www-data /var/www/uvdesk
sudo chmod -R 755 /var/www/uvdesk

Restart Apache with the command:

sudo systemctl restart apache2

How to finish up the installation

Open a web browser and point it to http://SERVER:8080 (where SERVER is the IP address of the hosting server). You will be greeted by the installation wizard where you can finish up the installation (Figure A).

Figure A

The UVdesk web-based installer.

When you get to the database setup screen, make sure to configure it with the username and database name created at the MySQL console (Figure B).

Figure B

Configuring the UVhelp database details.

Finally, create an admin user and member/custer prefix, and click Install. When the installation completes, you can then log in with your admin credentials and start customizing UVdesk to perfectly fit the needs of your company and customers.

Subscribe to TechRepublic’s How To Make Tech Work on YouTube for all the latest tech advice for business pros from Jack Wallen.