Install FreeScout Help Desk on CentOS Stream | Rocky Linux | RHEL

A helpdesk plays an important role in a company or organization. It acts as a one-stop point of contact that offers centralized information and support management service capable of handling the internal and external queries in an organization. It helps resolve the clients’ grievances in a timely manner by automating the process with a ticket management system.

Helpdesk is important in a company due to the following:

  • Customer Satisfaction: clients are able to be attended to quickly with minimal effort.
  • Agent Productivity: it automates repetitive tasks that increases the production by helping agents perform complex tasks in little time.
  • IT Helpdesk: it helps the organization handle internal technical queries
  • Business Operations: It helps streamline the operation to meet the SLAs as well as prioritize required actions.

FreeScout is a free, open-source and lightweight helpdesk with a shared inbox written in PHP7+ (Laravel framework). This self-hosted clone of HelpScout helps users enjoy free Zendesk & Help Scout with full service control and privacy.

FreeScout acts as a perfect solution for organizations that require professional customer support but are unable to subscribe to Zendesk or Help Scout. One of the amazing features of FreeScout is that it can be easily deployed even on a shared hosting.

Other features associated with FreeScout are:

  • It is 100% Mobile-friendly.
  • Supports several languages that include Croatian, English, Czech, Danish, French, Dutch, German, Italian, Japanese, Persian, Korean, Polish, Portuguese, Russian, Spanish, Slovak, Swedish
  • Unlimited support agents, tickets, mailboxes, etc.
  • Web installer & updater.
  • Suppports modern Microsoft Exchange authentication.
  • Seamless email integration.
  • Auto reply.
  • Open tracking.
  • Configuring notifications on a per user basis.
  • Pasting screenshots from the clipboard into the reply area.
  • Collision detection – notice is shown when two agents open the same conversation.
  • Phone conversations.
  • LDAP integration.
  • Spam filter.
  • Forwarding, merging and moving conversations between mailboxes.
  • Sending conversations to multiple recipients at once.
  • Editing / hiding threads.

In this guide, we will comb through how to install FreeScout Help Desk on CentOS / Rocky / RHEL.

Setup Requirements

FreeScout is a pure PHP/MySQL application. The following are required:

  • Database: MySQL 5.0+ / MariaDB 5.0+ / PostgreSQL
  • PHP: 7.1 – 8.x, except 8.1
  • Webserver: Nginx / Apache / IIS

Step 1: Install and Configure Database Server

For this guide, we will use MySQL/MariaDB database. This can be installed on CentOS / Rocky / RHEL using the guides below:

Once installed, create a database for FreeScout. First login to the root user using the created password:

mariadb -u root -p

Create a database as shown:

CREATE DATABASE freescout CHARSET utf8mb4 COLLATE utf8mb4_unicode_ci;
GRANT ALL PRIVILEGES ON freescout.* TO freescout@localhost IDENTIFIED BY 'P@ssWord';
FLUSH PRIVILEGES;
EXIT;

Step 2: Install and Configure PHP

FreeScout requires PHP 7.1 – 8.x. For this guide, we will install PHP from the REMI repositories added to the system with the command:

##On CentOS Stream 10/ Rocky Linux 10/ RHEL 10
sudo dnf install -y https://rpms.remirepo.net/enterprise/remi-release-10.rpm 

##On CentOS Stream 9 / Rocky Linux 9/ RHEL 9
sudo dnf install -y https://rpms.remirepo.net/enterprise/remi-release-9.rpm 

Once the REMI repositories have been added install the prerffered versions of PHP.

$ sudo dnf module list php
Updating Subscription Management repositories.
Remi's Modular repository for Enterprise Linux 10 - x86_64                                                                                                           109 kB/s | 212 kB     00:01
Safe Remi's RPM repository for Enterprise Linux 10 - x86_64                                                                                                               138 kB/s | 390 kB     00:02
Remi's Modular repository for Enterprise Linux 10 - x86_64
Name                                   Stream                                      Profiles                                                      Summary
php                                    remi-7.4                                    common [d], devel, minimal                                  PHP scripting language
php                                    remi-8.0                                    common [d], devel, minimal                                    PHP scripting language
php                                    remi-8.1                                    common [d], devel, minimal                                    PHP scripting language
php                                    remi-8.2                                    common [d], devel, minimal                                    PHP scripting language
php                                    remi-8.3                                    common [d], devel, minimal                                    PHP scripting language
php                                    remi-8.4                                    common [d], devel, minimal                                PHP scripting language

Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled

To install PHP 8.3 enable the repository:

sudo dnf module enable php:remi-8.3 -y

required dependencies, use the command:

sudo yum install php-{mysqli,fpm,mbstring,xml,imap,zip,gd,curl,pdo,intl,cli,gmp,common}

Once installed, verify the version.

$ php --version
PHP 8.3.23 (cli) (built: Jul  1 2025 16:52:12) (NTS gcc x86_64)
Copyright (c) The PHP Group
Zend Engine v4.3.23, Copyright (c) Zend Technologies

Once installed, make the below adjustments:

sudo -- "$SHELL" -c "echo 'cgi.fix_pathinfo=0' >> /etc/php.ini"

For the changes to apply, start and enable PHP-FPM:

sudo systemctl enable --now php-fpm

Step 3: Download FreeScout Help Desk

Download the latest archive from the FreeScout downloads page. It is also possible to download the archive using the command:

sudo yum install git -y
cd /var/www/html
sudo git clone https://github.com/freescout-help-desk/freescout.git

Configure SELinux as shown:

sudo semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/html/freescout(/.*)?"
sudo restorecon -Rv /var/www/html/freescout

Step 4: Install and Configure Apache

We will the APache webserver with the command;

sudo yum install httpd -y

Create a virtualhost file:

sudo vim /etc/httpd/conf.d/freescout.conf

Add the lines to the file:

<VirtualHost *:80>
  ServerName freescout.example.com
  DocumentRoot "/var/www/html/freescout/public"
  Options Indexes FollowSymLinks
  ErrorLog /var/www/html/freescout/storage/logs/web-server.log
  <Directory "/var/www/html/freescout/public">
    AllowOverride All
    Require all granted
  </Directory>
</VirtualHost>

Set the correct permissions of the directory:

sudo chown -R apache:apache /var/www/html/freescout
sudo chmod -R 775 /var/www/html/freescout

Restart Apache:

sudo systemctl restart httpd

Allow the service through the firewall:

sudo firewall-cmd --add-service={http,https} --permanent
sudo firewall-cmd --reload

Step 5: Access the FreeScout Help Desk webUI

Now access FreeScout from your browser using the URL http://server_domain_or_ip:

Start by checking the requirements.

Check for the permissions.

Now configure your FreeScout environment. Start by setting the URL and the protocol to use.

Configure the database by providing the details of the database created earlier.

Proceed and set up your FreeScout application. Set the preferred language and TimeZone.

Create the admin user by providing the required credentials.

Finally, install FreeScout. Once complete, you will see this.

Login and enjoy the awesomeness of FreeScout Help Desk.

On successful login, you will see the below page.

Create a Mailbox by clicking on Manage Mailboxes-> New Mailbox:

Once created, the Mailbox will appear as shown:

Step 6: Install FreeScout Modules

Module are enabled on FreeScout by navigating to Manage->Modules. But first, you need to configure Selinux as shown below:

sudo setsebool -P httpd_can_network_connect true

You can also create a Cron job for fetching emails on FreeScout

$ sudo crontab -u apache -e
* * * * * php /var/www/html/freescout/artisan schedule:run >> /dev/null 2>&1

Now to enable a module, you need to obtain a Lincense Key from FreeScout. Once you have the License key for the required module, navigate to Manage->Modules, then provide the license and install the preferred module.

Step 7: Install FreeScout Help Desk using Docker

It is also possible to install FreeScout using Docker. Begin by installing Docker on CentOS Stream | Rocky Linux | RHEL:

sudo dnf -y install dnf-plugins-core
sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo systemctl enable --now docker

Once docker has been installed, ensure that the system user has been added to the docker group.

sudo usermod -aG docker $USER
newgrp docker

Verify the installation.

$ docker compose version
Docker Compose version v2.38.2

Now clone into the FreeScout Docker repository:

sudo yum install git -y
git clone https://github.com/tiredofit/docker-freescout.git

Now navigate to the below directory:

cd docker-freescout/examples

Modify the docker-compose YAML file:

vim docker-compose-no-proxy.yml

Make adjustments where required, for example:

$ vim docker-compose.yml
services:
  freescout-app:
    image: tiredofit/freescout
    container_name: freescout-app
    ports:
    - 81:80
    links:
    - freescout-db
    volumes:
    ### 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
    environment:
    - CONTAINER_NAME=freescout-app
    - DB_HOST=freescout-db
    - DB_NAME=freescout
    - DB_USER=freescout
    - DB_PASS=P@ssWord
    - SITE_URL=http://freescout.example.com:81
    - ADMIN_EMAIL=[email protected]
    - ADMIN_PASS=StrongPassword
    - ENABLE_SSL_PROXY=FALSE
    - DISPLAY_ERRORS=FALSE
    - TIMEZONE=Africa/Nairobi
    restart: always

  freescout-db:
    image: tiredofit/mariadb
    container_name: freescout-db
    volumes:
      - ./db:/var/lib/mysql
    environment:
      - ROOT_PASS=password
      - DB_NAME=freescout
      - DB_USER=freescout
      - DB_PASS=P@ssWord
      - CONTAINER_NAME=freescout-db
    restart: always

  freescout-db-backup:
    container_name: freescout-db-backup
    image: tiredofit/db-backup
    links:
     - freescout-db
    volumes:
      - ./dbbackup:/backup
    environment:
      - CONTAINER_NAME=freescout-db-backup
      - DB_HOST=freescout-db
      - DB_TYPE=mariadb
      - DB_NAME=freescout
      - DB_USER=freescout
      - DB_PASS=P@ssWord
      - DB_DUMP_FREQ=1440
      - DB_DUMP_BEGIN=0000
      - DB_CLEANUP_TIME=8640
      - COMPRESSION=BZ
      - MD5=TRUE
    restart: always

If you have an FQDN, you can use an HTTPS site URL and enable SSL proxy by using the file docker-compose.yml

Once the desired changes have been made, save the file and run the containers with the command:

docker compose -f docker-compose-no-proxy.yml up -d

You need to specify the YAML file to be used if you want to run an HTTP site. Once started, check the status:

$ docker ps

Now allow HTTP and HTTPS through the firewall:

sudo firewall-cmd --add-service={http,https} --permanent
sudo firewall-cmd --reload

Acces the an enjoy FreeScout using the URL http:/domain_name or https://domain_name:

Then login with the credentials you set in the docker-compose-no-proxy.yaml file. Enjoy!

Conclusion

That marks the end of this guide on how to install FreeScout Help Desk on CentOS Stream | Rocky Linux | RHEL. Yo are now set to enjoy free Zendesk & Help Scout with full service control and privacy. I hope this was helpful.

See more:

Join our Linux and open source community. Subscribe to our newsletter for tips, tricks, and collaboration opportunities!

Recent Post

Unlock the Right Solutions with Confidence

At CloudSpinx, we don’t just offer services - we deliver clarity, direction, and results. Whether you're navigating cloud adoption, scaling infrastructure, or solving DevOps challenges, our seasoned experts help you make smart, strategic decisions with total confidence. Let us turn complexity into opportunity and bring your vision to life.

Leave a Comment

Your email address will not be published. Required fields are marked *

Related Post

Imagine you are a customer service agent dealing with customers from different clients and they get in touch with you […]

In this guide you’ll learn to install KVM with Virtual Machine Manager on Linux Mint. KVM, short for Kernel-based Virtual […]

In this tutorial, we will focus on how to install OpenNMS on RHEL 9/ CentOS Stream 9. Monitoring in IT […]

Let's Connect

Unleash the full potential of your business with CloudSpinx. Our expert solutions specialists are standing by to answer your questions and tailor a plan that perfectly aligns with your unique needs.
You will get a response from our solutions specialist within 12 hours
We understand emergencies can be stressful. For immediate assistance, chat with us now

Contact CloudSpinx today!

Download CloudSpinx Profile

Discover the full spectrum of our expertise and services by downloading our detailed Company Profile. Simply enter your first name, last name, and email address.