Skip to content
Follow
CMS

How to Install FreeScout with Nginx on Ubuntu Linux

Richard
Written by
Richard
Sep 10, 2023 Updated Sep 15, 2026 3 min read
How to Use Sticky Notes in Windows 11
How to Use Sticky Notes in Windows 11

FreeScout is a free help desk and shared inbox system that lets you host your own customer support platform on an Ubuntu Linux server. Running FreeScout on your own hardware keeps all your customer emails and data private while removing monthly subscription fees.

Advertisement

Setting up FreeScout on Ubuntu requires the Nginx web server, PHP, and a database to store support tickets. This guide walks you through the steps to get your self-hosted help desk up and running.

⚡ Quick Answer

Install Nginx, MariaDB, and PHP 8.3 using apt commands. Create a FreeScout database in MariaDB, then download FreeScout files to /var/www/freescout. Configure Nginx server block and secure with Certbot.

Advertisement

Install Nginx on Ubuntu Linux

Nginx serves the web pages to visitors browsing your domain when you install Nginx on Ubuntu Linux. You can install Nginx quickly by updating your system package list and running the default package manager command in your terminal window.

🐧Bash / Shell
sudo apt update
sudo apt install nginx

Control the Nginx service (starting, stopping, or restarting it) using these operational commands:

🐧Bash / Shell
sudo systemctl start nginx
sudo systemctl enable nginx

Open a web browser and navigate to the server IP address. The default Nginx landing page confirms a successful installation.

Install Nginx web server on Ubuntu Linux
Install Nginx web server on Ubuntu Linux

Additional help on installing Nginx: How to install Nginx on Ubuntu

Advertisement

Install MariaDB on Ubuntu Linux

MariaDB stores all FreeScout ticket histories and user records securely on your server. You can install MariaDB on Ubuntu by refreshing your package lists and pulling the server package directly from the command line.

🐧Bash / Shell
sudo apt update
sudo apt install mariadb-server

Ensure the database engine starts automatically on boot:

🐧Bash / Shell
sudo systemctl enable mariadb
sudo systemctl start mariadb

Test the database service connection:

🐧Bash / Shell
sudo mariadb

A version greeting appears on successful connection. Additional help on installing MariaDB: How to install MariaDB on Ubuntu Linux

Advertisement

Create FreeScout database

FreeScout requires a dedicated database named freescoutdb to store all application records securely. You must run the built-in security script to lock down your database engine before you create FreeScout database tables and user accounts.

🐧Bash / Shell
sudo mysql_secure_installation

Work through the prompts to remove anonymous accounts and restrict remote database logins.

Log back into MariaDB to provision the application database:

🐧Bash / Shell
sudo mariadb

Execute these queries inside the MariaDB prompt:

Advertisement
💻Code
CREATE DATABASE freescoutdb CHARSET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER freescoutdbuser@localhost IDENTIFIED BY 'your_secure_password';
GRANT ALL ON freescoutdb.* TO freescoutdbuser@localhost WITH GRANT OPTION;
FLUSH PRIVILEGES;
exit

Install PHP and Required Extensions

FreeScout relies on PHP to execute application logic. PHP 8.3 serves as the standard runtime version for Ubuntu 24.04.

🐧Bash / Shell
sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt install php8.3-fpm php8.3-mysql php8.3-curl php8.3-gd php8.3-imap php8.3-mbstring php8.3-xml php8.3-zip php8.3-intl

Download and Configure FreeScout

Generate the target directory and download the application source files:

⬛Command Prompt
sudo mkdir -p /var/www/freescout
cd /var/www/freescout
sudo git clone https://github.com/freescout-helpdesk/freescout .
sudo chown -R www-data:www-data /var/www/freescout

Nginx Server Block and SSL

An Nginx server block (a configuration file that defines how your domain responds to visitor requests) lets you handle incoming web traffic correctly. You set up a server block by creating a dedicated configuration file inside the Nginx directory that points directly to your application files.

🐧Bash / Shell
sudo nano /etc/nginx/sites-available/freescout

Paste the configuration pointing to the /var/www/freescout/public directory and ensure fastcgi_pass points to unix:/run/php/php8.3-fpm.sock.

Advertisement

Activate the site configuration:

🐧Bash / Shell
sudo ln -s /etc/nginx/sites-available/freescout /etc/nginx/sites-enabled/
sudo systemctl restart nginx

Secure with Certbot:

🐧Bash / Shell
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx

Complete the prompts to encrypt web traffic using a complimentary SSL certificate.

Installation Wizard

The browser-based FreeScout installation wizard handles final application configuration by checking system requirements and setting up your admin account. Accessing your domain in a web browser launches this wizard to accept your database credentials and finish the setup process.

Advertisement
  • Check requirements
  • Enter database details
  • Create your admin account

Configure background worker tasks by running sudo crontab -u www-data -e and appending the cron schedule provided by the FreeScout installer. Access the administrative dashboard upon completion.

Install FreeScout Help Desktop with Nginx on Ubuntu Linux
Install FreeScout Help Desktop with Nginx on Ubuntu Linux

Reference: FreeScout

Was this guide helpful?

Was this helpful?
Richard

About the Author

Richard

Tech Writer, IT Professional

Richard is a writer at Geek Rewind who turns complex IT tasks into clear, step-by-step guides. He draws on years of hands-on experience in system administration and enterprise IT operations, focusing on Windows, Linux and WordPress: the problems people actually run into, and the fixes that work. His server and WordPress guides come from systems he runs himself. Richard builds and maintains the platform behind Geek Rewind, from its Ubuntu servers and Nginx configuration to its custom WordPress plugins. Many new tutorials start with readers' questions, and he's always glad to answer them in the comments.

Advertisement

📚 Related Tutorials

How to Install Nginx on Ubuntu Linux
Ubuntu Linux How to Install Nginx on Ubuntu Linux
How to Install Ubuntu Linux
Ubuntu Linux How to Install Ubuntu Linux
How to Install GNOME Desktop on Ubuntu 24.04
Ubuntu Linux How to Install GNOME Desktop on Ubuntu 24.04
How to Install KDE Desktop on Ubuntu 24.04
Ubuntu Linux How to Install KDE Desktop on Ubuntu 24.04

1 Comment

Leave a Comment

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