# Install UVdesk on Linux [Opensource Helpdesk Ticketing System]

## What is UVdesk?

> Build on top of symfony and backbone.js, uvdesk community is a service oriented, event driven extensible opensource helpdesk system that can be used by your organization to provide efficient support to your clients effortlessly whichever way you imagine. -https://github.com/uvdesk/community-skeleton#about

## Installation

1. Log into the Linux device
2. Run the following commands in a terminal window:
   # update software respositories
   sudo apt update
   # install available software updates
   sudo apt upgrade -y
   # install prerequisites
   sudo apt install curl wget zip composer -y
   # install Apache HTTPD and MySQL
   sudo apt install apache2 mariadb-server mariadb-client -y
   # install PHP components
   sudo apt install php7.4 php7.4-curl php7.4-intl php7.4-gd php7.4-dom php7.4-iconv php7.4-xsl php7.4-mbstring php7.4-ctype php7.4-zip php7.4-pdo php7.4-xml php7.4-bz2 php7.4-calendar php7.4-exif php7.4-fileinfo php7.4-json php7.4-mysqli php7.4-mysql php7.4-posix php7.4-tokenizer php7.4-xmlwriter php7.4-xmlreader php7.4-phar php7.4-soap php7.4-mysql php7.4-fpm libapache2-mod-php7.4 php7.4-gmp php7.4-bcmath php7.4-apcu php7.4-redis php7.4-imagick php7.4-imap php7.4-xdebug php7.4-mailparse -y
   # configure the MySQL database
   sudo su
   mysql_secure_installation
3. Press Enter to login as root
4. Type N and press Enter to not switch to unix socket authentication
5. Type Y and press Enter to set a root password, type the password twice to confirm
6. Type Y and press Enter to remove anonymous users
7. Type Y and press Enter to disallow root login remotely
8. Type Y and press Enter to remove the test database
9. Type Y and press Enter to reload privilege tables
10. Run the following command to login into MySQL:
    mysql -u root -p
11. Authenticate with the root password set earlier
12. Run the following commands to create the UVdesk database and database user
    CREATE DATABASE uvdesk;
    GRANT ALL ON uvdesk.* to 'uvdesk_rw'@'localhost' IDENTIFIED BY 'uvD3$k!!';
    FLUSH PRIVILEGES;
    EXIT;
    exit
13. Continue with the following commands:
    # download latest uvdesk release
    wget -O uvdesk.zip https://cdn.uvdesk.com/uvdesk/downloads/opensource/uvdesk-community-current-stable.zip
    # extract the downloaded zip to /var/www
    sudo unzip ./uvdesk.zip -d /var/www/
    # rename the extracted folder
    sudo mv /var/www/uvdesk* /var/www/uvdesk
    # set the owner of the uvdesk directory
    sudo chown -R www-data:www-data /var/www/uvdesk
    # create uvdesk apache configuration
    sudo nano /etc/apache2/sites-available/uvdesk.conf
14. Paste the following configuration into uvdesk.conf

    Alias /uvdesk "/var/www/uvdesk/public"
    <Directory /var/www/uvdesk/public>
    Require all granted
    Options Indexes FollowSymLinks
    AllowOverride All
    Order allow,deny
    Allow from all
    </Directory>

15. Press CTRL+O, Enter, CTRL+X to write the changes
16. Run the following command to enable the UVdesk site
    # enable rewrite module
    sudo a2enmod rewrite
    # enable the uvdesk site
    sudo a2ensite uvdesk
    # restart the apache2 service
    sudo systemctl restart apache2

## UVdesk Web Installer

1. Open a web browser and navigate to http://DNSorIP/uvdesk
2. The UVdesk web installer should be load
3. Click the Let's Begin button
4. Click the Proceed button
5. Complete the Database Configuration form as follows:

   Server: 127.0.0.1
   Port: 3306
   Username: uvdesk_rw
   Password: uvD3$k!!
   Database: uvdesk

6. Click the Proceed button
7. Complete the Super Admin Account form by entering a Name, Email, and Password
8. Click the Proceed button
9. Click the Proceed button at the Website Configuration screen
10. Click Install Now
11. After the installation completes, click the Admin Panel button
12. Login with the admin email address and password created earlier
13. Welcome to UVdesk