FreeScout is the most popular open-source helpdesk software available today — a self-hosted alternative to Zendesk and Freshdesk that costs nothing in monthly fees. But installing it correctly is a different story.
This guide covers everything: server requirements, the full installation process, SSL, email deliverability, and the hidden complexities that catch most teams off guard.
Want to skip straight to a working helpdesk?
We handle the full FreeScout installation on your server — SSL, email, security hardening, and a 1-hour onboarding call. Done in 24 hours.
One-time fee · 30-day support · Money-back guarantee
What is FreeScout?
FreeScout is a free, open-source help desk and shared inbox built with Laravel. It runs on your own server, stores your data under your control, and has no per-agent pricing or monthly subscription fees.
Key capabilities:
- Shared mailboxes — your whole team works from one inbox
- Ticket management — assign, tag, prioritize, and track every conversation
- Email integration — works with any SMTP provider
- 50+ modules — live chat, knowledge base, AI replies, reports, satisfaction ratings
- White-label — fully brandable with your own logo and colors
The catch: it's self-hosted. You need a server, and you need to configure it.
Server Requirements
Before you install FreeScout, you need a VPS that meets these minimum requirements:
| Requirement | Minimum | Recommended | |---|---|---| | OS | Ubuntu 20.04 | Ubuntu 22.04 LTS | | RAM | 1 GB | 2 GB | | CPU | 1 vCPU | 2 vCPU | | Disk | 20 GB SSD | 40 GB SSD | | PHP | 7.4 | 8.2 | | Database | MySQL 5.6+ | MySQL 8.0 | | Web server | Apache / NGINX | NGINX |
Recommended VPS providers: Hetzner (best value), DigitalOcean (easiest), Vultr, Linode.
A €4/month Hetzner CX11 (2GB RAM, 2 vCPU) is perfectly sufficient for most teams.
The Full Installation Process
Here is what a complete FreeScout installation involves. Read this carefully before deciding whether to do it yourself.
Step 1: Server preparation
Update your server and install required packages:
sudo apt update && sudo apt upgrade -y
sudo apt install -y nginx mysql-server php8.2 php8.2-fpm \
php8.2-mysql php8.2-mbstring php8.2-xml php8.2-curl \
php8.2-imap php8.2-zip php8.2-gd php8.2-bcmath \
php8.2-intl unzip git curl
Step 2: MySQL database setup
sudo mysql_secure_installation
sudo mysql -u root -p
CREATE DATABASE freescout CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'freescout'@'localhost' IDENTIFIED BY 'your_strong_password';
GRANT ALL PRIVILEGES ON freescout.* TO 'freescout'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Step 3: Download FreeScout
cd /var/www
sudo git clone https://github.com/freescout-helpdesk/freescout.git
sudo chown -R www-data:www-data /var/www/freescout
sudo chmod -R 755 /var/www/freescout
Step 4: Composer dependencies
cd /var/www/freescout
sudo -u www-data composer install --no-dev
Step 5: Environment configuration
sudo cp .env.example .env
sudo nano .env
Configure your database credentials, app URL, and mail settings. This file has 40+ variables that all need to be set correctly.
Step 6: Laravel setup
sudo -u www-data php artisan key:generate
sudo -u www-data php artisan migrate --force
sudo -u www-data php artisan freescout:after-app-update
sudo -u www-data php artisan storage:link
Step 7: NGINX configuration
Create a server block at /etc/nginx/sites-available/freescout:
server {
listen 80;
server_name your-domain.com;
root /var/www/freescout/public;
index index.php;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location ~ /\.ht {
deny all;
}
}
Step 8: SSL certificate
sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d your-domain.com
Certbot will modify your NGINX config and set up auto-renewal. If your DNS isn't propagated yet, this will fail.
Step 9: Queue workers (critical — most people miss this)
FreeScout uses Laravel queues for email fetching and sending. Without a running queue worker, emails won't be processed.
Create a supervisor config at /etc/supervisor/conf.d/freescout-worker.conf:
[program:freescout-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /var/www/freescout/artisan queue:work --sleep=3 --tries=3 --timeout=60
autostart=true
autorestart=true
user=www-data
numprocs=1
redirect_stderr=true
stdout_logfile=/var/www/freescout/storage/logs/worker.log
sudo apt install -y supervisor
sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start freescout-worker:*
Step 10: Cron job
sudo crontab -u www-data -e
Add:
* * * * * php /var/www/freescout/artisan schedule:run >> /dev/null 2>&1
Email Configuration (Where Most Installations Break)
Email is the hardest part of FreeScout. You need to configure two separate things:
Outgoing mail (SMTP): FreeScout sends notification emails and replies through an SMTP server. You can use Gmail, SendGrid, Mailgun, Amazon SES, or your own server.
Incoming mail (IMAP): FreeScout fetches new tickets by polling your mailbox via IMAP. The polling interval, connection timeout, and SSL settings all need to be correct.
Beyond SMTP/IMAP, email deliverability requires:
- SPF record — tells receiving servers your server is allowed to send from your domain
- DKIM — cryptographically signs outgoing emails to prove they're genuine
- DMARC — policy that handles emails failing SPF/DKIM checks
- Reverse DNS (PTR record) — your server IP must resolve back to your domain
Miss any one of these and your emails land in spam.
Security Hardening
A default FreeScout installation is not production-ready from a security standpoint. You need:
# Firewall
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
# Fail2ban — blocks brute force attacks
sudo apt install -y fail2ban
sudo systemctl enable fail2ban
# Disable root SSH login
sudo nano /etc/ssh/sshd_config
# Set: PermitRootLogin no
# Set: PasswordAuthentication no
sudo systemctl restart sshd
How Long Does FreeScout Installation Take?
An experienced Linux sysadmin who has done it before: 3–4 hours.
A team doing it for the first time, troubleshooting issues: 1–3 days.
Common points of failure:
- PHP version conflicts
- MySQL permission errors
- NGINX misconfiguration causing 502 errors
- SSL certificate failing due to DNS not propagated
- Queue workers not starting properly
- Email not sending due to SMTP port blocking
- Emails landing in spam due to missing SPF/DKIM
The Alternative: Professional Installation
If you're reading this guide and thinking "this is more complex than I expected" — you're not alone. This is exactly why most businesses hire an expert.
Our professional FreeScout installation service:
- Completes in 24 hours — not 3 days of troubleshooting
- Includes everything — NGINX, PHP, MySQL, SSL, SPF, DKIM, DMARC, firewall, fail2ban
- Email deliverability guaranteed — your emails won't land in spam
- 30 days of support — we fix any issues that come up after go-live
- 1-hour onboarding call — your team learns how to use FreeScout properly
- One-time fee from $100 — no monthly subscription, ever
This took you 12 minutes to read. The installation takes 6 hours. We do it in 24 hours for $100.
We handle the full FreeScout installation on your server — SSL, email, security hardening, and a 1-hour onboarding call. Done in 24 hours.
One-time fee · 30-day support · Money-back guarantee
Frequently Asked Questions
Can I install FreeScout on shared hosting? No. FreeScout requires SSH access, Composer, PHP CLI, and a queue worker — none of which are available on shared hosting. You need a VPS.
Which PHP version should I use? PHP 8.2 is recommended. PHP 7.4 reaches end of life and has security vulnerabilities. FreeScout is fully compatible with 8.2.
Does FreeScout work with Gmail? Yes, but Google has restricted less secure app access. You need to configure OAuth2 or use an app password with 2FA enabled.
How many emails can FreeScout handle? A 2GB RAM VPS handles hundreds of tickets per day comfortably. For high-volume operations (1000+ tickets/day), you'll want 4GB RAM and Redis for queue management.
Is FreeScout GDPR compliant? Yes — because it's self-hosted, your data never leaves your server. This makes FreeScout inherently GDPR-compliant, unlike SaaS alternatives.
Resources
- FreeScout Official Website — the open-source helpdesk platform
- FreeScout GitHub Repository — source code and issue tracker
- Ubuntu Server Documentation — official Ubuntu server guide
- Certbot Documentation — free SSL certificate automation
- NGINX Configuration Guide — web server configuration reference