Перейти к основному содержимому

Руководство по установке

Это полное пошаговое руководство по установке FeedbackPulse SaaS. Внимательно следуйте каждому шагу.


Контрольный список перед установкой

Перед началом убедитесь, что у вас есть:

  • Сервер, соответствующий всем требованиям
  • Доменное имя, указывающее на IP-адрес вашего сервера
  • SSH-доступ к серверу (или FTP для загрузки файлов)
  • База данных MySQL/MariaDB и учётные данные
  • SMTP-аккаунт для email (Gmail, Mailgun, Amazon SES и т.д.)
  • Код покупки Envato (из заказа CodeCanyon)

Шаг 1: Загрузка файлов на сервер

Вариант А: Через SSH (рекомендуется)

# Подключиться к серверу
ssh user@your-server-ip

# Перейти в веб-директорию
cd /var/www

# Загрузить и распаковать ZIP-архив
# (загрузите zip через SCP, SFTP или wget по временной ссылке)
unzip feedbackpulse-saas.zip -d feedbackpulse-saas
cd feedbackpulse-saas

Вариант Б: Через FTP/SFTP

  1. Подключитесь к серверу с помощью FileZilla, WinSCP или аналогичного клиента
  2. Перейдите в веб-директорию (обычно /var/www/ или /home/user/public_html/)
  3. Загрузите всю распакованную папку feedbackpulse-saas
  4. Убедитесь, что поддиректория public/ доступна

Вариант В: Через cPanel File Manager

  1. Войдите в cPanel
  2. Откройте Файловый менеджер → перейдите в public_html (или поддиректорию)
  3. Загрузите ZIP-архив
  4. Распакуйте его на месте
  5. Важно: Необходимо установить корень документов в папку public/ (смотрите Настройка Apache)

Шаг 2: Установка прав доступа к файлам

cd /var/www/feedbackpulse-saas

# Установить владельца (замените www-data на пользователя вашего веб-сервера)
# Apache: www-data | Nginx: www-data или nginx
sudo chown -R www-data:www-data .

# Установить права для директорий
sudo find . -type d -exec chmod 755 {} \;
sudo find . -type f -exec chmod 644 {} \;

# Сделать storage и cache доступными для записи
sudo chmod -R 775 storage bootstrap/cache

Шаг 3: Настройка веб-сервера

Веб-сервер должен указывать на директорию public/ внутри проекта, а не на корень проекта. Это критическое требование безопасности.

Выберите свой веб-сервер:

Краткая версия:

Apache:

DocumentRoot /var/www/feedbackpulse-saas/public

Nginx:

root /var/www/feedbackpulse-saas/public;

После настройки перезапустите веб-сервер:

# Apache
sudo systemctl restart apache2

# Nginx
sudo systemctl restart nginx

Шаг 4: Символическая ссылка на хранилище (автоматически)

Веб-установщик автоматически пытается создать символическую ссылку на хранилище на последнем шаге. Никаких команд запускать не нужно.

  • VPS/Выделенный сервер: Символическая ссылка создаётся автоматически. Никаких действий не требуется.
  • Shared-хостинг: Если символические ссылки отключены на вашем хостинге, FeedbackPulse использует встроенный PHP-запасной вариант для обслуживания загружаемых файлов (логотипы, изображения). Всё работает — никаких действий не требуется.

На странице завершения установщика будет указано, создана ли символическая ссылка или активирован запасной вариант.


Шаг 5: Запуск веб-установщика

Откройте браузер и перейдите по адресу:

https://yourdomain.com/install

Установщик проведёт вас через 5 шагов. Смотрите Прохождение веб-установщика для подробных скриншотов и пояснений.

Краткое содержание:

Шаг 1: Проверка лицензии

  • Введите код покупки Envato/CodeCanyon
  • Это проверяет вашу лицензию через API Envato
  • Если вы не используете Envato, может быть доступна опция пропуска

Шаг 2: Проверка требований

  • Установщик автоматически проверяет:
    • Зависимости Vendor (vendor/autoload.php существует)
    • Версию PHP (8.2+)
    • Необходимые расширения PHP
    • Права доступа к директориям (storage, bootstrap/cache)
    • Среду хостинга (определяет shared-хостинг, показывает информацию о совместимости)
  • Исправьте все неудачные пункты перед продолжением

Шаг 3: Настройка базы данных

  • Введите учётные данные базы данных:
    • Хост: 127.0.0.1 (или localhost)
    • Порт: 3306
    • Имя базы данных: feedbackpulse (создайте её сначала!)
    • Имя пользователя: имя пользователя базы данных
    • Пароль: пароль базы данных
  • Установщик запустит все миграции и засеет данные по умолчанию

Сначала создайте базу данных:

CREATE DATABASE feedbackpulse CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

Шаг 4: Аккаунт администратора

  • Создайте аккаунт суперадмина:
    • Имя: Ваше имя
    • Email: [email protected]
    • Пароль: Надёжный пароль (минимум 8 символов)
  • Это аккаунт, с которым вы будете управлять всей платформой

Шаг 5: Настройка email

  • Введите данные SMTP:
    • Хост: например, smtp.gmail.com
    • Порт: 587 (TLS) или 465 (SSL)
    • Имя пользователя: ваше SMTP-имя пользователя
    • Пароль: пароль SMTP или пароль приложения
    • Шифрование: TLS (рекомендуется)
    • Адрес отправителя: [email protected]
  • Вы можете пропустить этот шаг и настроить позже в Настройках администратора

Завершение

  • Переключает драйверы сессий и кэша на database для продакшена
  • Генерирует CRON_TOKEN для веб-эндпоинта cron
  • Создаёт файл storage/installed.lock (предотвращает повторный запуск)
  • Показывает страницу успеха с инструкциями по настройке cron-задания (опции CLI и URL) и следующими шагами

Шаг 6: Настройка cron-задания

FeedbackPulse требует cron-задание для выполнения запланированных задач. Это необходимо для:

  • Отправки email-дайджестов (ежедневно/еженедельно)
  • Обработки истечения пробных периодов
  • Применения политик хранения данных
  • Отправки алертов об использовании
  • Запуска AI-обнаружения аномалий
  • Отправки запланированных отчётов

Вариант 1 — CLI-команда (VPS / Выделенный сервер):

crontab -e

Добавьте эту строку:

* * * * * cd /var/www/feedbackpulse-saas && php artisan schedule:run >> /dev/null 2>&1

Вариант 2 — URL/wget (Shared-хостинг):

Если ваша панель хостинга поддерживает только URL-based cron, используйте веб-эндпоинт cron (CRON_TOKEN автоматически генерируется при установке и отображается на странице завершения):

wget -q -O /dev/null "https://yourdomain.com/cron/run?token=YOUR_CRON_TOKEN"

Совет: На странице завершения установщика отображаются оба варианта с уже заполненным реальным путём к серверу и токеном. Скопируйте их оттуда!

Подробнее смотрите в Cron-задания и очереди.


Шаг 7: Настройка SSL (HTTPS)

HTTPS настоятельно рекомендуется для безопасности, особенно поскольку FeedbackPulse обрабатывает данные аутентификации и платёжные данные.

Использование Let's Encrypt (бесплатно)

# Установить Certbot
sudo apt install certbot python3-certbot-nginx # для Nginx
# ИЛИ
sudo apt install certbot python3-certbot-apache # для Apache

# Получить сертификат
sudo certbot --nginx -d yourdomain.com # для Nginx
# ИЛИ
sudo certbot --apache -d yourdomain.com # для Apache

Certbot автоматически настроит ваш веб-сервер для HTTPS и установит автоматическое обновление.

Подробнее смотрите в SSL-сертификаты.


Шаг 8: Проверка установки

Пройдитесь по этому контрольному списку:

ПроверкаКакОжидаемый результат
Лендинг загружаетсяОткройте https://yourdomain.comВидна лендинговая страница
Вход работаетОткройте https://yourdomain.com/loginВойдите с учётными данными суперадмина
Панель администратораОткройте https://yourdomain.com/admin/dashboardВиден дашборд администратора
Ссылка на хранилищеОткройте https://yourdomain.com/storage/Нет ошибки 404
Проверка работоспособностиОткройте https://yourdomain.com/upВиден текст «OK»
Cron работаетПроверьте Admin → SettingsНет предупреждений о cron
Email работаетAdmin → Settings → Email → Send TestПолучено тестовое письмо

Действия после установки

После завершения установки:

  1. Проверьте планы подпискиAdmin → Plans (редактирование цен, лимитов, функций)
  2. Настройте платёжные шлюзыAdmin → Settings → Payments (ключи API Stripe/PayPal)
  3. Настройте лендингAdmin → Landing Page
  4. Проверьте доставку emailAdmin → Settings → Email → Send Test Email
  5. Настройте wildcard DNS (опционально) — для поддоменов арендаторов. Смотрите Настройка Wildcard DNS.
  6. Создайте первого арендатора — зарегистрируйтесь по адресу /register в режиме инкогнито

Устранение неполадок при установке

ПроблемаРешение
Белая страницаПроверьте storage/logs/laravel.log на наличие ошибок. Обычно проблема с правами доступа.
Ошибка 500Временно включите режим отладки: установите APP_DEBUG=true в .env, затем проверьте ошибку.
«Class not found»Убедитесь, что директория vendor/ присутствует и целостна. При необходимости заново загрузите её из скачанного пакета.
Отказ подключения к базе данныхПроверьте учётные данные, убедитесь, что MySQL запущен, проверьте, имеет ли значение localhost или 127.0.0.1.
Установщик не загружаетсяУбедитесь, что корень веба указывает на директорию public/.
CSS/JS не загружаютсяОчистите кэш браузера. Если изображения отсутствуют, запасной вариант хранилища обрабатывает это автоматически на shared-хостинге. На VPS посетите /update как суперадмин для повторного создания символической ссылки.
Отказ в доступеПовторно выполните команды chown и chmod из Шага 2.

Подробнее смотрите в Устранение неполадок.


Следующие шаги