FreeScout на Ubuntu 24.04: пошаговая установка
Если саппорт компании ведётся в общем почтовом ящике, рано или поздно письма начинают теряться, а кто ответил клиенту — непонятно без переписки в мессенджере. Help Scout и его аналоги решают это красиво, но берут деньги за каждого агента каждый месяц. FreeScout — open-source альтернатива с похожим интерфейсом, которая один раз ставится на свой сервер и дальше не тянет с вас подписку. Ниже — установка с нуля на чистом Ubuntu 24.04.
Содержание
Обсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →Что понадобится и какие требования к серверу
FreeScout написан на Laravel и по требованиям к железу скромен — это не Zendesk и не Jira Service Management. Для команды до 10-15 агентов хватает:
- 1-2 vCPU;
- 2 ГБ RAM (с запасом — 4 ГБ, если на том же сервере будет ещё что-то крутиться);
- 20 ГБ диска — вложения от тикетов со временем накапливаются, поэтому лучше не экономить;
- домен или поддомен, например
support.example.com, с A-записью на IP сервера.
Из софта нужен стек LEMP: Nginx, MySQL (или MariaDB), PHP с набором расширений. Точную минимальную версию PHP и MySQL для конкретного релиза FreeScout стоит свериться на php.freescout.net — проект живой, требования иногда двигаются вверх. На конец августа 2026 года актуальные ветки PHP 8.1-8.3 и MySQL 5.7+/MariaDB 10.3+ работают без проблем, этой связкой и пойдём.
Если сервера ещё нет — под FreeScout достаточно младшего VPS с Ubuntu 24.04 на борту; для российской команды разумно смотреть на локацию в UK или US, чтобы не спотыкаться о блокировки при работе с внешними SMTP-провайдерами.
Устанавливаем PHP, MySQL и Nginx на Ubuntu 24.04
Подключаемся по SSH под пользователем с правами sudo и обновляем систему:
sudo apt update && sudo apt upgrade -y
Ставим Nginx и MySQL:
sudo apt install -y nginx mysql-server
PHP 8.2 в Ubuntu 24.04 идёт в стандартных репозиториях, отдельный PPA (вроде ondrej/php) не обязателен. Ставим сам PHP-FPM и расширения, которые нужны FreeScout — без них веб-установщик просто откажется работать дальше:
sudo apt install -y php8.2-fpm php8.2-mysql php8.2-mbstring php8.2-xml \
php8.2-curl php8.2-gd php8.2-zip php8.2-bcmath php8.2-imap php8.2-intl unzip
Проверяем, что php-fpm поднялся:
systemctl status php8.2-fpm --no-pager
Если сервис активен (active (running)) — двигаемся дальше.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США, Франция и РФ. Оплата картой РФ и по СБП.
Арендовать серверСоздаём базу данных для FreeScout
Заходим в MySQL под root:
sudo mysql
И создаём базу с отдельным пользователем — заводить приложение под root не стоит даже на своём сервере:
CREATE DATABASE freescout CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'freescout'@'localhost' IDENTIFIED BY 'замените_на_свой_пароль';
GRANT ALL PRIVILEGES ON freescout.* TO 'freescout'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Пароль сохраните — он понадобится в веб-установщике через пару шагов. utf8mb4 важен: без него эмодзи и часть юникод-символов в письмах клиентов будут ломать сохранение тикетов.
Устанавливаем FreeScout через веб-установщик
В отличие от многих Laravel-проектов, FreeScout не требует ручного composer install — разработчики собирают готовый архив с вендорными зависимостями внутри, что упрощает установку на сервер без Composer вообще. Скачиваем его в каталог веб-сервера:
cd /var/www
sudo mkdir freescout
sudo chown $USER:$USER freescout
cd freescout
curl -L -o freescout.zip https://github.com/freescout-helpdesk/freescout/releases/latest/download/freescout.zip
unzip freescout.zip
rm freescout.zip
Если релиз распространяется без прямой ссылки на .zip — зайдите на страницу релизов проекта на GitHub и возьмите актуальную ссылку вручную, названия файлов между версиями иногда меняются.
Выставляем права так, чтобы веб-сервер мог писать во storage и bootstrap/cache, но при этом не владел вообще всем каталогом:
sudo chown -R www-data:www-data /var/www/freescout
sudo find /var/www/freescout -type d -exec chmod 755 {} \;
sudo find /var/www/freescout -type f -exec chmod 644 {} \;
sudo chmod -R 775 /var/www/freescout/storage /var/www/freescout/bootstrap/cache
На этом с консолью пока всё — дальше установка идёт через браузер по адресу http://ваш-домен/install, но сначала нужно поднять для него Nginx.
Настраиваем Nginx, SSL и права доступа
Создаём конфиг сайта:
sudo nano /etc/nginx/sites-available/freescout
Содержимое:
server {
listen 80;
server_name support.example.com;
root /var/www/freescout/public;
index index.php;
client_max_body_size 25M;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
}
location ~ /\.(?!well-known).* {
deny all;
}
}
client_max_body_size стоит поднять заранее — иначе крупные вложения к тикетам будут обрываться с 413 ошибкой, а разбираться с этим постфактум неприятнее, чем прописать сразу.
Активируем сайт и проверяем конфиг:
sudo ln -s /etc/nginx/sites-available/freescout /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx
Для SSL проще всего Certbot — если на сервере ещё не настраивали получение сертификатов, стоит заранее прочитать про установку и настройку файервола UFW на VPS, чтобы порты 80/443 были открыты до запроса сертификата:
sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d support.example.com
Certbot сам допишет в конфиг Nginx блок для 443 порта и настроит редирект с http на https.
Теперь открываем https://support.example.com/install в браузере. Установщик проверит расширения PHP, попросит данные подключения к базе (хост localhost, имя freescout, пользователя и пароль из шага выше) и данные первого администратора. После завершения обязательно удалите или заблокируйте доступ к /install — оставленный открытым установщик это дыра в безопасности:
sudo rm -rf /var/www/freescout/install
Подключаем почту (IMAP/SMTP) и cron-задачи
Без cron FreeScout не будет забирать новые письма и не будет отправлять уведомления — веб-интерфейс сам по себе почту не опрашивает. Добавляем задачу планировщика Laravel в crontab пользователя www-data:
sudo crontab -u www-data -e
И добавляем строку:
* * * * * php /var/www/freescout/artisan schedule:run >> /dev/null 2>&1
Если раньше не приходилось настраивать cron на сервере вообще — пригодится статья про настройку cron-задач на VPS, там разобраны частые ошибки вроде неправильного PATH в переменных окружения www-data.
Дальше в панели FreeScout: Мои ящики → создать почтовый ящик, и указываете IMAP/SMTP данные — либо готового провайдера (Gmail, Yandex 360, корпоративная почта), либо своего почтового сервера. Если почта уже поднята на своём сервере через Postfix, у нас есть отдельный разбор установки Postfix на Ubuntu 24.04 — с ним же стоит один раз настроить SPF, DKIM и DMARC, иначе ответы из FreeScout будут периодически улетать у клиентов в спам.
Отдельный нюанс: FreeScout умеет забирать письма как по IMAP-опросу (стандартный вариант, письма подхватываются раз в минуту через тот же cron), так и через прямую доставку на сервер (pipe в скрипт при получении письма) — второй способ быстрее, но требует, чтобы почта для этого ящика приходила именно на ваш сервер, а не на внешний почтовый сервис. Для старта проще и надёжнее обычный IMAP — переходить на pipe-доставку имеет смысл, когда тикетов становится действительно много и минутная задержка начинает мешать.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США, Франция и РФ. Оплата картой РФ и по СБП.
Арендовать серверНужны сами нейросети для контента?
Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.
Частые вопросы
FreeScout бесплатный полностью?
Ядро системы бесплатное и открытое (AGPL), но часть модулей — например интеграция с телефонией, продвинутые отчёты или некоторые каналы — платные и продаются на сайте разработчиков. Базового набора для email-саппорта хватает и без них.
Можно ли перенести старые тикеты из Help Scout или Zendesk?
Да, у FreeScout есть модули и скрипты миграции для основных конкурентов, но перенос почти всегда требует ручной сверки после импорта — автоматика переносит структуру, но не всегда сохраняет 100% метаданных вроде тегов и внутренних заметок.
Нужен ли отдельный SMTP-провайдер или хватит своего Postfix?
Хватит и своего Postfix, если на сервере уже настроены SPF/DKIM/DMARC и IP не в спам-листах. Если репутация IP под вопросом (например, свежий сервер), надёжнее на первое время подключить внешний транзакционный SMTP.
Что делать, если после установки письма не подхватываются?
В первую очередь проверьте, что cron реально выполняется — sudo -u www-data php /var/www/freescout/artisan schedule:run вручную должен отработать без ошибок. Дальше смотрите логи в storage/logs/laravel.log — обычно там сразу видна причина, будь то неверный пароль от почты или закрытый порт IMAP у провайдера.
Как часто нужно обновлять FreeScout?
Разработчики выпускают обновления регулярно, в том числе с исправлениями безопасности. Раз в 1-2 месяца стоит проверять новую версию на странице релизов и обновляться — бэкап базы и файлов перед этим обязателен.
Обсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →