UVdesk has many features that make it stand out including:
- Customizable module structure
- Self-help documentation
- Automatically synced calendars
- Offline access (e.g. mobile)
- File upload and download
- Ticket routing
- Customizable email templates
- Sites localization, can be translated into any language
UVdesk is the first open-source support system that allows you to easily configure, customize and manage your own small helpdesk. You can choose a package format (e.g. LAMP). Then use it with an auto-installer to set up your helpdesk quickly on your computer in less than 10 minutes.
UVdesk offers a mobile version that you can use on your mobile phone. In fact, UVdesk is the first support system that offers mobile applications for both iPhone and Android. You can download UVdesk software to your iPhone.
UVdesk integrates with many different systems like Google Apps, Google Calendar, PayPal, Microsoft Outlook and more. The main concepts behind UVDesk development are Extensibility and Open API. Extensibility lets one extend the application in many ways (through plugins) to make it work as they want while keeping the full source code open.
In order to install UVdesk, you will need a few things:
- A server or any machine with the following specifications – 1.6 GHz processor, 4 GB RAM, 30 GB free hard disk space.
- A non-root user with administrator rights.
Updating your system
If you are installing UVdesk on a fresh server, before you begin the installation, you should update the packages that come with your distribution.
sudo apt update -y
You should also check for updates after some time and before reporting any issues with your UVDesk installation.
Next, install the required packages by running the following command.
sudo apt install wget git unzip -y
sudo apt install curl apache2 libapache2-mod-fcgid -y
Next, run the command below to enable FCGI handlers, rewrite, and proxy modules. Think of FCGI as the adapter and the other two modules as parts or accessories. FCGI is what facilitates the connection between UVdesk and Apache.
sudo a2enmod actions fcgid alias proxy_fcgi rewrite
Run the command below to restart apache. You should restart it after any configuration change.
sudo systemctl restart apache2
Setting up Database for UVdesk
This demo uses MariaDB as the database server, but the steps are similar to those of MySQL. MariaDB is a drop-in replacement for MySQl. For more information about MariaDB visit the mariadb website.
Run the command below to mariadb on your server. We will install mariadb-server and mariadb-client package. The mariadb-server package contains the mariadb server. The mariadb-client package is the client tool for mariadb.
sudo apt install mariadb-server mariadb-client -y
Once the installation is complete, you can open up a terminal and connect to the database server using the following command. You will be prompted for a password. Enter your Mariadb root password and press Enter.
mysql -u root -p
Run the command below at the prompt to create a database for your UVdesk installation.
CREATE DATABASE uvdeskdb;
Run the command below at the prompt to create a user for UVdesk named uvdeskadmin. You can choose whatever name you want for the user. Replace StrongPassword with a secure password.
CREATE USER 'uvdeskadmin'@'localhost' IDENTIFIED BY 'StrongPassword';
Once the user is created, run the command below at the prompt to grant the user privileges on the use database. We will grant the privileges of schema “uvdesk” on this database.
GRANT ALL PRIVILEGES ON uvdeskdb.* TO 'uvdeskadmin'@'localhost';
Run the FLUSH PRIVILEGES command at the prompt to make the privilege changes take effect.
Finally, we will run the following command to exit from the database client terminal.
PHP is an open-source programming language that is popular for web development. It is a widely-used general-purpose scripting language that is especially suited for web development.
UVdesk requires PHP v5.3+ to be installed on your computer. This demo uses PHP 7.4 as the default PHP version, but you can use any newer version of PHP if you want.
Run the command below to install PHP 7.4 and its modules. We will install PHP 7.4 using the standard packages.
sudo apt install mysql-server php7.4 libapache2-mod-php7.4 -y sudo apt install php7.4-json php7.4-common php7.4-gmp php7.4-curl -y sudo apt install php7.4-mysql php7.4-opcache php7.4-intl php7.4-fpm php7.4-xmlrpc -y sudo apt install php7.4-bcmath php7.4-zip php7.4-imagick php7.4-mbstring php7.4-gd -y sudo apt install php7.4-cli php7.4-xml php7.4-zip wget unzip curl -y
On successful installation, you can check if PHP7.4 is installed correctly by running the following command at the terminal. It should display the version number of PHP that you have installed on your system.
Run the command below to enable the php-fpm and check if the php-fpm service started. It is the service that manages the php requests for each website, and pulls data from the database and pushes it to the web server.
sudo systemctl start php7.4-fpm sudo a2enconf php7.4-fpm sudo systemctl reload apache2 sudo systemctl status php*-fpm.service
You will get the following output.
Open the /etc/php/*/fpm/php.ini file in a text editor and change the some PHP variables as follows. Save the file and exit the text editor when you are done.
sudo nano /etc/php/*/fpm/php.ini
Run the command below to reload the changes to the php.ini file.
sudo systemctl restart php*-fpm.service
There are several ways that you can install UVdesk. You can download and install UVdesk from repositories, you can build from sources and compile your own version, or you can bootstrap a new installation from scratch. This demo will go with PHP composer to install UVdesk from a composer.json file that is hosted on Github. This is the easiest and quickest way to install the UVdesk installation.
PHP composer is an application-level package manager that allows you to create, discover and install packages of PHP code. The packages are hosted on a central repository called Packagist where you can find many open source packages. Composer is used to manage the project dependencies for your UVdesk installation and also install other modules needed for your UVdesk installation.
Run the command below to download the composer-setup.php file.
curl -sS https://getcomposer.org/installer -o composer-setup.php
After downloading the composer installer, run the command below to install it to /usr/local/bin for easier access.
sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer --version=1.10.17
Run the command below to create a new directory named uvdesk in your web root directory. This directory host all the content of your UVdesk installation.
sudo mkdir /var/www/uvdesk && cd /var/www/uvdesk
Run the sudo chown \(USER:\)USER /var/www/ -R command to give the uvdesk directory write and execute permissions. This is required by the composer install procedure.
sudo chown $USER:$USER /var/www/ -R
Now, we will run the following command to create a new project called uvdesk. We will name the project as a community-skeleton helpdesk-project to install UVdesk for this demo.
composer create-project uvdesk/community-skeleton helpdesk-project
The command above might take a while to complete. The command will create a new folder named community-skeleton helpdesk-project in the current directory.
After creating the project, the command above installs UVdesk via composer. Once the installation it completed, you will see an output like the one below in your terminal.
Now that the UVdesk server is installed, you will configure the Apache webserver to serve the UVdesk installation.
Create a new file named uvdesk.conf using your favorite editor.
sudo nano /etc/apache2/sites-available/uvdesk.conf
Add the following configuration to the uvdesk.conf file you created in the previous step. This will enable the .htaccess file for UVdesk and enable PHP for UVdesk to serve pages using the PHP code.
Listen 8080 <VirtualHost *:8080> ServerName your-domain.com ServerAlias www.your-domain.com DocumentRoot /var/www/uvdesk/helpdesk-project/public DocumentRoot /var/www/uvdesk/helpdesk-project/public Options -Indexes +FollowSymLinks +MultiViews AllowOverride All Require all granted </Directory> <FilesMatch \.php$> SetHandler "proxy:unix:/var/run/php/php7.4-fpm.sock|fcgi://localhost" </FilesMatch> ErrorLog /var/log/apache2/uvdesk-error.log CustomLog /var/log/apache2/uvdesk-access.log combined </VirtualHost>
Replace ServerName and ServerAlias to your own domain name. Replace DocumentRoot to the directory where you installed UVdesk. Save and close the file when you are done.
Run the sudo a2ensite uvdesk command to enable Apache to serve your UVdesk site.
sudo a2ensite uvdesk
Open the /etc/apache2/apache2.conf file in a text editor and change the AllowOverride line as follows. Save and close the file when you are done.
sudo nano /etc/apache2/apache2.conf
Finally, run the following command to set the proper permissions/ownership for your UVdesk directory.
sudo chown -R www-data:www-data /var/www/uvdesk && sudo chmod -R 755 /var/www/uvdesk
Now that UVdesk is installed, it’s time to access it. Open your browser and enter the IP address of your Ubuntu 20.04 server or your domain name on port 8080.
You should see the page below if UVdesk is correctly installed. Click on LET’S BEGIN and follow the step-by-step wizard to finish your helpdesk project.
In this guide, you have learned how to install UVdesk on Ubuntu 20.04 server with PHP 7.4 support using PHP composer. You have also learned how to configure the Apache webserver to serve UVdesk.
This setup is a standard UVdesk installation that you can use to create more helpdesk applications for your business. You can install other UVdesk modules, themes, and features as you go. You can find more information about UVdesk on its official website. You can also follow UVdesk on Twitter or Facebook to know the latest news about UVdesk.