FreeScout is ticketing based customer support helpdesk and shared inbox

FreeScout Free Ticketing System

Ticketing Based Customer Support Helpdesk and Shared Inbox

Ticketing System, Helpdesk, Email Management and Analytics at one place. Provide cutting edge customer support and take customer satisfaction to next level.


FreeScount is free and open source ticketing system that is a perfect alternative of Zendesk and Help Scout. It is the ideal helpdesk software for the companies who need to give an expert customer support. It provides simple and smooth email integration that transforms your inbox into entirely operational helpdesk system.

FreeScout is PHP (Laravel 5.5 framework) and MySQL based application featured with Slack integration, push notifications, telegram notifications, white-labeling, real-time reports, workflows & SLA. You can easily deploy on every hosting environment even on a shared hosting.

System Requirements

FreeScout is PHP and MySQL / MariaDB. Strongly recommended requirements are following:

  • PHP 7.0 – 7.4
  • MySQL 5.0+ / MariaDB 5.0+ / PostgreSQL
  • Nginx / Apache / IIS


FreeScout is powerful and lightweight helpdesk system to provide excellent customer care. It is definitive choice for entertainment, production, services, manufacturing, construction, gaming related industries. Important features include

Smooth email integration

Email integration permits your email clients to update FreeScout discussions. These commands must be utilized when answering to an email notification. Any content entered will be visible to the client when answering to an email notification. To notify your team members only use the @note command.

Workflows & SLA

Workflows plugin permits to manufacture work processes to order messages, send predefined messages, allocate them to the correct individual and even make SLA-like work processes. Work processes are like Gmail filters or rules in other email clients.

Satisfaction Ratings

Satisfaction ratings plugin let your clients to rate your support and let you view feedback in the reports. Satisfaction Ratings permit you to assess viability of your support team and measure client’s satisfaction.

Slack and Telegram Integration

FreeScout has smooth Slack and Telegram integration that let you immediately post events such as new discussions, client replies and discussion assigned. It also let you assign different mailboxes to different channels / bots.

Other Features

  • Push notifications
  • Web installer & updater
  • Starred conversations
  • Support multiple languages
  • Following a conversation
  • Auto reply
  • Saved replies
  • Notes
  • Email commands
  • Forwarding conversations
  • Moving conversations between mailboxes
  • Phone conversations
  • Sending new conversations to multiple recipients at once
  • Pasting screenshots from the clipboard into the reply area
  • Configuring notifications on a per user basis
  • Open tracking.
  • Tags
  • Editing / hiding threads
  • LDAP integration
  • Search
  • Spam filter
  • Translating tickets
  • Time tracking
  • Custom fields
  • White-labeling
  • Custom folders
  • Real-time reports


Installation using Github

Let’s first install nigix with following commands:

    sudo apt-get update
    sudo apt install nginx

Next, install PHP and required modules:

    sudo apt install php7.0 php7.0-mysqli php7.0-fpm php7.0-mbstring php7.0-xml php7.0-imap php7.0-json php7.0-zip php7.0-gd

Next, install MySQL with following command:

    sudo apt install mysql-server libmysqlclient-dev

Now, run following command to install git:

    sudo apt install git

Login to MySQL and create FreeScout database and user:

    CREATE DATABASE `freescout` CHARSET utf8mb4 COLLATE utf8mb4_unicode_ci;
    GRANT ALL PRIVILEGES ON `freescout`.* TO `freescout`@`localhost` IDENTIFIED BY “XXX”;

Create FreeScout directory and download application from github.

    mkdir -p /var/www/html
    sudo chown www-data:www-data /var/www/html
    cd /var/www/html
    git clone

Change owner and assign permissions to user:

    chown -R www-data:www-data /var/www/html
    sudo usermod -a -G www-data freescout
    find /var/www/html -type f -exec chmod 664 {} \;
    find /var/www/html -type d -exec chmod 775 {} \;

Create nigix configuration file:

    sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/
    rm /etc/nginx/sites-enabled/default
    ln -s /etc/nginx/sites-available/ /etc/nginx/sites-enabled/
    sudo nano /etc/nginx/sites-enabled/

Nigix config file should be like following:

    server {
    listen 80;
    listen [::]:80;
    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/php7.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;

Next, Reload Nigix:

    nginx -t
    service nginx reload

Install Certbot and enable HTTPS:

    apt-get update
    apt-get install software-properties-common
    add-apt-repository universe
    add-apt-repository ppa:certbot/certbot
    apt-get update
    apt-get install certbot python-certbot-nginx
    certbot –nginx –register-unsafely-without-email
    certbot renew –dry-run

When asked choose option 2: Redirect – Make all requests redirect to secure HTTPS access. Setup cronjob for auto renewal.

    0 12 * * * /usr/bin/certbot renew –quiet

Finally, Open web installer and follow instructions

Installation using Docker

Pull FreeScout Image from

    docker pull tiredofit/freescout

Configure Docker-compose.yml:

    version: ‘2’
    image: tiredofit/freescout
    container_name: freescout-app
    – freescout-db
    #### If you want to perform customizations to the source and have access to it, then uncomment this line – This includes modules
    #- ./data:/www/html
    #### Or, if you just want to use Stock Freescout and hold onto persistent files like cache and session use this, one or the other.
    – ./data:/data
    #### If you want to just keep the original source and add additional modules uncomment this line
    #- ./modules:/www/html/Modules
    – ./logs/:/www/logs
    – VIRTUAL_NETWORK=nginx-proxy
    – ZABBIX_HOSTNAME=freescout-app
    – DB_HOST=freescout-db
    – DB_NAME=freescout
    – DB_USER=freescout
    – DB_PASS=freescout
    – SITE_URL=
    – ADMIN_PASS=freescout
    – TIMEZONE=America/Vancouver
    – proxy-tier
    restart: always
    image: tiredofit/mariadb
    container_name: freescout-db
    – ./db:/var/lib/mysql
    – ROOT_PASS=password
    – DB_NAME=freescout
    – DB_USER=freescout
    – DB_PASS=freescout
    – ZABBIX_HOSTNAME=freescout-db
    – proxy-tier
    restart: always
    container_name: freescout-db-backup
    image: tiredofit/db-backup
    – freescout-db
    – ./dbbackup:/backup
    – ZABBIX_HOSTNAME=freescout-db-backup
    – DB_HOST=freescout-db
    – DB_TYPE=mariadb
    – DB_NAME=freescout
    – DB_USER=freescout
    – DB_PASS=freescout
    – DB_DUMP_FREQ=1440
    – DB_DUMP_BEGIN=0000
    – DB_CLEANUP_TIME=8640
    – MD5=TRUE
    – proxy-tier
    restart: always
    name: nginx-proxy

Create an environment file. List of environment available at

Map persistent storage, review data-volumes configuration at

Make sure your desired ports are available and exposed. Finally run docker-compose.

Congrats! You have successfully installed FreeScout.