rk1ve

uvdesk

uvdesk is my main help desk service that i self host. it took a lot of configuration, but i finally got an installation that was currently and repeatable. there was a docker compose install for it, but as easy as it was, it was not maintained. so i decided to follow the documentation using composer, and it worked like a charm. i would advise to run uvdesk inside of a virtual machine and not an lxc. because it needs its specific dependencies, it is better to run it off of a virtual machine.

this is pretty much what i documented:

setup debian with hostname and ip address

nano /etc/network/interfaces
static
address x.x.x.x
netmask 255.255.255.0
gateway x.x.x.x
dns-nameservers x.x.x.x 9.9.9.9

update pacakes and install updates

apt update && apt upgrade -y

install prereqs

apt install curl wget zip composer -y

install apache2 and mariadb

apt install apache2 mariadb-server mariadb-client -y

install php modules for uvdesk

apt install php8.2-fpm -y X
apt install libapache2-mod-php8.2 -y X
apt install php8.2-bcmath -y X
apt install php8.2-bz2 -y X
apt install php8.2-calendar -y
apt install php8.2-ctype -y
apt install php8.2-curl -y X
apt install php8.2-dom -y X
apt install php8.2-exif -y
apt install php8.2-fileinfo -y
apt install php8.2-gd -y X
apt install php8.2-gmp -y X
apt install php8.2-iconv -y
apt install php8.2-intl -y
apt install php8.2-json -y
apt install php8.2-mbstring -y
apt install php8.2-mysql -y X
apt install php8.2-mysqli -y
apt install php8.2-pdo -y
apt install php8.2-phar -y
apt install php8.2-posix -y
apt install php8.2-soap -y X
apt install php8.2-tokenizer -y
apt install php8.2-xdebug -y X
apt install php8.2-xsl -y X
apt install php8.2-xml -y
apt install php8.2-xmlreader -y
apt install php8.2-xmlwriter -y
apt install php8.2-zip -y X
apt install php8.2-apcu -y X
apt install php8.2-redis -y X
apt install php8.2-imagick -y X
apt install php8.2-imap -y X
apt install php8.2-mailparse -y X

enable php8.2-fpm

a2enmod proxy_fcgi setenvif
a2enconf php8.2-fpm

configure mariadb

mysql_secure_installation
login as root
N for unix socket auth
Y to remove anonymous users
Y to disallow root login remotely
Y to remove test DB
Y to reload privilege table

login to mariadb (enter root password)

mysql -u root -p

enter these commands to create the UV Desk DB

CREATE DATABASE uvdesk_db;
GRANT ALL ON uvdesk.* to ‘uvdesk_user’@’localhost’ IDENTIFIED BY ‘secure-password’;
FLUSH PRIVILEGES;
EXIT;

download latest uvdesk zip

wget -O uvdesk.zip https://cdn.uvdesk.com/uvdesk/downloads/opensource/uvdesk-community-current-stable.zip

extract to /var/www

unzip ./uvdesk.zip -d /var/www/

rename extracted folder

mv /var/www/uvdesk* /var/www/uvdesk

set permissions for the directory

chown -R www-data:www-data /var/www/uvdesk

create uvdesk apache configuration file

nano /etc/apache2/sites-available/uvdesk.conf

paste this in the .conf file


ServerName x.x.x.x

DocumentRoot /var/www/uvdesk/public

<Directory /var/www/uvdesk/public>
    Require all granted
    Options Indexes FollowSymLinks
    AllowOverride All
</Directory>

add port 8081 to apache2

cd /etc/apache2
nano ports.conf
Listen 8081

enable rewrite modules

a2enmod rewrite

enable uvdesk site

a2ensite uvdesk

restart apache2

systemctl restart apache2

navigate to http://IP/uvdesk

setup the server

Server: 127.0.0.1
Port: 3306
Username: uvdesk_user
Password: secure-password
Database: uvdesk_db

create the super admin account

[email protected]
password123

website configuration panels

member > admin – admin
customer > guest – guest

portals

x.x.x.x:8081/en/admin/login – dashboard
x.x.x.x:8081/en – customer portal

create swift mailer

Mailer ID: Zoho SMTP
Transport Type: SMTP
Check enabled delivery
Server: smtppro.zoho.com
Email: [email protected]
Password: password123
Port: 465
Encryption: SSL
Auth Mode: login

create mailbox

ID: Zoho IMAP
Name: Helpdesk
Check enable mailbox
Transport: IMAP
Host: {imappro.zoho.com:993/imap/ssl}INBOX
Username/Email: [email protected]
Password: password123
Outgoing Mail: Zoho SMTP

email settings table

Email ID: [email protected]
Name: Helpdesk
Swiftmailer ID: Zoho SMTP

sync mailbox

php /var/www/uvdesk/bin/console uvdesk:refresh-mailbox [email protected]

create cron job of sync (every 30 min)

*/30 * * * * php /var/www/uvdesk/bin/console uvdesk:refresh-mailbox [email protected]

preserve the moment.