UVdesk Community Skeleton

repository·master·Indexed 12 days ago

https://github.com/uvdesk/community-skeleton

An open-source, service-oriented, and event-driven helpdesk system built on Symfony and Backbone.js. It provides a skeleton for developers to build and customize customer support solutions, featuring a CLI configuration wizard, database migration tools, and support for PHP 8.1+ and MySQL 5.7.23+.

Tokens
4K
Snippets
15
Records
21
Agent score
97%

What's inside UVdesk

  1. Install Uvdesk Community Helpdesk

    master

    You can install the Uvdesk project using Composer (recommended) or by downloading the ZIP archive manually. Once installed, use the built-in console command to complete the configuration.

    # Option 1: Using Composer (Recommended)
    cd /home/uvdesk/workstation/projects
    composer create-project uvdesk/community-skeleton
    
    # Option 2: Manual Download
    cd /home/uvdesk/workstation/projects
    wget "https://cdn.uvdesk.com/uvdesk/downloads/opensource/uvdesk-community-current-stable.zip"
    unzip uvdesk-community-current-stable.zip
    
    # Final Step: Configure the helpdesk via CLI
    php bin/console uvdesk:configure-helpdesk
  2. Install PHP and required dependencies

    master

    Install PHP (version 8.2 is used in this example), Apache, MySQL, and the specific PHP extensions required by Uvdesk. You must also enable the Apache rewrite module.

    # Install PHP 8.2 and core dependencies
    sudo apt -y install php8.2;
    sudo apt-get install -y software-properties-common;
    sudo apt-get -y install \
        curl \
        wget \
        git \
        unzip \
        apache2 \
        mysql-server \
        php8.2 \
        libapache2-mod-php8.2 \
        php8.2-common \
        php8.2-xml \
        php8.2-imap \
        php8.2-mysql \
        php8.2-mailparse \
        ca-certificates;
    
    # Enable apache rewrite module
    sudo a2enmod rewrite;
    
    # Restart apache
    sudo service apache2 restart;
  3. Upgrade Ubuntu packages

    master

    Before starting the installation, it is recommended to update your package lists and upgrade existing packages to their latest versions to ensure compatibility.

    # Update the list of available packages
    sudo apt-get update;
    
    # Update the packages to their latest available versions
    sudo apt-get -y upgrade;
  4. Configure Apache Document Root

    master

    By default, Apache serves files from /var/www/. To serve the Uvdesk project from a custom directory (e.g., /home/uvdesk/workstation/www), you must update the Apache configuration files and ensure the www-data user has access to your new directory.

    # 1. Create the directory structure
    mkdir -p /home/uvdesk/workstation/www
    
    # 2. Update /etc/apache2/apache2.conf
    # Replace /var/www/ with /home/uvdesk/workstation/www/ and set AllowOverride to All
    sudo nano /etc/apache2/apache2.conf
    
    # 3. Update /etc/apache2/sites-available/000-default.conf
    # Replace /var/www/html with /home/uvdesk/workstation/www
    sudo nano /etc/apache2/sites-available/000-default.conf
    
    # 4. Restart Apache
    sudo service apache2 restart;
    
    # 5. Add your user to the www-data group to manage permissions
    sudo usermod -aG uvdesk www-data;
    sudo service apache2 restart;
  5. Install UVdesk Community Skeleton via Composer

    master

    The recommended way to install the UVdesk helpdesk project is using Composer. This ensures better dependency management and easier updates. Run the following command to create a new project directory named helpdesk-project.

    $ composer create-project uvdesk/community-skeleton helpdesk-project
  6. Configure your helpdesk project

    master

    Once the project files are downloaded, you must configure the installation. You can do this using the CLI or a Web Installer Wizard.

    Using Terminal

    Run the following command to start the configuration process via the console:

    $ php bin/console uvdesk:configure-helpdesk

    Using Web Installer Wizard

    Navigate to the public directory of your project in a web browser. The URL depends on your installation method:

    • If using Composer: http(s)://localhost/helpdesk-project/public or your domain's public path.
    • If using Direct Download: http(s)://localhost/community-skeleton/public.

    If you are running the project locally in development mode, you can use the built-in server:

    php bin/console server:run
  7. Install Composer

    master

    Composer is the recommended package manager for installing Uvdesk. After downloading composer.phar, move it to /usr/local/bin/ to make it globally accessible.

    # Move and rename the executable to the global bin directory
    mv composer.phar composer
    sudo mv composer /usr/local/bin/
    
    # Verify installation
    composer --version
  8. Create a non-root user with sudo privileges

    master

    To manage file ownership correctly and avoid permission issues, create a dedicated non-root user (e.g., uvdesk) and add them to the sudo group. This user will be used to set up the helpdesk project.

    # Create user
    adduser uvdesk;
    
    # Add user to the sudo group
    usermod -aG sudo uvdesk;
    
    # Verify group membership
    groups uvdesk;
    
    # Set user password
    passwd uvdesk;
    
    # Switch to the new user
    su - uvdesk
  9. Install UVdesk Community Skeleton via Direct Download

    master

    If you are on a system with limited resources (like shared hosting), you can download a pre-packaged zip archive containing all dependencies. Use wget to download the latest stable release and unzip to extract it to your web directory (e.g., /var/www/).

    $ wget "https://cdn.uvdesk.com/uvdesk/downloads/opensource/uvdesk-community-current-stable.zip" -P /var/www/
    $ unzip -q /var/www/uvdesk-community-current-stable.zip -d /var/www/
  10. Complete the helpdesk installation steps

    master

    The installation process is broken down into several XHR-based steps that interact with the underlying Symfony application and CLI commands:

    1. Prepare Super User Details: Sends user information (name, email, password) to be stored in the session for later account creation.
    2. Update Configurations: Updates the .env file with the DATABASE_URL using the uvdesk_wizard:env:update command.
    3. Migrate Database Schema: Runs the uvdesk_wizard:database:migrate command to set up the database tables.
    4. Populate Database Entities: Runs doctrine:fixtures:load --append to seed the database with initial data.
    5. Create Default Super User: Creates the administrative user in the database using the details stored in the session.
  11. Default Login URLs for Admin and Customers

    master

    By default, UVdesk uses specific URL prefixes for different user roles. If you have not modified these prefixes, use the following paths:

    • Admin/Agent Login: http(s)://example.com/en/member/login
    • Customer Login: http(s)://example.com/en/customer/login
  12. System Requirements for UVdesk

    master

    Ensure your environment meets the following minimum requirements before installation:

    • OS: Ubuntu 16.04 LTS or higher / Windows 7 or Higher (WAMP / XAMPP).
    • Server: Apache 2 or NGINX.
    • RAM: 4GB or higher.
    • PHP: 8.1
    • Processor: Clock Cycle 1 GHz or higher.
    • MySQL: 5.7.23 or higher.
    • Composer: 2 or higher.
    • PHP Extensions: PHP IMAP and PHP Mailparse are required.