How to Install FreeScout with Nginx on Ubuntu Linux
FreeScout is a free, self-hosted help desk and shared inbox system that lets you run your own customer support platform on Ubuntu Linux using the Nginx web server. By hosting the software on your own server, you keep total control over your customer emails and data without paying monthly subscription fees.
Setting up FreeScout requires a server running Ubuntu Linux, the Nginx web server, PHP, and a database to store your support tickets. Managing your help desk this way cuts your software costs to zero while giving your team a complete customer service workspace.
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 displays the FreeScout help desk to visitors browsing the domain. Update your package list before grabbing the web server. Pull down the package using apt install nginx.
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. Install MariaDB on Ubuntu by refreshing package lists and pulling the mariadb-server package.
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 namedfreescoutdb to store application records securely. Execute the security script before generating the database structure. Access the MariaDB console to create freescoutdb afterward.
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
Configure Nginx to handle incoming web traffic by setting up a server block (a configuration file that defines how your domain responds to visitor requests). Create a dedicated configuration file within the Nginx configuration directory pointing toward the 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. Accessing the domain validates system dependencies, accepts database credentials, and configures administrator login parameters.
- 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. 
Conclusion: Self-hosting protects internal communications and reduces operational overhead. A production-ready help desk is now operational.
Reference: FreeScout
Was this guide helpful?
About the Author
Richard
Tech Writer, IT Professional
Richard, a writer for Geek Rewind, is a tech enthusiast who loves breaking down complex IT topics into simple, easy-to-understand ideas. With years of hands-on experience in system administration and enterprise IT operations, he’s developed a knack for offering practical tips and solutions. Richard aims to make technology more accessible and actionable. He's deeply committed to the Geek Rewind community, always ready to answer questions and engage in discussions.
[…] How to install Nginx on Ubuntu […]