How to Install FreeScout with Nginx on Ubuntu Linux
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.
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.
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.
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.
sudo apt update sudo apt install nginx
Control the Nginx service (starting, stopping, or restarting it) using these operational commands:
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. 
Additional help on installing Nginx: How to install Nginx on Ubuntu
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.
sudo apt update sudo apt install mariadb-server
Ensure the database engine starts automatically on boot:
sudo systemctl enable mariadb sudo systemctl start mariadb
Test the database service connection:
sudo mariadb
A version greeting appears on successful connection. Additional help on installing MariaDB: How to install MariaDB on Ubuntu Linux
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.
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:
sudo mariadb
Execute these queries inside the MariaDB prompt:
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.
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:
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.
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.
Activate the site configuration:
sudo ln -s /etc/nginx/sites-available/freescout /etc/nginx/sites-enabled/ sudo systemctl restart nginx
Secure with Certbot:
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.
- 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. 
Reference: FreeScout
Was this guide helpful?
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.
[…] How to install Nginx on Ubuntu […]