FreeScout
Open Source Zendesk alternative.
Ubuntu Interactive script
$ sudo apt install wget
$ wget https://raw.githubusercontent.com/freescout-helpdesk/scripts/master/install/ubuntu.sh
$ chmod u+x ubuntu.sh
$ sudo bash ubuntu.sh
Manual Install
$ sudo apt-get update
$ sudo apt install nginx
$ sudo rm /var/www/html/*nginx*.html
$ sudo apt install php8.0 php8.0-mysql php8.0-fpm php8.0-mbstring php8.0-xml php8.0-imap php8.0-zip php8.0-gd php8.0-curl
$ sudo apt install mysql-server libmysqlclient-dev
$ sudo apt install git
$ sudo -- "$SHELL" -c "echo 'cgi.fix_pathinfo=0' >> /etc/php/8.0/fpm/php.ini"
$ mysql -u root -p
> CREATE USER 'freescout'@'localhost' IDENTIFIED BY 'XXX';
GRANT ALL PRIVILEGES ON `freescout`.* TO `freescout`@`localhost`;
> exit
$ sudo mkdir -p /var/www/html
$ sudo chown www-data:www-data /var/www/html
$ cd /var/www/html
$ wget https://freescout.net/download/
$ unzip package-name.zip
$ sudo chown -R www-data:www-data /var/www/html
$ sudo usermod -g www-data freescout
$ find /var/www/html -type f -exec chmod 664 {} \;
$ find /var/www/html -type d -exec chmod 775 {} \;
$ sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/example.com
$ sudo rm /etc/nginx/sites-enabled/default
$ sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/example.com
$ sudo nano /etc/nginx/sites-enabled/example.com
# config
server {
listen 80;
listen [::]:80;
server_name example.com www.example.com;
root /var/www/html/public;
index index.php index.html index.htm;
error_log /var/www/html/storage/logs/web-server.log;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/run/php/php8.0-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# Uncomment this location if you want to improve attachments downloading speed.
# Also make sure to set APP_DOWNLOAD_ATTACHMENTS_VIA=nginx in the .env file.
#location ^~ /storage/app/attachment/ {
# internal;
# alias /var/www/html/storage/app/attachment/;
}
location ~* ^/storage/attachment/ {
expires 1M;
access_log off;
try_files $uri $uri/ /index.php?$query_string;
}
location ~* ^/(?:css|js)/.*\.(?:css|js)$ {
expires 2d;
access_log off;
add_header Cache-Control "public, must-revalidate";
}
location ~* ^/(?:css|fonts|img|installer|js|modules|[^\\\]+\..*)$ {
expires 1M;
access_log off;
add_header Cache-Control "public";
}
location ~ /\. {
deny all;
}
}
# Apply.config
$ sudo nginx -t
$ sudo service nginx reload
$ sudo snap install --classic certbot
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
$ sudo certbot --nginx
$ certbot --nginx --register-unsafely-without-email
$ certbot renew --dry-run
$ sudo crontab -e
0 12 * * * /usr/bin/certbot renew --quiet
References
https://freescout.net/
https://github.com/freescout-helpdesk/freescout