How To Install UVdesk on Ubuntu 24.04 LTS
Customer support is a critical component of any successful business. Providing timely and effective assistance to customers can significantly enhance their experience and boost your company’s reputation. UVdesk, an open-source SaaS-based helpdesk system, offers businesses a comprehensive solution for managing customer inquiries efficiently. This powerful tool enables organizations to streamline their support operations through features like ticket management, knowledgebase support, canned responses, and automated ticket generation from emails. In this detailed guide, we’ll walk you through the complete process of installing UVdesk on Ubuntu 24.04, ensuring you have a fully functional helpdesk system to elevate your customer service capabilities.
Prerequisites for UVdesk Installation
Before diving into the installation process, make sure your system meets the following requirements:
- A server running Ubuntu 24.04 LTS with at least 4 GB RAM and 30 GB free disk space
- A fully qualified domain name (FQDN) pointing to your server (e.g., helpdesk.yourdomain.com)
- Root or sudo-privileged user access
- Basic familiarity with Linux command line
- An active internet connection
This tutorial assumes you’re starting with a fresh Ubuntu 24.04 installation. If you’re using an existing server, ensure you have backups of any important data before proceeding.
Updating Your Ubuntu 24.04 System
The first step in any installation process is ensuring your system is up to date. This helps prevent potential conflicts and security vulnerabilities during the installation.
Start by updating your package repository information:
sudo apt update
Next, upgrade all installed packages to their latest versions:
sudo apt upgrade -y
Finally, install some essential utility packages that will be needed throughout the installation process:
sudo apt install wget curl nano unzip git -y
Keeping your system updated is crucial for security and stability. Regular updates ensure your server remains protected against known vulnerabilities while providing optimal performance for your UVdesk installation.
Configuring Firewall (UFW) for UVdesk
Ubuntu comes with a built-in firewall called UFW (Uncomplicated Firewall). Proper firewall configuration is essential to protect your server while allowing necessary traffic for your helpdesk system.
First, check the current status of your firewall:
sudo ufw status
If the firewall is inactive, you can enable it after configuring the necessary rules. Let’s configure the firewall to allow SSH (for remote access), HTTP, and HTTPS connections:
sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow https
If the firewall isn’t already enabled, activate it now:
sudo ufw enable
Verify that your firewall rules have been properly applied:
sudo ufw status verbose
You should see output indicating that ports 22 (SSH), 80 (HTTP), and 443 (HTTPS) are allowed. This configuration ensures that you can securely access your server while permitting web traffic to your UVdesk installation.
Installing Web Server for UVdesk
UVdesk requires a web server to handle HTTP requests. You have two popular options: Nginx and Apache. Both are excellent choices, but Nginx typically offers better performance for high-traffic websites. We’ll cover both installation methods so you can choose the one that best suits your needs.
Installing Nginx (Option 1)
Nginx is known for its high performance, stability, and low resource consumption, making it an ideal choice for hosting UVdesk.
First, add the official Nginx repository to ensure you get the latest version:
curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg > /dev/null
Add the repository for Nginx’s stable version:
echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg arch=amd64] http://nginx.org/packages/ubuntu $(lsb_release -cs) nginx" | sudo tee /etc/apt/sources.list.d/nginx.list
Update your package information:
sudo apt update
Install Nginx:
sudo apt install nginx -y
Start and enable the Nginx service to run automatically at system startup:
sudo systemctl start nginx
sudo systemctl enable nginx
Verify your Nginx installation:
nginx -v
This should display the installed Nginx version. You can also check if Nginx is running:
sudo systemctl status nginx
Installing Apache (Option 2)
Apache is a well-established, feature-rich web server with excellent documentation and broad compatibility.
Install Apache from the Ubuntu repositories:
sudo apt install apache2 -y
Enable necessary Apache modules for UVdesk:
sudo a2enmod rewrite
sudo a2enmod ssl
sudo a2enmod proxy
sudo a2enmod proxy_fcgi
sudo a2enmod actions
Start and enable the Apache service:
sudo systemctl start apache2
sudo systemctl enable apache2
Verify your Apache installation:
apache2 -v
This will display the installed Apache version. You can also check Apache’s status:
sudo systemctl status apache2
Installing PHP and Required Extensions for UVdesk
UVdesk is built with PHP, so we need to install PHP and several required extensions for proper functionality. Ubuntu 24.04 includes PHP 8.3 by default, which is compatible with UVdesk.
Install PHP and the necessary extensions:
sudo apt install php-fpm php-mysql php-xml php-curl php-intl php-mbstring php-zip php-json php-gd php-tokenizer php-bcmath php-ctype php-fileinfo php-iconv -y
After installation, verify your PHP version:
php -v
Configure PHP for optimal performance by editing the PHP configuration file:
sudo nano /etc/php/8.3/fpm/php.ini
Make the following adjustments:
memory_limit = 256M
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 120
date.timezone = Your/Timezone
Replace “Your/Timezone” with your actual timezone (e.g., “America/New_York” or “Europe/London”).
Save the file by pressing Ctrl+X, then Y, then Enter.
Restart PHP-FPM to apply the changes:
sudo systemctl restart php8.3-fpm
Installing MySQL/MariaDB for UVdesk
UVdesk requires a database to store its data. You can use either MySQL or MariaDB. In this guide, we’ll use MySQL, but the steps are very similar for MariaDB.
Install MySQL server:
sudo apt install mysql-server -y
After the installation completes, start and enable the MySQL service:
sudo systemctl start mysql
sudo systemctl enable mysql
Configuring MySQL for UVdesk
Now that MySQL is installed, you need to secure it and create a database for UVdesk.
First, run the MySQL secure installation script:
sudo mysql_secure_installation
Follow the prompts to set up a root password, remove anonymous users, disallow remote root login, remove the test database, and reload privileges.
Next, log in to MySQL as root:
sudo mysql -u root -p
Enter your root password when prompted. Then create a database and user for UVdesk:
CREATE DATABASE uvdesk CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'uvdeskuser'@'localhost' IDENTIFIED BY 'strong_password';
GRANT ALL PRIVILEGES ON uvdesk.* TO 'uvdeskuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Replace ‘strong_password’ with a secure password of your choice. This creates a database called “uvdesk” and a user with full privileges on that database.
Installing Composer for UVdesk
Composer is a dependency management tool for PHP that UVdesk relies on. Let’s install it:
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
sudo chmod +x /usr/local/bin/composer
Verify the installation:
composer --version
This should display the installed Composer version. With Composer installed, we can now download and set up UVdesk.
Downloading and Configuring UVdesk
Now we’re ready to download and configure UVdesk. We’ll create the necessary directory structure and set appropriate permissions.
First, create the web directory:
sudo mkdir -p /var/www
Give your current user permission to access the directory:
sudo chown $USER:$USER /var/www
Navigate to the web directory:
cd /var/www
Use Composer to create a new UVdesk project (replace “helpdesk.yourdomain.com” with your actual domain):
composer create-project uvdesk/community-skeleton helpdesk.yourdomain.com
This command will download UVdesk and its dependencies, which might take a few minutes depending on your internet connection.
Install the Access Control Lists (ACL) utility:
sudo apt install acl -y
Set the appropriate permissions for UVdesk directories. For Nginx:
sudo setfacl -dR -m u:www-data:rwX -m u:$USER:rwX /var/www/helpdesk.yourdomain.com/var
sudo setfacl -R -m u:www-data:rwX -m u:$USER:rwX /var/www/helpdesk.yourdomain.com/var
sudo setfacl -dR -m u:www-data:rwX -m u:$USER:rwX /var/www/helpdesk.yourdomain.com/public
sudo setfacl -R -m u:www-data:rwX -m u:$USER:rwX /var/www/helpdesk.yourdomain.com/public
sudo setfacl -dR -m u:www-data:rwX -m u:$USER:rwX /var/www/helpdesk.yourdomain.com/config
sudo setfacl -R -m u:www-data:rwX -m u:$USER:rwX /var/www/helpdesk.yourdomain.com/config
sudo setfacl -dR -m u:www-data:rwX -m u:$USER:rwX /var/www/helpdesk.yourdomain.com/migrations
sudo setfacl -R -m u:www-data:rwX -m u:$USER:rwX /var/www/helpdesk.yourdomain.com/migrations
sudo setfacl -m u:www-data:rwX -m u:$USER:rwX /var/www/helpdesk.yourdomain.com/.env
If you’re using Apache, replace “www-data” with the appropriate Apache user for your distribution.
Configuring SSL with Let’s Encrypt
Securing your UVdesk installation with SSL is essential for protecting sensitive customer data. Let’s Encrypt provides free SSL certificates that we can use.
First, install Certbot:
sudo apt install certbot python3-certbot-nginx -y
If you’re using Apache instead of Nginx, install the Apache plugin:
sudo apt install python3-certbot-apache -y
Now, obtain an SSL certificate for your domain (replace “helpdesk.yourdomain.com” with your actual domain):
sudo certbot --nginx -d helpdesk.yourdomain.com
For Apache:
sudo certbot --apache -d helpdesk.yourdomain.com
Follow the prompts to complete the certificate issuance process. Certbot will automatically configure your web server to use the new certificate.
Let’s Encrypt certificates expire after 90 days, so set up auto-renewal:
sudo systemctl enable certbot.timer
sudo systemctl start certbot.timer
Test the auto-renewal process:
sudo certbot renew --dry-run
Configuring Web Server for UVdesk
Now we need to configure our web server to properly serve the UVdesk application.
Nginx Configuration
Create a new Nginx server block configuration:
sudo nano /etc/nginx/conf.d/helpdesk.yourdomain.com.conf
Add the following configuration (replace “helpdesk.yourdomain.com
” with your actual domain):
server {
listen 80;
server_name helpdesk.yourdomain.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
server_name helpdesk.yourdomain.com;
ssl_certificate /etc/letsencrypt/live/helpdesk.yourdomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/helpdesk.yourdomain.com/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
root /var/www/helpdesk.yourdomain.com/public;
index index.php;
location / {
try_files $uri /index.php$is_args$args;
}
location ~ ^/index\.php(/|$) {
fastcgi_pass unix:/var/run/php/php8.3-fpm.sock;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param HTTPS on;
internal;
}
location ~ \.php$ {
return 404;
}
error_log /var/log/nginx/helpdesk_error.log;
access_log /var/log/nginx/helpdesk_access.log;
}
Test the Nginx configuration:
sudo nginx -t
If there are no errors, reload Nginx:
sudo systemctl reload nginx
Apache Configuration
If you chose Apache, create a new virtual host configuration:
sudo nano /etc/apache2/sites-available/helpdesk.yourdomain.com.conf
Add the following configuration (replace “helpdesk.yourdomain.com
” with your actual domain):
<VirtualHost *:80>
ServerName helpdesk.yourdomain.com
Redirect permanent / https://helpdesk.yourdomain.com/
</VirtualHost>
<VirtualHost *:443>
ServerName helpdesk.yourdomain.com
DocumentRoot /var/www/helpdesk.yourdomain.com/public
<Directory /var/www/helpdesk.yourdomain.com/public>
AllowOverride All
Options -Indexes +FollowSymLinks
Require all granted
</Directory>
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/helpdesk.yourdomain.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/helpdesk.yourdomain.com/privkey.pem
ErrorLog ${APACHE_LOG_DIR}/helpdesk_error.log
CustomLog ${APACHE_LOG_DIR}/helpdesk_access.log combined
</VirtualHost>
Enable the virtual host and SSL module:
sudo a2ensite helpdesk.yourdomain.com.conf
sudo a2enmod ssl
Test the Apache configuration:
sudo apache2ctl configtest
If there are no errors, reload Apache:
sudo systemctl reload apache2
Completing UVdesk Installation Through Web Interface
With the web server configured, you can now complete the UVdesk installation through the web interface.
Open your web browser and navigate to your domain (e.g., https://helpdesk.yourdomain.com
). You should see the UVdesk installation wizard.
Follow these steps to complete the installation:
- On the Welcome page, click the “Let’s Begin” button.
- The system will check your PHP settings and file permissions. If everything is correctly set up, click “Proceed” to continue.
- On the Database Configuration page, enter the following details:
- Server: 127.0.0.1
- Port: 3306
- Username: uvdeskuser (the user we created earlier)
- Password: strong_password (the password you set)
- Database: uvdesk
- Click “Proceed” to continue.
- On the Create Super Admin Account page, enter your administrator details:
- Name: Your Name
- Email: your.email@domain.com
- Password: (Choose a strong password)
- Confirm Password: (Repeat your password)
- Click “Proceed” to continue.
- On the Website Configuration page, set the member and customer panel prefixes:
- Member Panel Prefix: member (or your preferred prefix)
- Customer Panel Prefix: customer (or your preferred prefix)
- Click “Proceed” to continue.
- On the final installation page, click “Install Now” to complete the installation.
The installation process might take a few minutes. Once it’s complete, you’ll be redirected to the UVdesk login page where you can sign in using the admin credentials you created during installation.
Post-Installation Configuration
After successfully installing UVdesk, there are several important post-installation tasks to optimize your helpdesk system:
Setting Up Cron Jobs
UVdesk relies on scheduled tasks for various operations. Set up the following cron job to handle these tasks:
sudo crontab -e
Add the following line:
*/5 * * * * cd /var/www/helpdesk.yourdomain.com && php bin/console uvdesk:refresh-mailbox > /dev/null 2>&1
This cron job runs every 5 minutes to check for new emails and convert them into tickets.
Configuring Email Settings
To enable email functionality in UVdesk, you need to configure your email settings:
- Log in to the UVdesk admin panel.
- Navigate to Settings > Email Settings.
- Set up your email server details (SMTP server, port, username, password).
- Test the email configuration to ensure it’s working properly.
Optimizing Performance
For better performance, consider implementing the following optimizations:
1. Enable PHP OPcache:
sudo nano /etc/php/8.3/fpm/conf.d/10-opcache.ini
Add or modify the following settings:
opcache.enable=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.fast_shutdown=1
2. Configure Nginx or Apache caching:
For Nginx, add the following to your server block:
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
expires 30d;
add_header Cache-Control "public, no-transform";
}
For Apache, add the following to your virtual host:
<FilesMatch "\.(jpg|jpeg|png|gif|ico|css|js)$">
Header set Cache-Control "max-age=2592000, public"
</FilesMatch>
3. Restart your web server and PHP-FPM:
sudo systemctl restart nginx php8.3-fpm
Or for Apache:
sudo systemctl restart apache2 php8.3-fpm
Troubleshooting Common UVdesk Installation Issues
Even with careful installation, you might encounter issues. Here are solutions to common problems:
Database Table Not Found Error
If you see an error like “SQLSTATE[42S02]: Base table or view not found: 1146 Table ‘uvdesk.uv_support_role’ doesn’t exist,” run the following commands:
cd /var/www/helpdesk.yourdomain.com/
php bin/console doctrine:migrations:diff
php bin/console doctrine:migrations:migrate
php bin/console cache:clear
Permission Issues
If you encounter permission errors, ensure the web server user has proper access to UVdesk directories:
sudo setfacl -dR -m u:www-data:rwX -m u:$USER:rwX /var/www/helpdesk.yourdomain.com
sudo setfacl -R -m u:www-data:rwX -m u:$USER:rwX /var/www/helpdesk.yourdomain.com
PHP Extension Missing Errors
If UVdesk complains about missing PHP extensions, install them:
sudo apt install php-[extension_name]
Then restart PHP-FPM:
sudo systemctl restart php8.3-fpm
500 Internal Server Error
Check your web server error logs for specific error messages:
For Nginx:
sudo tail -f /var/log/nginx/helpdesk_error.log
For Apache:
sudo tail -f /var/log/apache2/helpdesk_error.log
Congratulations! You have successfully installed UVdesk. Thanks for using this tutorial for installing UVdesk Helpdesk System on Ubuntu 24.04 LTS system. For additional help or useful information, we recommend you check the official UVdesk website.