Начинать
Установите FleetHub на cPanel, Hostinger или частный VPS менее чем за 10 минут.
Пользователи и роли
5 ролей автопарка с разрешениями Spatie — администратор, менеджер автопарка, менеджер, бухгалтер, водитель.
Особенности продукта
Транспортные средства, водители, запросы на транспортные средства, передача, журналы топлива, совокупная стоимость владения, соответствие требованиям, показатели состояния автопарка и многое другое.
Кастомизация
Пользовательские поля по типу автомобиля, марке, языку и интерфейсу.
Установить Хостингер
Выполните поэтапное развертывание самого дешевого единого общего пакета.
Установить cPanel
Развертывайте шаг за шагом на хостинге cPanel — терминал не требуется.
Безопасность и QR
Веб-перехватчики для подписи HTTPS, HMAC, журналы аудита и быстрое сканирование QR-кодов с помощью камеры.
Отчет и экспорт
7 отчетов по автопарку, экспорт Excel + PDF, фильтр по дате.
Оповещения по электронной почте
Напоминания о соблюдении требований, техническое обслуживание, запросы на получение просроченных транспортных средств и водительских прав.
Часто задаваемые вопросы
Работает ли FleetHub на самом дешевом одиночном плане Hostinger?
Да — FleetHub полностью совместим с Hostinger Single (~2,99 доллара США в месяц). Единый план включает PHP 8.3, MySQL, Cron Jobs и бесплатный SSL. Нет необходимости в SSH, Composer или командной строке. См. раздел Установка Hostinger.
Нужны ли мне технические навыки для установки?
Нет. Веб-установщик выполняет все функции: тестирование запросов, базу данных, миграцию и создание учетной записи администратора. Просто загрузите файл, перейдите на /install и следуйте инструкциям.
Как работают запланированные электронные письма (оповещения о соблюдении требований и обслуживании)?
FleetHub использует планировщик Laravel. Вам нужно настроить только одно задание cron для запуска каждую минуту; Laravel автоматически запускает каждую задачу вовремя. В cPanel: Дополнительно → Задания Cron. На Hostinger: hPanel → Дополнительно → Задания Cron. Если на хосте нет cron, используйте URL-адрес Cron в приложении с cron-job.org.
Какие методы амортизации поддерживаются?
Три метода: Прямая, Убывающий баланс и Производственные единицы (в часовых километрах). Стоимость автомобиля обновляется ежемесячно и включается в таблицу совокупной стоимости владения.
Работает ли QR-сканер на телефонах?
Да — водители и менеджеры сканируют QR-код автомобиля с помощью камеры браузера через html5-qrcode. Быстрое сканирование (топливо, часы, неисправности) требует регистрации. Требуется HTTPS.
Могу ли я добавить частные поля без кода?
Иметь. Администратор → Пользовательские поля позволяет добавлять неограниченное количество атрибутов, отмечать тегами по типу транспортного средства, обязательную маркировку и сортировку перетаскиванием.
Сколько языков поддерживает FleetHub?
11 языков: английский, вьетнамский, испанский, французский, немецкий, китайский, японский, португальский (BR), русский, арабский (RTL) и хинди. Администрирование переводов осуществляется в Администрирование → Переводы.
Можно ли установить FleetHub на общий хостинг cPanel?
Да — FleetHub работает на общем хостинге cPanel с PHP 8.2+, MySQL и Cron Jobs. Нет необходимости в Composer или Node.js на сервере. См. раздел Установка cPanel.
Как провести ребрендинг FleetHub (страница входа, заголовок вкладки и цвета)?
FleetHub можно полностью переименовать от администратора — не нужно менять код или npm run build. Логотип, нижний колонтитул, значок и заголовок вкладки для входа в меню Настройки → Брендинг → Имя приложения. Вкладка Внешний вид позволяет настроить светлый/темный цвет.
auth.login_subtitle по языку → настроить цвет в Настройки → Внешний вид.
Краткая справка:
| Товар | Пример | Как изменить |
|---|---|---|
| Логотип и усилитель; имя | ABC Fleet | Настройки → Брендинг → Имя приложения |
| Войти в субтитры | Введите информацию для доступа к FleetHub | Администрирование → Переводы → auth.login_subtitle |
| Название вкладки браузера | Имя приложения | Настройки → Брендинг → Имя приложения |
| Цвета приложения | Пользовательская цветовая палитра | Настройки → Внешний вид |
1. Логотип и имя: Войти администратор → Настройки → Брендинг → обновить Имя приложения (и загрузить логотип, если необходимо) → Сохранить.
2. Субтитры для входа: Редактировать auth.login_subtitle в Администрирование → Переводы или файл lang/{locale}/auth.php.
3. Цвет приложения: Настройки → Внешний вид — отдельные настройки цвета для светлого и темного. Нажмите Сохранить внешний вид, чтобы применить.
Обзор
FleetHub — корпоративная система управления автопарком для внутренних служебных ТС (50–200 единиц). Построена на Laravel 11, Vue 3 и Tailwind CSS — охватывает ТС, водителей, заявки, передачи с картой повреждений, журналы топлива, расходы, TCO-аналитику, контроль соответствия и индекс здоровья автопарка. Не предназначена для такси или проката.
Быстро сканируйте QR
Сканируйте QR-код автомобиля, чтобы записать уровень топлива, обновить часы или сообщить о проблемах — мобильная оптимизация для водителей.
Таблица совокупной стоимости владения
Общая стоимость владения транспортными средствами и автопарком — покупка, топливо, обслуживание, страховка и многое другое.
Передача автомобиля
Передача импорта/экспорта с двухмерной схемой повреждений, контрольным списком, фотографиями, подписью и отчетом в формате PDF.
Оценка состояния флота
Ежедневный счет с подробностями — просроченное техническое обслуживание, истекающий срок действия, перебои с подачей топлива.
Отслеживание соответствия
Страховка, регистрация, дорожный налог, права, водительские права — оповещения 14/30/7/1 день.
Отчетность по автопарку
7 встроенных отчетов, диаграмм, экспорт в Excel и PDF.
Требуется сервер
- PHP 8.2 или выше (рекомендуется 8.3)
- MySQL 5.7+ или MariaDB 10.3+
- Composer 2.x (только локальная разработка — не требуется на общем хостинге)
- Node.js 18+ и npm 9+ (только для сборок локального интерфейса)
- Веб-сервер: Apache или Nginx.
Необходимое расширение PHP
- OpenSSL, PDO, PDO_MySQL, Mbstring, Tokenizer, XML, Ctype, JSON, GD, Fileinfo
Емкость привода
Минимум ~200 МБ. Дополнительные условия для фотографий транспортных средств, квитанций о топливе, фотографий передачи и документов соответствия.
Параметр
Вариант А — веб-установщик (рекомендуется)
- Загрузите файлы проекта на веб-сервер.
- Укажите корень документа на папку
public/. - Авторизация:
storage/иbootstrap/cache/должны быть доступны для записи (chmod 775). - Скопируйте
.env.exampleв.envи установитеAPP_KEY(запуститеphp artisan key:generate, если SSH доступен, или см. Настройки cPanel → Шаг 5). - Откройте
https://yourdomain.com/installв своем браузере. - Следуйте инструкциям мастера — Требования → База данных → Миграция → Учетная запись администратора → Готово. Выберите Включить демонстрационные данные, чтобы загрузить образцы данных (см. Пользователи и роли).
Вариант Б — Установить CLI
# 1. Установите зависимости
composer install --no-dev --optimize-autoloader
npm install
npm run build
# 2. Настройте среду
cp .env.example .env
php artisan key:generate
# 3. Отредактируйте .env, чтобы установить информацию о БД.
# DB_HOST, DB_PORT, DB_DATABASE, DB_USERNAME, DB_PASSWORD
# 4. Создайте таблицу и задайте исходные данные.
php artisan migrate --seed
# 5. Создайте хранилище символических ссылок для загрузки.
php artisan storage:link
# 6. Конфигурация кэша для производства
php artisan config:cache
php artisan route:cache
php artisan view:cache
# 7. Отметить установленное
echo "Installed" > storage/installed.lock
public/. Apache использует встроенный .htaccess. Nginx см. Руководство по развертыванию Laravel.
Шаг мастера 2 — Настройка базы данных
Когда мастер доходит до шага 2, вам необходимо ввести информацию о подключении MySQL созданной базы данных в панели управления хостингом. База данных уже должна существовать (может быть пустой — на следующем шаге будут созданы таблицы).
| Школа | По умолчанию/Пример | Примечание |
|---|---|---|
| Host | 127.0.0.1 | Верно для 99% виртуального хостинга (Hostinger, cPanel, Plesk). Оставайтесь прежними, если хост не предоставит собственное имя хоста MySQL (управляемая база данных, такая как AWS RDS, управляемая база данных DigitalOcean). |
| Port | 3306 | Стандартный порт MySQL. Меняйте только в том случае, если провайдер использует другой порт (редко). |
| Имя базы данных | uXXXXX_fleethub | Полное имя отображается в панели управления хостингом. Большинство виртуальных хостингов имеют префикс в соответствии с идентификатором пользователя (например, Hostinger: u287094729_fleethub). |
| Имя для входа | uXXXXX_fleethub | Учетная запись MySQL имеет разрешения на доступ к указанной выше базе данных. НЕ используйте root — общий хостинг запрещен. |
| Пароль | (ваш пароль к БД) | Пароль, который вы устанавливаете или копируете при создании пользователя MySQL. Большинство хостов появляются только один раз при создании — используйте «Просмотр/Сброс», если они не сохранены. |
Где найти информацию о БД по каждому типу хостинга
- Hostinger: hPanel → Базы данных → Управление → нажмите базу данных. На странице сведений отображаются имя, имя пользователя и кнопка «Показать пароль».
- cPanel: cPanel → Базы данных MySQL. Список баз данных выше, список пользователей ниже. При необходимости используйте «Изменить пароль».
- Plesk: Plesk → Базы данных → щелкните имя базы данных. На странице сведений отображаются учетные данные и имеется кнопка сброса пароля.
- DirectAdmin: DirectAdmin → Управление MySQL → нажмите на базу данных. Учетные данные и сброс пароля находятся на странице сведений.
- Внешняя/управляемая БД: AWS RDS, управляемая база данных DigitalOcean и т. д. Используйте собственное имя хоста, порт (обычно
3306, но следует проверить), имя базы данных, пользователя и пароль из облачной консоли. Убедитесь, что IP-адрес сервера внесен в белый список брандмауэра БД.
Распространенные ошибки и как их исправить
| Сообщение об ошибке | Причина и исправление |
|---|---|
SQLSTATE[HY000] [1045] Access denied | Неверное имя пользователя или пароль, или у пользователя нет прав доступа к этой базе данных. Двойная проверка правописания (включая префикс пользователя на общем хосте). Если не уверены, сбросьте пароль в панели управления хостингом. |
SQLSTATE[HY000] [1049] Unknown database | Имя базы данных неверно, или вы не создали базу данных в панели управления. Сначала создайте его, затем повторно введите точное имя (включая префикс). |
SQLSTATE[HY000] [2002] Connection refused | Невозможно подключиться к серверу MySQL. Проверьте хост и порт. На общих хостах попробуйте localhost вместо 127.0.0.1 или наоборот. При использовании управляемой базы данных убедитесь, что IP-адрес сервера внесен в белый список. |
SQLSTATE[42S02] Base table not found: sessions | Происходит, когда SESSION_DRIVER=database или CACHE_STORE=database установлено в .env до существования таблиц. Отредактируйте .env, измените оба на file, сохраните и перезагрузите мастер. Если хотите, вы можете изменить его обратно на database после завершения установки. |
could not find driver | Расширение PHP pdo_mysql отсутствует или отключено. Включите в панели управления хостингом. В cPanel: Редактор MultiPHP INI → Расширения или Выберите версию PHP → Расширения. На Hostinger: hPanel → Дополнительно → Конфигурация PHP → вкладка «Расширения PHP». |
127.0.0.1 и 3306), которые остаются неизменными на виртуальном хостинге. Вам просто нужно ввести имя базы данных, имя пользователя и пароль. Нажмите Test & Сохраните →, чтобы проверить соединение и перейдите к шагу 3.
Локальный хост (локальная разработка)
Краткое руководство по запуску FleetHub на вашем компьютере в целях тестирования или разработки перед развертыванием в рабочей среде. Выберите среду, подходящую для вашей операционной системы.
Вариант 1 — Laravel Herd (рекомендуется, macOS и Windows)
Laravel Herd — официальная локальная среда от команды Laravel — бесплатная, нативная, без Docker. Включает PHP 8.2/8.3/8.4, Nginx и (в Herd Pro) MySQL/Redis.
- Загрузите и установите Laravel Herd с сайта herd.laravel.com.
- Установите для папки проекта FleetHub значение
~/Herd/(macOS) или%USERPROFILE%\Herd\(Windows). Херд создает домен.test— напримерhttp://fleethub.test. - Откройте Herd → Сайты и убедитесь, что версия PHP — 8.2 или 8.3. Щелкните сайт правой кнопкой мыши → Безопасность, чтобы включить HTTPS (требуется для QR-сканера).
- Создайте базу данных MySQL. С помощью Herd Pro перейдите в Сервисы → MySQL → Открыть в TablePlus. Если у вас нет версии Pro, установите MySQL Community или используйте SQLite (
DB_CONNECTION=sqlite,touch database/database.sqlite). - Скопируйте
.env.exampleв.env, заполните информацию о БД, затем запуститеphp artisan key:generateв корне проекта. - Откройте
http://fleethub.test/installв браузере и следуйте указаниям мастера.
Вариант 2 — XAMPP (Windows, macOS, Linux)
XAMPP объединяет Apache, MySQL/MariaDB и PHP. Бесплатная, кроссплатформенная. Обязательно выберите версию PHP 8.2 или выше.
- Загрузите XAMPP 8.2+ с apachefriends.org и установите.
- Скопируйте проект FleetHub в
C:\xampp\htdocs\FleetHub\(Windows) или/Applications/XAMPP/htdocs/FleetHub/(macOS). - Откройте Панель управления XAMPP и запустите Apache и MySQL. Если порт занят, перейдите в Config → service.conf, чтобы переключить Apache на 8080.
- Перейдите в
http://localhost/phpmyadmin→ New → создайте базу данных с именемfleethubс параметрами сортировки utf8mb4. - В папке проекта: скопируйте
.env.exampleв.env, установитеDB_DATABASE=fleethub,DB_USERNAME=root, оставьтеDB_PASSWORDпустым (по умолчанию XAMPP). Запуститеphp artisan key:generate. - Откройте
http://localhost/FleetHub/public/install, чтобы запустить мастер установки.
/public/: создает виртуальный хост в C:\xampp\apache\conf\extra\httpd-vhosts.conf, указывая DocumentRoot на папку public/ проекта, а затем добавляя 127.0.0.1 fleethub.local в файл хостов.
Вариант 3 — Ларагон (Windows)
Laragon — портативный Windows-стек для Laravel: автоматические vhost, короткие URL, MySQL/MariaDB и встроенный HeidiSQL.
- Загрузите Laragon Full с laragon.org и установите.
- В Ларагоне: Меню → PHP → Версия — переключитесь на PHP 8.2 или 8.3.
- Скопируйте проект FleetHub в
C:\laragon\www\FleetHub\. - Нажмите Начать все. Ларагон создает свой собственный виртуальный хост:
http://fleethub.test(указывает на папкуpublic/). - Откройте HeidiSQL (включено) → создайте базу данных
fleethub. Информация по умолчанию: пользовательroot, пароль пустой. - Отредактируйте
.envс информацией о БД, запуститеphp artisan key:generate, затем получите доступ кhttp://fleethub.test/install.
Вариант 4. Существующий PHP-сервер (веб-сервер не требуется)
Самый простой вариант: Laravel поставляется с artisan serve, который запускает сервер разработки PHP. Нет необходимости в Apache или Nginx. Лучше всего подходит для быстрого тестирования.
# Установите зависимости и настройте
cd /path/to/FleetHub
composer install
cp .env.example .env
php artisan key:generate
# Запустите миграцию и заполните исходные данные
php artisan migrate --seed
# Запустите сервер разработки
php artisan serve
# Затем получите доступ: http://127.0.0.1:8000/install
Распространенные проблемы при запуске localhost
QR-сканер не открывает камеру на http://
API камеры браузера требует HTTPS, за одним исключением: http://localhost и http://127.0.0.1 считаются безопасными контекстами. Если вы получаете доступ к FleetHub через IP-адрес локальной сети (например, http://192.168.1.10), камера будет отклонена. Используйте localhost для разработки или включите HTTPS через Herd/mkcert.
Разрешение на хранилище отклонено (macOS/Linux)
Если вы столкнулись с ошибкой при регистрации или кэшировании приложения, исправьте разрешение: chmod -R 775 storage bootstrap/cache. В Windows обычно нет необходимости.
Порт используется
Если порт 8000 уже занят другим приложением, используйте другой порт:
php artisan serve --port=8001
Проверьте электронную почту локально
Настоящий SMTP обычно недоступен на локальном хосте. Два безопасных варианта: (1) поставить MAIL_MAILER=log в .env — письмо регистрируется в системе storage/logs/laravel.log вместо отправки; или (2) используйте Mailtrap / MailHog для перехвата исходящих писем в поддельный почтовый ящик.
MAIL_MAILER=log
# Все электронные письма сохраняются в хранилище/logs/laravel.log.
Ресурсы внешнего интерфейса (Vite/Tailwind)
Интерфейс Vue/Tailwind от FleetHub уже встроен в пакет. Если вы редактируете компонент Vue или конфигурацию Tailwind, вам понадобится Node.js 18+:
npm install
npm run dev # Горячая перезагрузка при разработке
npm run build # Сборка рабочей версии (запуск перед развертыванием)
Развертывание на одиночном хостинге (общий хостинг)
Это рекомендуется для людей без VPS или технического опыта. FleetHub полностью совместим с самым дешевым планом Единый веб-хостинг Hostinger (~2,99 доллара США в месяц). Нет необходимости в SSH, Composer или командной строке — Single поставляется со встроенными заданиями cron, PHP 8.3 и бесплатным SSL.
Шаг 1 — Подготовьте хостинг
- Войдите в Hostinger hPanel.
- Перейдите в Хостинг → Управление для вашего доменного имени.
- Установите версию PHP 8.2 или 8.3 через Дополнительно → Конфигурация PHP.
- Убедитесь, что эти расширения PHP включены (обычно по умолчанию):
- OpenSSL, PDO, PDO_MySQL, Mbstring, GD, Tokenizer, XML, Ctype, JSON, Fileinfo
Шаг 2 — Создайте базу данных MySQL
- В hPanel перейдите в Базы данных → Базы данных MySQL.
- Нажмите Создать новую базу данных.
- Запишите эти 3 значения:
Имя базы данных— напримерu123_FleetHubИмя для входа— напримерu123_adminПароль— Создается самостоятельно и бережно хранится
Шаг 3 — Загрузите файлы
- Перейдите в Файл → Диспетчер файлов в hPanel.
- Перейдите к
public_html/(это корень доменного имени). - Удалите все файлы по умолчанию
index.htmlилиdefault.phpв этой папке. - Нажмите Загрузить файлы и загрузите все
source.zipиз установочного пакета.
Или загрузите содержимое папки/source/напрямую через FTP, если хотите. - Если вы загружаете ZIP, щелкните правой кнопкой мыши → Извлечь. После распаковки все файлы должны находиться в корне
public_html/. - Подтвердите, что
public_html/содержит:app/,public/,vendor/,.htaccess,index.php(вpublic/),.envи т. д.
.htaccess существует в корне public_html/. Он содержит правила перезаписи URL-адресов. Если Диспетчер файлов скрывает скрытые файлы, нажмите Настройки → Показать скрытые файлы.
Шаг 4 — Запустите установщик
- Откройте браузер и перейдите к
https://yourdomain.com/install. - Вы увидите установщик FleetHub.
- Шаг 1: Требования — Все предметы должны пройти (зеленый). Если есть ошибки, обратитесь в службу поддержки Hostinger, чтобы включить отсутствующее расширение PHP.
- Шаг 2: База данных — Введите информацию из шага 2 выше:
- Хозяин:
localhost - Порт:
3306 - База данных:
u123_FleetHub - Имя пользователя:
u123_admin - Пароль: (сгенерирован Hostinger)
- Хозяин:
- Шаг 3. Миграция — Нажмите «Выполнить миграцию и заполнение». Занимает ~10 секунд. Не обновляйте.
- Шаг 4: Администратор — Создайте учетную запись администратора. Используйте надежные пароли.
- Готово! — Вы увидите URL-адрес Cron (сохраните!) и кнопку входа в систему.
Шаг 5. Настройте автоматические оповещения по электронной почте через Hostinger Cron.
FleetHub использует планировщик Laravel: оповещения о соответствии требованиям, напоминания о техническом обслуживании, просроченные запросы, водительские права, обновления стоимости транспортных средств и перерасчет показателей состояния автопарка. Настройте a cron на hPanel.
- В hPanel перейдите в Дополнительно → Задания Cron.
- Нажмите Создать задание Cron.
- Выберите тип: Custom (не «PHP» — потому что нужно передавать параметры).
- Введите следующую команду (замените
uXXXXXXна свое имя пользователя Hostinger):
Совет: откройте диспетчер файлов, найдите файл/usr/bin/php /home/uXXXXXX/public_html/artisan schedule:runartisan(корень проекта), щелкните правой кнопкой мыши → Свойства, чтобы скопировать полный путь. - Установите расписание на Каждую минуту — все пять полей (Минута, Час, День, Месяц, День недели) установлены на
*. - Нажмите Сохранить.
FleetHub будет отправлять напоминания о просроченных претензиях, предупреждения о техническом обслуживании, соблюдении требований и лицензировании, обновления амортизации и автоматический перерасчет показателей состояния автопарка.
public_html/public/? Нет проблем — код Laravel все еще находится в корневом каталоге public_html/, поэтому путь cron остается /home/uXXXX/public_html/artisan (не добавляйте /public/).
- Войдите в систему администратора → Настройки → вкладка «Система» → скопируйте URL-адрес Cron.
- Зарегистрируйтесь бесплатно на сайте cron-job.org.
- Создайте cronjob, вставьте URL, установите Каждые 15 минут, сохраните.
Шаг 6 — Настройка электронной почты (SMTP)
Hostinger предоставляет учетные записи электронной почты для каждого плана. Для уведомлений FleetHub:
- В hPanel перейдите в Электронная почта → Учетные записи электронной почты и создайте учетную запись (например,
noreply@yourdomain.com). - Отредактируйте файл
.envвpublic_html/через диспетчер файлов:MAIL_MAILER=smtp MAIL_HOST=smtp.hostinger.com MAIL_PORT=587 MAIL_USERNAME=noreply@yourdomain.com MAIL_PASSWORD=your_email_password MAIL_ENCRYPTION=tls MAIL_FROM_ADDRESS=noreply@yourdomain.com MAIL_FROM_NAME="Your Company Name" - Сохраните файл.
- Войдите в FleetHub → Настройки → вкладка «Электронная почта» → «Отправить тестовое письмо». Если вы это поняли, все готово.
Распространенные проблемы на Hostinger Single
«500 Внутренняя ошибка сервера» после загрузки
- Убедитесь, что
.htaccessсуществует в корнеpublic_html/и содержит правила перезаписи. - Убедитесь, что в hPanel установлена версия PHP 8.2 или 8.3.
- Проверьте
storage/logs/laravel.logчерез диспетчер файлов, чтобы увидеть фактическую ошибку.
"В доступе отказано" при загрузке
Hostinger обычно самостоятельно устанавливает правильные разрешения, но если нет:
- Щелкните правой кнопкой мыши
storage/в Диспетчере файлов → Разрешения → установите значение755рекурсивно. - То же самое с
bootstrap/cache/.
QR-сканер не может открыть камеру
Для API камеры браузера требуется HTTPS. Hostinger предлагает бесплатный SSL через Let's Encrypt — включите его в hPanel в разделе SSL → Управление.
Запланированные электронные письма не отправляются
- В hPanel → Задания Cron → проверьте столбец Последний запуск в записи cron. Если пусто, cron не запущен — убедитесь, что путь ремесленника правильный.
- Проверьте команду вручную: откройте Terminal в hPanel (если доступно) и запустите команду cron. Если возникла ошибка, сообщение об ошибке четко укажет на проблему (неправильная версия PHP, неверный путь и т. д.).
- Убедитесь, что SMTP настроен правильно (Настройки → Электронная почта → Отправить тест).
- Проверьте
storage/logs/laravel.logна наличие ошибок планировщика.
Медленная производительность
Hostinger Single использует общий процессор и оперативную память. Если в вашей группе более 20 человек, учтите:
- Обновите до Premium (~3,99 доллара США в месяц) — более быстрые серверы, больше ресурсов, больше баз данных.
- Или Бизнес (~5,99 долларов США в месяц) — выделенные ресурсы, ежедневное резервное копирование, промежуточная среда.
Развертывание на cPanel (общий хостинг)
Это руководство предназначено для стандартного общего хостинга cPanel (Namecheap, Bluehost, GoDaddy и большинства дешевых хостов). У FleetHub уже есть vendor/ и сборка внешнего интерфейса — нет необходимости в Composer, npm или терминале на сервере. Если в cPanel нет терминала, используйте SSH Access или методы в диспетчере файлов ниже.
/home/CPANELUSER/ — см. боковую панель cPanel в разделе Общая информация.
Шаг 1 — Установите версию PHP и расширения
- Войдите в cPanel.
- Откройте MultiPHP Manager (или Выберите версию PHP) и выберите PHP 8.2 или 8.3 для домена.
- Откройте MultiPHP INI Editor или Расширения PHP и убедитесь, что следующие расширения включены:
- OpenSSL, PDO, PDO_MySQL, Mbstring, GD, Tokenizer, XML, Ctype, JSON, Fileinfo
- Если расширение отсутствует, включите его из списка или обратитесь в службу поддержки хостинга.
Шаг 2 — Включите SSL (HTTPS)
- Перейдите к Статус SSL/TLS (или Давайте зашифруем SSL / AutoSSL).
- Запустите AutoSSL или установите бесплатный сертификат для домена.
- HTTPS требуется, чтобы QR-сканер открыл камеру браузера.
https://yourdomain.com и проверьте значок замка.
Шаг 3 — Создайте базу данных MySQL и пользователя
- Откройте Управление моими базами данных (в разделе «Базы данных»).
- В разделе Создать новую базу данных введите имя (например,
fleethub) и нажмите «Создать». cPanel автоматически добавляет префикс — полное имя в видеcpaneluser_fleethub. - В разделе Пользователи MySQL создайте пользователя с надежным паролем. Скопируйте имя пользователя с префиксом.
- В разделе Добавить пользователя в базу данных выберите пользователя и базу данных, добавить, затем предоставьте ВСЕ ПРИВИЛЕГИИ. Этот шаг легко пропустить — его пропуск приведет к ошибке
Access denied (1045). - Запишите ровно 3 значения, отображаемые в cPanel:
Имя базы данных— напримерu123_FleetHubИмя для входа— напримерu123_adminПароль— Создается самостоятельно и бережно хранится
Шаг 4 — Загрузите файлы
- Откройте Файловый менеджер, перейдите к
public_html/(корень документа). - Включите Настройки → Показать скрытые файлы, чтобы увидеть
.htaccessи.env. - Удалите значение по умолчанию
index.htmlвpublic_html/, если оно присутствует. - Загрузите
source.zipи Extract или загрузите содержимое папки/source/через FTP. - После декомпрессии
public_html/должен иметь кореньapp/,public/,vendor/,.htaccessиartisanна одном уровне.
.htaccess root перенаправляет все запросы на public/ — обычно требует изменить корень документа вручную.
Шаг 5. Подготовьте .env перед запуском установщика.
Завершите этот шаг до при открытии /install. Laravel должен быть действительным APP_KEY и правильной конфигурацией БД в .env.
- В диспетчере файлов скопируйте
.env.exampleв.env(та же папка, что иartisan). - Отредактируйте
.envи установите минимум:APP_NAME=FleetHub APP_ENV=production APP_DEBUG=false APP_URL=https://yourdomain.com DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=cpaneluser_fleethub DB_USERNAME=cpaneluser_admin DB_PASSWORD="your_password" SESSION_DRIVER=file CACHE_STORE=file - Установите
DB_CONNECTION=mysql—.env.exampleпо умолчанию для использования SQLite; для общего хостинга требуется MySQL. - Поставьте
SESSION_DRIVER=fileиCACHE_STORE=fileперед первой миграцией (чтобы избежать ошибок в таблице сеансов). - Заключите
DB_PASSWORDв кавычки, если пароль содержит специальные символы (#,$,!и т. д.).
Сгенерируйте APP_KEY (терминал не нужен)
Многие планы cPanel не включают веб-терминал. Используйте один из следующих методов:
- SSH-доступ (cPanel → Безопасность → SSH-доступ): соединение PuTTY/PowerShell, запустите
cd ~/public_html && php artisan key:generate. - Файловый менеджер — создайте временный
public/genkey.php, откройте браузер, скопируйте результаты вAPP_KEY=, затем немедленно удалите файл.<?php echo 'base64:' . base64_encode(random_bytes(32)); - На ПК — если есть локальный PHP:
php -r "echo 'base64:'.base64_encode(random_bytes(32));", вставьте.env.
genkey.php сразу после копирования ключа. Не оставляйте вспомогательные сценарии в рабочей среде.
- Установите разрешения от
storage/иbootstrap/cache/до 755 (рекурсивно), если установщик сообщает об ошибке записи.
Шаг 6 — Запустите веб-установщик
- Откройте
https://yourdomain.com/installв браузере. - Шаг 1: Требования — все должно ПРОЙДАТЬ (зеленый). Исправьте расширение PHP на шаге 1, если оно отсутствует.
- Шаг 2: База данных — введите имя с префиксом из шага 3:
- Хозяин:
127.0.0.1orlocalhost - Порт:
3306 - База данных:
cpaneluser_fleethub - Имя пользователя:
cpaneluser_admin - Пароль: (your MySQL password)
- Хозяин:
- Шаг 3. Миграция — нажмите «Выполнить миграцию и заполнение». ~10 секунд. Не обновляйте страницу.
- Снимите флажок Включить демонстрационные данные при установке чистой продукции.
- Шаг 4: Администратор — создайте учетную запись администратора.
- Готово! — сохранить URL-адрес Cron на последнем экране.
Шаг 7. Настройте задания Cron для оповещений по электронной почте.
FleetHub необходим запуск cron каждую минуту, чтобы Laravel отправлял оповещения о соответствии требованиям, напоминания о техническом обслуживании, просроченные запросы и другие запланированные электронные письма.
- В cPanel перейдите в Дополнительно → Задания Cron.
- В разделе Добавить новое задание Cron установите расписание на Каждую минуту (
* * * * *). - Введите команду (замените
CPANELUSERна имя пользователя cPanel в разделе «Общая информация»):
Совет: путь PHP может быть/usr/local/bin/php /home/CPANELUSER/public_html/artisan schedule:run/usr/local/bin/phpили/usr/bin/php. Путь ремесленника обычно/home/CPANELUSER/public_html/artisan. - Нажмите Добавить новое задание Cron, чтобы сохранить.
public_html/public/? Cron по-прежнему указывает на /home/CPANELUSER/public_html/artisan — не более /public/.
- Войдите в систему с правами администратора → Настройки → Система → скопируйте URL-адрес Cron.
- Зарегистрируйтесь бесплатно на сайте cron-job.org.
- Создайте задание, которое будет вызывать этот URL-адрес каждые 15 минут.
Шаг 8 — Настройка электронной почты (SMTP)
Создайте учетную запись электронной почты cPanel для исходящих уведомлений:
- Перейдите в Учетные записи электронной почты → создайте, например.
noreply@yourdomain.com. - Отредактируйте
.envв диспетчере файлов:MAIL_MAILER=smtp MAIL_HOST=mail.yourdomain.com MAIL_PORT=587 MAIL_USERNAME=noreply@yourdomain.com MAIL_PASSWORD=your_email_password MAIL_ENCRYPTION=tls MAIL_FROM_ADDRESS=noreply@yourdomain.com MAIL_FROM_NAME="Your Company Name" - Сохраните, затем во FleetHub: Настройки → Электронная почта → Отправить тестовое письмо.
Распространенные проблемы в cPanel
«Доступ запрещен для пользователя» (SQLSTATE 1045)
- Скопируйте имя базы данных и имя пользователя точно из cPanel, включая префикс.
- Подтвердите Добавить пользователя в базу данных со ВСЕМИ ПРИВИЛЕГИЯМИ.
- Сбросьте пароль MySQL в cPanel и обновите
.env— используйте скобки вокругDB_PASSWORD, если есть специальные символы.
Миграция завершается сбоем после прохождения шага «База данных».
- Мастер проверяет форму, но Migrate читает
.env. Убедитесь, что они совпадают. - Удалите
bootstrap/cache/config.php, если он есть, и повторите попытку. - Убедитесь, что
DB_CONNECTION=mysqlв.env(не sqlite).
«Неверное значение по умолчанию» при миграции (1067)
Строгий режим MySQL на виртуальном хостинге может запрещать значения по умолчанию для некоторых столбцов. См. storage/logs/laravel.log и убедитесь, что PHP 8.2+ со всеми расширениями.
«500 Внутренняя ошибка сервера» после загрузки
- Ознакомьтесь с оригинальным
.htaccessи PHP 8.2+. - См.
storage/logs/laravel.logдля фактической ошибки. - Убедитесь, что
APP_KEYустановлено в.env— пустой ключ вызывает ошибку 500.
В cPanel нет терминала
Это нормально на многих shared-пакетах. Используйте SSH Access (если включён), временный genkey.php на шаге 5 или сгенерируйте ключ на локальном ПК.
QR-сканер не открывает камеру
Включите SSL через Состояние SSL/TLS → AutoSSL и получите доступ с помощью https://.
Конфигурация
.env-файл
| Замок | Описывать | Например |
|---|---|---|
APP_NAME | Название приложения отображается в строке заголовка. | FleetHub |
APP_URL | Публичный URL-адрес установки | https://fleet.example.com |
APP_DEBUG | Установите false при производстве | false |
DB_* | Информация о подключении к базе данных | mysql, 127.0.0.1, 3306, ... |
MAIL_MAILER | Почтовый драйвер | smtp, log, mailgun |
MAIL_HOST | Имя хоста SMTP-сервера | smtp.gmail.com |
MAIL_PORT | Порт SMTP | 587 |
MAIL_USERNAME | Имя пользователя SMTP | your@email.com |
MAIL_PASSWORD | Пароль SMTP или токен приложения | ********** |
MAIL_FROM_ADDRESS | Адрес отправителя по умолчанию | noreply@example.com |
Установить в приложение
Большинство неконфиденциальных параметров настраиваются в Администратор → Настройки:
- Общие: название компании/адрес электронной почты/телефон, бренд.
- Автомобильный парк: префикс кода транспортного средства, шаблон контрольного списка передачи, настройки по умолчанию для технического обслуживания, режим страницы общественного транспорта.
- Электронная почта: отправить тестовое письмо для проверки SMTP.
- Уведомления: включение/отключение оповещений о соответствии требованиям, техническое обслуживание, требования к транспортному средству, лицензия.
- Многоязычный: часовой пояс, формат даты, валюта — применимо во всем приложении.
- Соответствие: управление предустановками типов соответствия (страхование, регистрация, дорожный налог...)
- Бренд: название и логотип приложения — обновленный логин, нижний колонтитул, заголовок вкладки.
- Внешний вид: настройте цвет бренда, статус и текст для светлого/темного цвета — см. руководство по ребрендингу в FAQ.
Многоязычная поддержка
FleetHub доступен на 11 языках, включая арабский (RTL) и хинди. Пользователи меняют язык с помощью раскрывающегося списка флагов в правом верхнем углу.
Доступные языки
| Код | Язык | Направление |
|---|---|---|
en | English (default) | LTR |
vi | Tiếng Việt | LTR |
es | Español | LTR |
fr | Français | LTR |
de | Deutsch | LTR |
zh | 简体中文 | LTR |
ja | 日本語 | LTR |
pt-BR | Português (Brasil) | LTR |
ru | Русский | LTR |
ar | العربية | RTL |
hi | हिन्दी | LTR |
Как изменить язык
- Нажмите на значок флага в правом верхнем углу, чтобы открыть раскрывающийся список.
- Выберите язык из списка.
- Страница перезагрузится; Все метки пользовательского интерфейса, даты и форматы валют сохраняются.
- Выбор сохраняется как в учетной записи пользователя, так и в файлах cookie (1 год).
/locale/{code} работает только при работающем PHP-сервере. Всегда доступ через реальный домен (производственный) или http://localhost:8000 (разработчик с php artisan serve). Файлы документации, подобные этому, полностью автономны и могут быть открыты напрямую.
Добавить собственный язык (администратор)
Перейдите в Администрирование → Переводы (у администратора есть разрешение управление переводами):
- Нажмите «Добавить локаль» — введите код (например,
mkдля македонского языка), отображаемое имя, название локали, имя файла флага SVG, направление (LTR/RTL) и исходную локаль, чтобы скопировать перевод. - Новая локаль появится в переключателе языков и списке языков по умолчанию в меню «Настройки» → «Локализация».
- Перевод БД автоматически переопределяет файл в
lang/{code}/.
Редактор перевода
Редактор перечисляет все ключи перевода по файлам (активы, навигация, настройки...). Каждая клавиша отображает базовый файл и переопределяет БД (если есть).
- Фильтрация по локали, группе переводов или текстовому поиску.
- Нажмите значение, чтобы изменить его в строке; Сохраните в БД сейчас.
- Клавиша сброса для возврата к базовому файлу.
- Встроенную локаль (en, vi, es...) можно редактировать; Полностью настраиваемая локаль из БД.
- Доступ к этой странице имеют только пользователи с разрешением управление переводами.
Импорт/экспорт CSV
- Экспорт — загрузить все ключи локали в формате CSV (
group,key,value). - Импорт — загрузить CSV в тот же столбец; обновлена база данных переопределения, добавлен новый ключ.
Языковой стандарт по умолчанию в соответствии с пользователем
У каждого пользователя есть столбец locale. Письма с уведомлениями автоматически отправляются в соответствии с языком получателя благодаря контракту Laravel HasLocalePreference.
Язык сайта по умолчанию находится в Настройки → Локализация → Язык по умолчанию. Отдельные пользователи переопределяют язык с помощью переключателя языка в заголовке.
Список функций (15 групп модулей)
Управление транспортным средством
- Автоматически сгенерированный код автомобиля (префикс VH)
- Номерной знак, VIN, марка, модель, тип топлива.
- Генерируйте QR-коды и печатайте оптом
- Статус, статус, отслеживание счетчика
- Массовый импорт/экспорт Excel
- Клонируйте машину при покупке множества похожих машин
- Страница сведений с 7 вкладками и временной шкалой жизненного цикла
Требования и передача
- Обработка запроса → одобрение → оплата
- Обнаружение календаря и дубликатов календаря
- 2D-диаграмма повреждений + цифровая подпись
- Экспорт отчета о передаче в формате PDF
Обслуживание
- Планирование профилактики и коррекции
- Расписание по уровню приоритета
- Запланируйте следующее профилактическое обслуживание самостоятельно
- Отслеживание расходов → автоматическая синхронизация расходов
- Напоминание по электронной почте до истечения срока
Соответствие требованиям и топливо
- Раздел комплаенс (страхование, регистрация, лицензирование)
- Следить за сроком действия водительских прав
- Журнал топлива, загрузка квитанций и сжатие фотографий
- Проверка на мошенничество с часами
Общая стоимость владения и амортизация
- 3 метода амортизации, включая производственные единицы (км)
- Таблица совокупной стоимости владения с индексом стоимости/км
- Автоматически синхронизируйте расходы на топливо и техническое обслуживание
- График кривой амортизации
Отчет
- 7 типов отчетов автопарка
- Экспорт Excel + PDF
- Панель управления ApexCharts
- Фильтровать по периоду времени
Эксплуатировать автопарк
- Оценка состояния флота, пересчитывается ежедневно
- Управляйте водителями, синхронизируйте водительские права
- Расходы на транспортное средство (страховка, дорожные сборы, парковка...)
- Быстрое QR-сканирование для водителей (топливо, счетчик, происшествия)
Многоязычный
- 11 языков пользовательского интерфейса + пользовательская локаль
- Редактор переводов, поиск и редактирование онлайн
- Импорт/экспорт CSV для пакетных обновлений.
- Часовой пояс и валюта применяются во всем приложении.
Бренд и внешний вид
- Название вкладки браузера в меню «Настройки» → «Брендинг» → «Имя приложения».
- Настройте цвет в «Настройки» → «Внешний вид» (светлый и темный).
Пользователи и роли
FleetHub имеет 5 ролей, доступных для внутренних операций автопарка:
| Роль | Власть |
|---|---|
| Админ | Полный контроль системы — пользователи, отделы, настройки, журналы аудита, вебхуки, переводы. |
| Управление автопарком | Управляйте транспортными средствами, водителями, запросами, передачами, обслуживанием и журналами топлива; утвердить запрос; Полный отчет |
| Бухгалтер | Таблицы совокупной стоимости владения, затраты, амортизация, отчеты о соответствии — финансовая направленность, преимущественно просмотр |
| Руководитель отдела | Просматривайте запросы на номера, просматривайте транспортные средства и отправляйте отчеты в отделы. |
| Водитель | Просматривайте автомобили, находящиеся в режиме ожидания, записывайте журналы топлива, быстро сканируйте QR-код, просматривайте свои запросы |
Демо-счет (пароль: password): admin@fleethub.test, manager@fleethub.test, dept@fleethub.test, accountant@fleethub.test, driver@fleethub.test. Включите демонстрационные данные при установке или раздаче. Разрешения Spatie — администраторы могут точно настроить каждое разрешение.
Управление транспортным средством
Создать новую машину
- Перейдите в Транспорт → Новые транспортные средства.
- Заполните номерной знак, марку, модель, год, тип топлива, категорию и отдел.
- Добавьте дату и цену покупки (обязательно для учета амортизации и совокупной стоимости владения).
- Загрузите фотографии (несколько файлов, максимум 5 МБ каждый — автоматически сжимаются на мобильном устройстве).
- Сохранить — код автомобиля и QR-код генерируются автоматически.
Формат кода автомобиля
По умолчанию: {PREFIX}-{YEAR}-{NNNN}, например VH-2026-0001. Настройте в Настройки → Автопарк → Префикс кода автомобиля.
Массовый импорт
- Нажмите Импорт на странице «Транспортные средства».
- Загрузите шаблоны Excel.
- Заполните данные — обязательные столбцы:
license_plate,make,model,category_name. - Загрузите файлы.
QR-код и быстрое сканирование
Каждое транспортное средство автоматически получает QR-код при создании. Отсканируйте, чтобы открыть страницу общественного транспорта или выполнить быстрые действия в приложении для вошедших в систему водителей.
Распечатайте QR-этикетки
- Одна этикетка: щелкните значок принтера на автомобиле.
- Пакетная печать: выберите несколько автомобилей → Распечатайте QR-этикетки. Размер А4, 2 этикетки/ряд.
Сканировать в приложении
Нажмите Сканировать QR на странице «Автомобиль». Разрешить камеры. Работает в современных браузерах с HTTPS или localhost.
Страница общественного автомобиля
У каждого автомобиля есть общедоступный URL-адрес по адресу /v/{vehicle_code}, что полезно для быстрой идентификации без необходимости входа в систему.
- Настройте в Настройки → Автопарк → Страница общественного транспорта: Общественный, Требовать вход в систему или Выкл.
- В гостевом режиме отображается только основная информация (номерной знак, марка/модель). Для быстрого действия требуется войти в систему.
- После изменения
APP_URLнажмите Обновить все QR-коды в настройках.
Процедура
Запросить машину
Сотрудник отправляет заявку на использование транспортного средства. Поток: requested → approved → returned (или rejected). Менеджер автопарка или руководитель отдела согласования. В календаре отображаются резервы автомобилей для всего автопарка. Верните просроченный автомобиль и отправьте электронное письмо с предупреждением.
Передача автомобиля
- Когда запрос будет одобрен, создайте Exit Handover, прежде чем водитель заберет автомобиль.
- Запишите время, заполните чек-лист, отметьте повреждения на 2D-схемах, прикрепите фотографии и цифровые подписи.
- Сохраните и загрузите отчет о доставке в формате PDF для своих записей.
- При возврате автомобиля создайте Handover — сравнить статус, обновить счетчик, удалить назначение водителя.
- Завершение приёмной передачи помечает заявку как возвращённую и устанавливает статус ТС «доступно».
Амортизация и совокупная стоимость владения
FleetHub рассчитывает амортизацию транспортного средства одним из трех методов. Амортизация включается в таблицу совокупной стоимости владения вместе с журналами учета топлива и расходов.
| Метод | Рецепт | В случае использования |
|---|---|---|
| Прямая линия | (Cost - Salvage) / Useful Life | Самый популярный; Амортизируются равномерно каждый год |
| Баланс постепенно уменьшается | 2 / Useful Life × Book Value | Быстрая амортизация; налоговые цели |
| Производственное подразделение | (км за этот период / общее ожидаемое количество км) × (цена покупки — ликвидационная стоимость) | Ожидаемое общее количество километров автомобиля (согласно часам) |
По умолчанию наследуется от категории транспортных средств. current_value обновляется ежемесячно через fleethub:update-vehicle-values. TCO = цена покупки + общая стоимость автомобиля за выбранный период.
Пользовательские поля
Администратор → Пользовательские поля позволяют добавлять неограниченное количество свойств к транспортным средствам:
- Тип: текст, число, дата, выбор, текстовая область, файл, флажок.
- Область: применяется ко всем категориям или определенным категориям транспортных средств.
- Arrange: маркер перетаскивания.
- Обязательное поле проверяется при сохранении автомобиля
Отчет
Семь интегрированных отчетов об автопарке, доступных из меню «Отчеты»:
- Total TCO — общая стоимость владения транспортным средством и всем автопарком.
- График амортизации — начисление амортизации по ТС, с экспортом файла
- Затраты на техническое обслуживание — расходы по транспортному средству, типу и месяцу.
- Расход и стоимость топлива — тренд км/л, неравномерная разметка
- Использование запроса на транспортное средство — уровень бронирования транспортных средств с течением времени
- Истечение срока действия — истекает срок действия документов на транспортное средство и водительских прав.
- Распределение транспортных средств по отделам — транспортные средства и их использование по отделам
Все отчеты поддерживают экспорт Excel и PDF с помощью кнопки в верхней части страницы.
Интеграция вебхука
FleetHub может уведомлять внешние службы о важных событиях в автопарке.
Событие доступности
vehicle.created,vehicle.updated,vehicle.deletedrequisition.approved,requisition.rejected,requisition.overdue,requisition.returnedhandover.completedcompliance.expiring,compliance.expiredmaintenance.due,maintenance.overdue,maintenance.completedfleet_health_score.dropped
Формат полезной нагрузки
{
"event": "handover.completed",
"timestamp": "2026-06-23T08:00:00+00:00",
"data": {
"vehicle_id": 1,
"vehicle_code": "VH-2026-0001",
"license_plate": "51A-12345",
"handover_id": 12,
"direction": "outgoing",
"driver_id": 4
}
}
Подтвердить подпись
Если настроено как секретное, запрос имеет заголовок X-FleetHub-Signature, содержащий HMAC-SHA256 тела. Подтвердите свою сторону:
$expected = hash_hmac('sha256', $rawBody, $secret);
if (hash_equals($expected, $request->header('X-FleetHub-Signature'))) {
// действительный
}
Политика повторных попыток
Доставка не удалась, и попытка повторилась 3 раза каждые 200 мс. После 10 последовательных сбоев вебхук отключается.
Запланированные задачи
FleetHub использует планировщик Laravel для фоновых задач. Всего one cron — Laravel выполняет каждую команду fleethub: вовремя.
Общий хостинг (Cron Jobs cPanel / Hostinger)
См. Установить cPanel → Шаг 7 или Установить Hostinger → Шаг 5. Вкратце: Дополнительно → Задания Cron, команда:
/usr/bin/php /home/uXXXXXX/public_html/artisan schedule:run
Календарь: каждую минуту (* во всех пяти полях).
команда cron cPanel
Замените CPANELUSER на свое имя пользователя cPanel:
/usr/local/bin/php /home/CPANELUSER/public_html/artisan schedule:run
VPS/частный сервер (crontab)
Запустите crontab -e от веб-пользователя и добавьте:
* * * * * cd /path/to/FleetHub && php artisan schedule:run >> /dev/null 2>&1
Резервный вариант: проверка связи с внешним URL-адресом
Если на хосте нет cron, используйте URL-адрес Cron в приложении (Настройки → Система) с cron-job.org (бесплатно, каждые 15 минут).
Задача запускается автоматически
| Время | Команда | Цель |
|---|---|---|
| Ежедневно 08:00 | fleethub:send-requisition-overdue-alerts | Запрос был одобрен, но оплата не была произведена после даты закрытия. |
| Ежедневно 08:30 | fleethub:send-maintenance-reminders | Напоминаем, что скоро предстоит техническое обслуживание |
| Ежедневно 09:00 | fleethub:send-compliance-expiry-alerts | Срок действия соглашения истекает через 14/30/7/1 дней. |
| Ежедневно 09:30 | fleethub:send-driver-license-alerts | Внимание! Срок действия водительских прав истекает. |
| 1-го числа каждого месяца 02:00 | fleethub:update-vehicle-values | Обновить текущее_значение транспортного средства на основе амортизации |
| Ежедневно 03:00 | fleethub:recalculate-fleet-health-score | Пересчет и кэширование очков здоровья флота |
Руководства по обновлению
FleetHub v1.0.0 — первый релиз на CodeCanyon.
Поиск неисправностей
«Разрешение отклонено» на хранилище
chmod -R 775 storage bootstrap/cache
chown -R www-data:www-data storage bootstrap/cache
QR-сканер не открывает камеру
Для API камеры браузера требуется HTTPS. Установите SSL или используйте localhost при тестировании.
Электронная почта не получена
Проверьте storage/logs/laravel.log на наличие ошибок. Используйте Настройки → Электронная почта → Отправить тестовое письмо, чтобы подтвердить информацию SMTP. Убедитесь, что SMTP-сервер разрешает отправку IP-адресов.
База данных «Доступ запрещен» (1045) на cPanel
Неправильный пользователь/пароль, пользователь не назначен в базу данных, или в пароле повреждены специальные символы .env. См. Установка cPanel → Распространённые проблемы.
Ошибка миграции 1067 (недопустимое значение по умолчанию)
Строгий режим MySQL на общем хостинге отклоняет несколько столбцов timestamp NOT NULL. Исправлено начиная с версии 2.1.0+. Обновление пакета или изменение yêu cầu xe_date/expected_return_date на dateTime при миграции требует наличия xes.
APP_KEY отсутствует / ошибка 500 перед установкой
Laravel требуется APP_KEY в .env перед запуском приложения. Если в cPanel нет терминала, см. Установить cPanel → Шаг 5 (SSH, genkey.php или создать на ПК).
Сбросить настройки
Удалите storage/installed.lock и снова получите доступ к /install. Существующие данные будут удалены, если миграция будет запущена снова.
Производительность — список медленных автомобилей
Запустите php artisan optimize. Убедитесь, что индекс MySQL находится на vehicles.vehicle_code, vehicles.license_plate, vehicles.status.
Журнал изменений
v1.0.0 — Первый выпуск (2026-06)
- CRUD — автомобиль с автоматически сгенерированным QR-кодом и общедоступной страницей
/v/{vehicle_code} - 5 ролей (администратор, менеджер автопарка, менеджер, бухгалтер, водитель)
- Управляйте водителями, синхронизируйте срок действия водительских прав с разделом соответствия
- Процесс запроса транспортного средства с расписанием и оповещениями о просрочке
- Передайте автомобиль с 2D-схемой повреждений, контрольным списком, подписью и PDF-файлом.
- Журнал учета топлива, защита от мошенничества со счетчиками, автоматическая синхронизация расходов
- Таблица стоимости транспортного средства и совокупной стоимости владения с анализом стоимости/км
- Износ — прямолинейный, уменьшающийся остаток, ед. продукции (км)
- Товар соответствует предупреждению об истечении срока годности 30/14/7/1 день.
- Планирование технического обслуживания, профилактическое самообновление, отслеживание затрат
- Оценка состояния флота, ежедневный пересчет и подробное модальное окно
- 7 отчетов о автопарке, экспорт в Excel и PDF
- Пользовательские поля (7 типов) по категориям транспортных средств
- Вебхуки подписывают HMAC (
X-FleetHub-Signature) и повторяют попытку. - Журнал аудита Spatie Activitylog с различиями
- Многоязычный интерфейс: 11 языков, включая арабский язык справа налево и хинди.
- Компания, автопарк, электронная почта, уведомления, предустановленные настройки соответствия
- Веб-установщик с системой раздачи демонстрационных данных
- Темный режим, пользовательский интерфейс ориентирован на мобильные устройства, сжатие изображений при загрузке
Примечание
Используемая библиотека с открытым исходным кодом
- Laravel 11 — MIT
- Vue 3 — MIT
- Inertia.js — MIT
- Tailwind CSS — MIT
- Spatie Permission, Media Library, Activitylog — MIT
- Phosphor Icons — MIT (duotone weight)
- ApexCharts — MIT
- html5-qrcode — Apache 2.0
- Simple QrCode — MIT
- Laravel Excel — MIT
- Laravel DomPDF — MIT