UbuntuUbuntu Based

How To Install UVdesk on Ubuntu 24.04 LTS

Install UVdesk on Ubuntu 24.04

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.

Install UVdesk on Ubuntu 24.04

Follow these steps to complete the installation:

  1. On the Welcome page, click the “Let’s Begin” button.
  2. The system will check your PHP settings and file permissions. If everything is correctly set up, click “Proceed” to continue.
  3. 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
  4. Click “Proceed” to continue.
  5. 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)
  6. Click “Proceed” to continue.
  7. 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)
  8. Click “Proceed” to continue.
  9. 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:

  1. Log in to the UVdesk admin panel.
  2. Navigate to Settings > Email Settings.
  3. Set up your email server details (SMTP server, port, username, password).
  4. 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.

VPS Manage Service Offer
If you don’t have time to do all of this stuff, or if this is not your area of expertise, we offer a service to do “VPS Manage Service Offer”, starting from $10 (Paypal payment). Please contact us to get the best deal!

r00t

r00t is an experienced Linux enthusiast and technical writer with a passion for open-source software. With years of hands-on experience in various Linux distributions, r00t has developed a deep understanding of the Linux ecosystem and its powerful tools. He holds certifications in SCE and has contributed to several open-source projects. r00t is dedicated to sharing her knowledge and expertise through well-researched and informative articles, helping others navigate the world of Linux with confidence.
Back to top button