Começando
Instale o FleetHub no cPanel, Hostinger ou no seu próprio VPS em menos de 10 minutos.
Usuários e funções
5 funções de frota com permissões Spatie – administrador, gerente de frota, chefe de departamento, contador, motorista.
Recursos do produto
Veículos, motoristas, requisições, entregas, registros de combustível, TCO, conformidade, pontuação de integridade da frota e muito mais.
Personalização
Campos personalizados por categoria de veículo, marca, idiomas e temas.
Configuração do Hostinger
Implantação passo a passo no nível de hospedagem compartilhada única mais barato.
Configuração do cPanel
Implantação passo a passo em hospedagem compartilhada cPanel padrão – sem necessidade de terminal.
Segurança e QR
HTTPS, webhooks assinados por HMAC, registro de auditoria e verificação rápida de QR por meio da câmera.
Relatórios e exportação
7 relatórios de frota com exportação Excel + PDF e filtros de data.
Alertas por e-mail
Lembretes de conformidade, manutenção, requisições vencidas e carteira de motorista.
Perguntas frequentes
Posso executar o FleetHub no plano Hostinger Single mais barato?
Sim — FleetHub é totalmente compatível com Hostinger Single (~$2,99/mês). Single inclui PHP 8.3, MySQL, Cron Jobs nativos e SSL grátis – tudo o que o FleetHub precisa. Sem SSH, sem Composer, sem necessidade de linha de comando. Consulte a seção Hostinger Setup para obter o guia passo a passo.
Preciso de conhecimentos técnicos para instalá-lo?
Não. O instalador baseado na web cuida de tudo: verificação de requisitos, configuração de banco de dados, migrações e criação de conta de administrador. Basta fazer upload dos arquivos, visitar /install no seu navegador e seguir o assistente.
Como funcionam os e-mails programados (alertas de conformidade/manutenção)?
FleetHub usa o agendador do Laravel. Você configura apenas um cron job que é executado a cada minuto, e o Laravel despacha internamente cada tarefa no horário correto (diariamente às 08:00, mensalmente, etc.). Para cPanel, configure-o em Avançado → Cron Jobs. Para Hostinger, use hPanel → Avançado → Cron Jobs. Consulte Configuração do Painel → Etapa 7 ou Configuração do Hostinger → Etapa 5. Se o seu host não tiver cron, use o URL do Cron no aplicativo com o serviço gratuito cron-job.org.
Quais métodos de depreciação são suportados?
Três métodos: Linha Reta, Saldo Declinante e Unidades de Produção (com base no odômetro km). Os valores dos veículos alimentam o painel TCO e são atualizados automaticamente mensalmente.
O scanner QR funciona em telefones celulares?
Sim – motoristas e gerentes podem escanear códigos QR do veículo com a câmera do navegador via html5-qrcode. As ações de verificação rápida (registro de combustível, hodômetro, relatório de incidente) exigem login. O único requisito é HTTPS.
Posso adicionar meus próprios campos sem codificação?
Sim. Admin → Campos personalizados permite adicionar atributos ilimitados (texto, número, data, seleção, área de texto, arquivo, caixa de seleção), colocá-los em categorias de veículos, marcá-los como obrigatórios e reordená-los arrastando e soltando.
Quantos idiomas o FleetHub suporta?
11 localidades prontas para uso: inglês, vietnamita, espanhol, francês, alemão, chinês, japonês, português (BR), russo, árabe (com suporte RTL completo) e hindi. Os administradores gerenciam as traduções em Administração → Traduções.
Posso instalar o FleetHub em hospedagem compartilhada cPanel?
Sim - FleetHub funciona em qualquer plano cPanel de hospedagem compartilhada padrão com PHP 8.2+, MySQL e Cron Jobs. Nenhum Composer ou Node.js no servidor é necessário – o pacote é enviado pré-construído. Consulte a seção Configuração do cPanel.
Como faço para mudar a marca do FleetHub (página de login, título da página e cores)?
O FleetHub pode ser totalmente personalizado no painel de administração — sem editar código nem executar npm run build. O logo de login, o rodapé, o badge e o título da aba do navegador seguem Configurações → Marca → Nome do aplicativo. A aba Aparência permite personalizar as cores do app nos modos claro e escuro.
auth.login_subtitle por idioma → personalize as cores em Configurações → Aparência.
Referência rápida:
| Item | Exemplo | Como alterar |
|---|---|---|
| Logo e nome | Seu app de frota | Configurações → Marca → Nome do aplicativo |
| Subtítulo de login | Informe suas credenciais para acessar o FleetHub | Administração → Traduções → auth.login_subtitle |
| Copyright do rodapé | © 2026 Sua empresa | Configurações → Marca → Nome do aplicativo |
| Título da aba do navegador | NomeApp | Configurações → Marca → Nome do aplicativo |
| Cores do app | Paleta personalizada | Configurações → Aparência |
1. Logo e nome: Entre como administrador → Configurações → Marca → atualize Nome do aplicativo (e envie um logo, se quiser) → Salvar.
2. Subtítulo de login: Edite auth.login_subtitle em Administração → Traduções para cada idioma, ou edite lang/{locale}/auth.php diretamente.
3. Cores do app: Configurações → Aparência — configure cores de marca, destaque, status e texto separadamente para os modos claro e escuro. Clique em Salvar aparência para aplicar em todo o app.
Visão geral
FleetHub é um sistema de gestão de ativos de frota empresarial para veículos internos da empresa (50–200 veículos). Construído com Laravel 11, Vue 3 e Tailwind CSS — cobre veículos, motoristas, requisições, entregas com mapa de avarias, registros de combustível, despesas, análise TCO, acompanhamento de conformidade e pontuação de saúde da frota. Não é destinado a táxi ou locação de veículos.
Digitalização rápida de QR
Digitalize o QR de qualquer veículo para registrar combustível, atualizar o hodômetro ou relatar incidentes – priorizando os dispositivos móveis para os motoristas.
Painel de TCO
Custo total de propriedade por veículo e para toda a frota — compra, combustível, manutenção, seguro e muito mais.
Entrega de veículos
Transferências de saída/recebimento com mapeador de danos 2D, lista de verificação, fotos, assinatura e relatório em PDF.
Pontuação de integridade da frota
Pontuação diária com avarias — manutenção vencida, conformidade expirada, anomalias de combustível.
Acompanhamento de conformidade
Seguros, registo, imposto de circulação, autorizações, cartas de condução - alertas em 30/14/7/1 dias.
Relatórios de Frota
7 relatórios integrados com gráficos, exportação para Excel e PDF.
Requisitos do servidor
- PHP 8.2 ou superior (8.3 recomendado)
- MySQL 5.7+ ou MariaDB 10.3+
- Composer 2.x (somente para desenvolvimento local — não é necessário em hospedagem compartilhada)
- Node.js 18+ e npm 9+ (somente para compilações de front-end local)
- Servidor Web: Apache ou Nginx
Extensões PHP necessárias
- OpenSSL, PDO, PDO_MySQL, Mbstring, Tokenizer, XML, Ctype, JSON, GD, Fileinfo
Espaço em disco
~ 200 MB no mínimo. Deixe espaço extra para fotos de veículos, recibos de combustível, imagens de entrega e documentos de conformidade.
Instalação
Opção A – Instalador da Web (recomendado)
- Faça upload dos arquivos do projeto para o seu servidor web.
- Aponte a raiz do documento do seu domínio para
public/. - Definir permissões:
storage/ebootstrap/cache/devem ser graváveis (chmod 775). - Copie
.env.examplepara.enve definaAPP_KEY(executephp artisan key:generatese você tiver SSH/Terminal ou consulte cConfiguração do painel → Etapa 5). - Visite
https://yourdomain.com/installno seu navegador. - Siga o assistente — Requisitos → Banco de dados → Migrar → Conta de administrador → Concluído. Marque Incluir dados de demonstração para carregar a frota de amostra com contas de demonstração (consulte Usuários e funções).
Opção B – Instalação CLI
# 1. Instale dependências
composer install --no-dev --optimize-autoloader
npm install
npm run build
# 2. Configurar ambiente
cp .env.example .env
php artisan key:generate
# 3. Edite .env para definir credenciais de banco de dados
# DB_HOST, DB_PORT, DB_DATABASE, DB_USERNAME, DB_PASSWORD
# 4. Crie tabelas de banco de dados e propague os dados iniciais
php artisan migrate --seed
# 5. Crie um link simbólico de armazenamento para uploads
php artisan storage:link
# 6. Configuração de cache para produção
php artisan config:cache
php artisan route:cache
php artisan view:cache
# 7. Marcar como instalado
echo "Installed" > storage/installed.lock
public/. Para Apache, o .htaccess incluído lida com a reescrita de URL. Para Nginx, consulte o Guia de implantação do Laravel.
Etapa 2 do assistente — Configuração do banco de dados
Quando o assistente chegar à Etapa 2, insira os detalhes da conexão MySQL para o banco de dados que você criou em seu painel de hospedagem.
| Campo | Padrão/Exemplo | Notas |
|---|---|---|
| Host | 127.0.0.1 | Funciona em 99% dos hosts compartilhados. Mantenha esse padrão, a menos que sua hospedagem forneça um nome de host MySQL personalizado. |
| Port | 3306 | Porta MySQL padrão. Altere apenas se o seu provedor usar uma porta fora do padrão. |
| Nome do banco de dados | uXXXXXX_fleethub | O nome completo mostrado no seu painel de hospedagem, incluindo qualquer prefixo. |
| Nome de usuário | uXXXXXX_fleethub | Usuário MySQL com permissões no banco de dados acima. Não use root em hospedagem compartilhada. |
| Senha | (sua senha do banco de dados) | A senha que você definiu ao criar o usuário MySQL. |
Onde encontrar essas credenciais no painel de hospedagem
- Hostinger: hPanel → Bancos de dados → Gerenciamento → clique em seu banco de dados.
- cPanel: cPanel → Bancos de dados MySQL. A lista do banco de dados mostra nomes; os usuários estão listados abaixo.
- Plesk: Plesk → Bancos de dados → clique no nome do banco de dados.
- DirectAdmin: DirectAdmin → Gerenciamento MySQL → clique no banco de dados.
- Banco de dados externo/gerenciado: AWS RDS, banco de dados gerenciado DigitalOcean, etc. Use credenciais do seu console de nuvem.
Erros comuns e como corrigi-los
| Mensagem de erro | Causa e correção |
|---|---|
SQLSTATE[HY000] [1045] Access denied | Nome de usuário ou senha incorretos ou o usuário não tem acesso a este banco de dados. |
SQLSTATE[HY000] [1049] Unknown database | O nome do banco de dados está errado ou você ainda não criou o banco de dados. |
SQLSTATE[HY000] [2002] Connection refused | O servidor MySQL não pode ser acessado. Tente localhost em vez de 127.0.0.1 ou vice-versa. |
SQLSTATE[42S02] Base table not found: sessions | Defina SESSION_DRIVER=file e CACHE_STORE=file em .env antes da migração. |
could not find driver | A extensão PHP pdo_mysql está faltando. Habilite-o em seu painel de hospedagem. |
127.0.0.1 e 3306 — deixe-os como estão na hospedagem compartilhada.
Localhost (desenvolvimento local)
Guia rápido para executar o FleetHub em seu computador para teste ou desenvolvimento antes de implantar em produção. Escolha o ambiente que corresponde ao seu sistema operacional.
Opção 1 – Laravel Herd (recomendado, macOS e Windows)
Laravel Herd é o ambiente local oficial da equipe Laravel — gratuito, nativo, sem Docker. Pacotes PHP 8.2/8.3/8.4, Nginx e (no Herd Pro) MySQL/Redis.
- Baixe e instale Laravel Herd em herd.laravel.com.
- Coloque a pasta do projeto FleetHub dentro de
~/Herd/(macOS) ou%USERPROFILE%\Herd\(Windows). Herd cria automaticamente um domínio.test- por exemplo.http://fleethub.test. - Abra Herd → Sites e confirme se a versão do PHP é 8.2 ou 8.3. Clique com o botão direito no site → Secure para ativar HTTPS (necessário para scanner QR).
- Crie um banco de dados MySQL. Com Herd Pro, use Services → MySQL → Abrir no TablePlus. Caso contrário, instale MySQL Community ou use SQLite (
DB_CONNECTION=sqlite,touch database/database.sqlite). - Copie
.env.examplepara.env, preencha as credenciais do banco de dados e executephp artisan key:generatena raiz do projeto. - Abra
http://fleethub.test/installno seu navegador e siga o assistente de instalação.
Opção 2 – XAMPP (Windows, macOS, Linux)
XAMPP agrupa Apache, MySQL/MariaDB e PHP. Gratuito e multiplataforma. Certifique-se de escolher uma versão com PHP 8.2 ou mais recente.
- Baixe XAMPP 8.2+ de apachefriends.org e instale-o.
- Copie o projeto FleetHub em
C:\xampp\htdocs\FleetHub\(Windows) ou/Applications/XAMPP/htdocs/FleetHub/(macOS). - Abra Painel de controle XAMPP e inicie Apache e MySQL. Se as portas estiverem ocupadas, use Config → service.conf para mudar o Apache para 8080.
- Vá para
http://localhost/phpmyadmin→ New → crie um banco de dados chamadofleethubcom agrupamento utf8mb4. - Na pasta do projeto: copie
.env.examplepara.env, definaDB_DATABASE=fleethub,DB_USERNAME=root, deixeDB_PASSWORDvazio (padrão XAMPP). Executephp artisan key:generate. - Visite
http://localhost/FleetHub/public/installpara executar o assistente de instalação.
/public/: crie um host virtual em C:\xampp\apache\conf\extra\httpd-vhosts.conf apontando DocumentRoot para a pasta public/ do projeto e adicione 127.0.0.1 fleethub.local ao seu arquivo hosts.
Opção 3 – Laragão (Windows)
Laragon é uma pilha portátil do Windows projetada para Laravel - vhosts automáticos, URLs bonitos, MySQL/MariaDB e HeidiSQL incluído.
- Baixe Laragon Full de laragon.org e instale-o.
- No Laragon: Menu → PHP → Versão — mude para PHP 8.2 ou 8.3.
- Copie o projeto FleetHub em
C:\laragon\www\FleetHub\. - Clique em Iniciar tudo. O Laragon cria automaticamente o vhost:
http://fleethub.test(apontando para a pastapublic/). - Abra HeidiSQL (empacotado) → crie um banco de dados
fleethub. Credenciais padrão: usuárioroot, senha vazia. - Edite
.envcom as credenciais do banco de dados, executephp artisan key:generatee visitehttp://fleethub.test/install.
Opção 4 – Servidor PHP integrado (não é necessário servidor web)
A opção mais simples: o Laravel vem com artisan serve, que inicia um servidor PHP de desenvolvimento. Não é necessário Apache ou Nginx. Melhor para testes rápidos.
# Instale dependências e configure
cd /path/to/FleetHub
composer install
cp .env.example .env
php artisan key:generate
# Execute migrações e propague dados iniciais
php artisan migrate --seed
# Inicie o servidor de desenvolvimento
php artisan serve
# Então visite: http://127.0.0.1:8000/install
Dicas comuns de host local
A câmera do scanner QR não abre em http://
As APIs da câmera do navegador requerem HTTPS, com uma exceção: http://localhost e http://127.0.0.1 são tratados como contextos seguros. Se você acessar o FleetHub através do IP da sua LAN (por exemplo, http://192.168.1.10), a câmera recusará. Use localhost para dev ou habilite HTTPS via Herd/mkcert.
Permissão negada no armazenamento (macOS/Linux)
Se você vir erros de gravação quando o aplicativo tentar registrar ou armazenar em cache, corrija as permissões: chmod -R 775 storage bootstrap/cache. No Windows, isso geralmente não é necessário.
Porta já em uso
Se a porta 8000 for usada por outro aplicativo, use uma porta diferente:
php artisan serve --port=8001
Testando e-mails localmente
O SMTP real não está disponível na maioria das configurações de host local. Duas opções seguras: (1) definir MAIL_MAILER=log em .env — os e-mails são despejados em storage/logs/laravel.log em vez de serem enviados; ou (2) use Mailtrap / MailHog para capturar mensagens enviadas em uma caixa de entrada falsa.
MAIL_MAILER=log
# Todos os e-mails são gravados em storage/logs/laravel.log
Ativos de front-end (Vite/Tailwind)
O front-end Vue/Tailwind do FleetHub é pré-construído no pacote. Se você editar os componentes do Vue ou a configuração do Tailwind, precisará do Node.js 18+:
npm install
npm run dev # Hot-reload durante o desenvolvimento
npm run build # Compilação de produção (executada antes da implantação)
Implantando no Hostinger Single (Hospedagem Compartilhada)
Este é o caminho recomendado para usuários sem VPS ou experiência técnica. FleetHub é totalmente compatível com o plano Hostinger Single Web Hosting mais barato (~$2,99/mês). Sem SSH, sem Composer, sem necessidade de linha de comando – Single inclui cron jobs nativos, PHP 8.3 e SSL grátis prontos para uso.
Passo 1 — Prepare sua hospedagem
- Faça login em Hostinger hPanel.
- Vá para Hospedagem → Gerenciar para seu domínio.
- Defina a versão do PHP para 8.2 ou 8.3 via Avançado → Configuração do PHP.
- Certifique-se de que estas extensões PHP estejam habilitadas (geralmente padrão):
- OpenSSL, PDO, PDO_MySQL, Mbstring, GD, Tokenizer, XML, Ctype, JSON, Fileinfo
Passo 2 — Criar banco de dados MySQL
- No hPanel, vá para Bancos de dados → Bancos de dados MySQL.
- Clique em Criar novo banco de dados.
- Observe estes 3 valores:
Nome do banco de dados— por exemplou123_FleetHubNome de usuário— por exemplou123_adminSenha— gerado automaticamente, mantenha-o seguro
Passo 3 — Carregar arquivos
- Vá para Arquivos → Gerenciador de Arquivos no hPanel.
- Navegue até
public_html/(esta é a raiz do seu domínio). - Exclua qualquer padrão
index.htmloudefault.phpnessa pasta. - Clique em Carregar arquivos e carregue todo o
source.zipdo pacote.
Ou carregue o conteúdo da pasta/source/diretamente via FTP, se preferir. - Se você carregou um ZIP, clique com o botão direito → Extrair. Após a extração, todos os arquivos deverão estar na raiz de
public_html/. - Verifique se
public_html/contém:app/,public/,vendor/,.htaccess,index.php(empublic/),.env, etc.
.htaccess exista na raiz de public_html/. Ele contém as regras de reescrita de URL. Se o Gerenciador de Arquivos ocultar arquivos ocultos, clique em Configurações → Mostrar arquivos ocultos.
Passo 4 — Execute o instalador
- Abra seu navegador e vá para
https://yourdomain.com/install. - Você verá o instalador FleetHub.
- Etapa 1: Requisitos — Todas as verificações devem passar (verde). Se alguma falhar, entre em contato com o suporte da Hostinger para ativar a extensão PHP ausente.
- Etapa 2: Banco de dados — Insira as credenciais da Etapa 2 acima:
- Hospedar:
localhost - Porta:
3306 - Banco de dados:
u123_FleetHub - Nome de usuário:
u123_admin - Senha: (a que a Hostinger gerou)
- Hospedar:
- Etapa 3: Migrar — Clique em "Executar Migrações e Seed". Leva cerca de 10 segundos. Não atualize.
- Etapa 4: Admin — Crie sua conta de administrador. Use uma senha forte.
- Concluído! — Você verá a URL do Cron (salve!) e um botão para fazer login.
Passo 5 — Configure alertas automáticos por e-mail via Hostinger Cron
FleetHub usa o agendador do Laravel para tarefas em segundo plano: alertas de expiração de conformidade, lembretes de manutenção, avisos de requisições vencidas, alertas de carteira de motorista, atualizações de valor de veículos e recálculo de pontuação de saúde da frota. Configure o cron job one no hPanel e o Laravel decide qual tarefa executar e quando.
- No hPanel, vá para Avançado → Cron Jobs.
- Clique em Criar tarefa Cron.
- Selecione o tipo: Custom (não "PHP" — precisamos passar um argumento).
- Para o comando, digite (substitua
uXXXXXXpelo nome de usuário da sua conta Hostinger):
Dica: abra o Gerenciador de Arquivos, localize o arquivo/usr/bin/php /home/uXXXXXX/public_html/artisan schedule:runartisan(raiz do seu projeto), clique com o botão direito → Propriedades para copiar o caminho completo. - Defina a programação como A cada minuto — todos os cinco campos (Minuto, Hora, Dia, Mês, Dia da semana) definidos como
*. - Clique em Salvar.
É isso aí - o FleetHub agora envia lembretes de requisições vencidas, alertas de manutenção, alertas de conformidade e expiração de licença, atualiza os valores de depreciação do veículo e recalcula automaticamente a pontuação de integridade da frota.
public_html/public/? Não tem problema — seu código Laravel ainda reside na raiz public_html/, então o caminho do cron permanece /home/uXXXX/public_html/artisan (não adicione /public/).
- Faça login como administrador → Configurações → guia Sistema → copie seu URL Cron.
- Cadastre-se gratuitamente em cron-job.org.
- Crie um cronjob, cole o URL, defina A cada 15 minutos, salve.
Passo 6 — Configurar e-mail (SMTP)
A Hostinger fornece contas de e-mail com cada plano. Para usá-los para notificações do FleetHub:
- No hPanel, vá para Emails → Contas de Email e crie uma (por exemplo,
noreply@yourdomain.com). - Edite o arquivo
.envempublic_html/através do Gerenciador de Arquivos: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" - Salve o arquivo.
- Faça login no FleetHub → Configurações → guia E-mail → Enviar e-mail de teste. Se você receber, está feito.
Problemas comuns no Hostinger Single
“500 Erro interno do servidor” após upload
- Verifique se
.htaccessexiste na raizpublic_html/e contém as regras de reescrita. - Verifique se a versão do PHP está definida como 8.2 ou 8.3 no hPanel.
- Verifique
storage/logs/laravel.logatravés do Gerenciador de Arquivos para ver o erro real.
"Permissão negada" em uploads
A Hostinger geralmente define as permissões corretas, mas se não:
- Clique com o botão direito em
storage/no Gerenciador de Arquivos → Permissões → defina como755recursivamente. - O mesmo para
bootstrap/cache/.
A câmera do scanner de código QR não abre
As APIs da câmera do navegador exigem HTTPS. A Hostinger oferece SSL grátis via Let's Encrypt – habilite-o no hPanel em SSL → Manage.
E-mails programados não estão sendo enviados
- No hPanel → Cron Jobs → verifique a coluna Last run em sua entrada cron. Se estiver vazio, o cron não está disparando — verifique se o caminho do artesão está correto.
- Teste o comando manualmente: abra Terminal no hPanel (se disponível) e execute o comando cron. Se houver erro, a mensagem de erro identificará o problema (versão errada do PHP, caminho errado, etc.).
- Verifique se o SMTP está configurado corretamente (Configurações → Email → Enviar teste).
- Verifique
storage/logs/laravel.logquanto a erros do agendador.
Desempenho lento
Hostinger Single compartilhou CPU/RAM. Se sua equipe tiver mais de 20 usuários, considere:
- Atualizando para Premium (~$3,99/mês) — servidores mais rápidos, mais recursos, vários bancos de dados.
- Ou Business (~$5,99/mês) — recursos dedicados, backups diários, ambiente de teste.
Implantando no cPanel (hospedagem compartilhada)
Este guia cobre hospedagem compartilhada padrão cPanel (Namecheap, Bluehost, GoDaddy e a maioria dos hosts econômicos). FleetHub é fornecido com vendor/ e ativos de front-end pré-construídos - sem necessidade de Composer, npm ou terminal web. Se o seu cPanel não tiver Terminal, use SSH Access ou as soluções alternativas do Gerenciador de Arquivos abaixo.
/home/CPANELUSER/ — verifique a barra lateral no cPanel em Informações Gerais.
Passo 1 — Definir versão e extensões do PHP
- Faça login em cPanel.
- Abra MultiPHP Manager (ou Select PHP Version) e defina seu domínio para PHP 8.2 ou 8.3.
- Abra MultiPHP INI Editor ou PHP Extensions e confirme se estão habilitados:
- OpenSSL, PDO, PDO_MySQL, Mbstring, GD, Tokenizer, XML, Ctype, JSON, Fileinfo
- Se uma extensão estiver faltando, habilite-a na lista de extensões ou entre em contato com o suporte do seu host.
Passo 2 — Habilitar SSL (HTTPS)
- Vá para SSL/TLS Status (ou Let's Encrypt SSL / AutoSSL).
- Execute AutoSSL ou instale um certificado gratuito para o seu domínio.
- HTTPS é obrigatório para que o scanner QR no navegador acesse a câmera.
https://yourdomain.com para confirmar se o ícone de cadeado aparece.
Passo 3 — Criar banco de dados MySQL e usuário
- Abra Gerenciar meus bancos de dados (em Bancos de dados).
- Em Criar novo banco de dados, insira um nome (por exemplo,
fleethub) e clique em Criar. O cPanel adiciona o prefixo da sua conta automaticamente – o nome completo será semelhante acpaneluser_fleethub. - Em MySQL Users, crie um usuário com uma senha forte. Copie o nome de usuário prefixado completo.
- Em Adicionar usuário ao banco de dados, selecione o usuário e o banco de dados, clique em Adicionar e conceda TODOS OS PRIVILÉGIOS. Esta etapa é fácil de perder - sem ela você obtém erros
Access denied (1045). - Observe estes três valores exatamente como mostrado no cPanel:
Nome do banco de dados— por exemplou123_FleetHubNome de usuário— por exemplou123_adminSenha— gerado automaticamente, mantenha-o seguro
Passo 4 — Carregar arquivos
- Abra File Manager e vá para
public_html/(a raiz do documento do seu domínio). - Habilite Configurações → Mostrar arquivos ocultos para que você possa ver
.htaccesse.env. - Exclua qualquer padrão
index.htmlempublic_html/, se presente. - Carregue o pacote
source.zipe Extraia ou carregue o conteúdo da pasta/source/via FTP. - Após a extração,
public_html/deve conterapp/,public/,vendor/, raiz.htaccesseartisanno mesmo nível.
.htaccess redireciona todas as solicitações para a pasta public/ — você não precisa alterar a raiz do documento manualmente na maioria dos hosts.
Passo 5 — Prepare .env antes de executar o instalador
Conclua esta etapa antes de visitar /install. Laravel requer um APP_KEY válido e configurações de banco de dados corretas em .env.
- No Gerenciador de Arquivos, copie
.env.examplepara.env(mesma pasta deartisan). - Edite
.enve defina no mínimo: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 - Defina
DB_CONNECTION=mysql— o padrão.env.exampleusa SQLite; hospedagem compartilhada requer MySQL. - Defina
SESSION_DRIVER=fileeCACHE_STORE=fileantes da primeira migração (evita erros de "tabela de sessões não encontrada"). - Coloque
DB_PASSWORDentre aspas duplas se contiver caracteres especiais (#,$,!, etc.).
Gere APP_KEY (sem necessidade de terminal)
Muitos planos cPanel não incluem um terminal web. Use um destes métodos:
- Acesso SSH (cPanel → Segurança → Acesso SSH): conecte-se com PuTTY ou PowerShell e execute
cd ~/public_html && php artisan key:generate. - Ajudante do Gerenciador de Arquivos — crie
public/genkey.phptemporariamente, visite-o em seu navegador, copie a saída paraAPP_KEY=e exclua o arquivo imediatamente.<?php echo 'base64:' . base64_encode(random_bytes(32)); - No seu PC — se o PHP estiver instalado localmente, execute
php -r "echo 'base64:'.base64_encode(random_bytes(32));"e cole o resultado em.env.
genkey.php assim que copiar a chave. Nunca deixe scripts auxiliares em um servidor de produção.
- Defina as permissões
storage/ebootstrap/cache/como 755 (recursiva) se o instalador relatar erros de gravação.
Passo 6 — Execute o instalador web
- Abra
https://yourdomain.com/installno seu navegador. - Etapa 1: Requisitos — todas as verificações devem ser aprovadas (verde). Corrija quaisquer extensões PHP ausentes na Etapa 1 acima.
- Etapa 2: Banco de dados — insira os nomes prefixados exatos da Etapa 3:
- Hospedar:
127.0.0.1orlocalhost - Porta:
3306 - Banco de dados:
cpaneluser_fleethub - Nome de usuário:
cpaneluser_admin - Senha: (your MySQL password)
- Hospedar:
- Etapa 3: Migrar — clique em "Executar Migrações e Seed". Leva cerca de 10 segundos. Não atualize a página.
- Desmarque Incluir dados de demonstração para uma instalação de produção limpa.
- Etapa 4: Admin — crie sua conta de administrador.
- Concluído! — salve o URL do Cron mostrado na tela final.
Passo 7 — Configurar Cron Jobs para alertas por e-mail
FleetHub precisa de um cron job em execução a cada minuto para que o Laravel possa enviar alertas de conformidade, lembretes de manutenção, avisos de requisições vencidas e outros e-mails programados.
- No cPanel, vá para Avançado → Cron Jobs.
- Em Adicionar novo cron job, defina a programação como Cada minuto (
* * * * *). - Digite o comando (substitua
CPANELUSERpelo seu nome de usuário cPanel em Informações Gerais):
Dica: o caminho do PHP pode ser/usr/local/bin/php /home/CPANELUSER/public_html/artisan schedule:run/usr/local/bin/phpou/usr/bin/php— pergunte ao seu host se não tiver certeza. O caminho do artesão é onde você carregou o projeto (geralmente/home/CPANELUSER/public_html/artisan). - Clique em Adicionar novo cron job para salvar.
public_html/public/? Cron ainda aponta para /home/CPANELUSER/public_html/artisan — não adicione /public/.
- Faça login como administrador → Configurações → Sistema → copie o URL do Cron.
- Registre-se em cron-job.org (gratuito).
- Crie um trabalho acessando esse URL a cada 15 minutos.
Passo 8 — Configurar e-mail (SMTP)
Crie uma conta de e-mail cPanel para notificações enviadas:
- Vá para Contas de e-mail → crie, por exemplo.
noreply@yourdomain.com. - Edite
.envno Gerenciador de Arquivos: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" - Salve e, em seguida, no FleetHub: Configurações → Email → Enviar email de teste.
Problemas comuns no cPanel
“Acesso negado ao usuário” (SQLSTATE 1045)
- Copie o nome do banco de dados e o nome de usuário exatamente do cPanel – incluindo o prefixo da conta.
- Confirme que você concluiu Adicionar usuário ao banco de dados com TODOS OS PRIVILÉGIOS.
- Redefina a senha do MySQL no cPanel e atualize
.env— use aspas em torno deDB_PASSWORDse contiver caracteres especiais.
A migração falha após a etapa do banco de dados ser concluída
- O assistente testa as credenciais do formulário, mas o Migrate lê
.env. Certifique-se de que ambos correspondam. - Exclua
bootstrap/cache/config.phpse existir e tente novamente. - Certifique-se de que
DB_CONNECTION=mysqlesteja definido em.env(não sqlite).
“Valor padrão inválido” durante a migração (1067)
O modo estrito do MySQL em hospedagem compartilhada pode rejeitar certos padrões de coluna. Verifique storage/logs/laravel.log para o erro de migração exato e garanta o PHP 8.2+ com todas as extensões necessárias habilitadas.
“500 Erro interno do servidor” após upload
- Verifique se o root
.htaccessexiste e o PHP é 8.2+. - Verifique
storage/logs/laravel.logpara ver o erro real. - Confirme que
APP_KEYestá definido em.env— chave vazia causa 500 erros.
Nenhum terminal no cPanel
Isso é normal em muitos planos compartilhados. Use SSH Access (se ativado), o método temporário genkey.php na Etapa 5 ou gere a chave em seu PC local.
A câmera do scanner QR não abre
Habilite SSL via SSL/TLS Status → AutoSSL e acesse o site via https://.
Configuração
Arquivo .env
| Chave | Descrição | Exemplo |
|---|---|---|
APP_NAME | Nome do aplicativo mostrado na barra de título | FleetHub |
APP_URL | URL pública da sua instalação | https://fleet.example.com |
APP_DEBUG | Definido como false na produção | false |
DB_* | Detalhes de conexão com o banco de dados | mysql, 127.0.0.1, 3306, ... |
MAIL_MAILER | Driver de e-mail | smtp, log, mailgun |
MAIL_HOST | Nome de host do servidor SMTP | smtp.gmail.com |
MAIL_PORT | Porta SMTP | 587 |
MAIL_USERNAME | Nome de usuário SMTP | your@email.com |
MAIL_PASSWORD | Senha SMTP ou token de aplicativo | ********** |
MAIL_FROM_ADDRESS | Endereço De padrão | noreply@example.com |
Configurações no aplicativo
A maioria das opções não confidenciais são configuráveis em Admin → Configurações:
- Geral: nome/e-mail/telefone da empresa, marca
- Frota: prefixo do código do veículo, modelo de lista de verificação de entrega, padrões de manutenção, modo de página de veículo público
- Email: envie um email de teste para verificar o SMTP
- Notificações: alternar alertas de conformidade, manutenção, requisição e licença
- Localização: fuso horário, formato de data, moeda — aplicado em todo o aplicativo
- Conformidade: gerenciar predefinições de tipo de conformidade (seguro, registro, imposto rodoviário, etc.)
- Branding: nome e logotipo do aplicativo — atualiza o login, o rodapé e o título da página do navegador
- Aparência: personalize marca, status e cores de texto para modo claro e escuro — consulte guia de mudança de marca nas Perguntas frequentes
Suporte multilíngue
O FleetHub vem com 11 idiomas prontos para uso, incluindo RTL árabe e hindi. Os usuários trocam de idioma por meio do menu suspenso de sinalização no cabeçalho superior direito.
Idiomas enviados
| Código | Linguagem | Direção |
|---|---|---|
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 |
Como mudar de idioma
- Clique no ícone da bandeira no cabeçalho superior direito para abrir o menu suspenso.
- Escolha seu idioma na lista.
- A página é recarregada; todos os rótulos da interface do usuário, datas e formatos de moeda mudam.
- A sua escolha é guardada na sua conta de utilizador e num cookie (1 ano).
/locale/{code}, que só funciona quando um servidor PHP está em execução. Acesse sempre através do seu domínio real (produção) ou http://localhost:8000 (dev com php artisan serve). Arquivos de documentação como este, por outro lado, são totalmente independentes e podem ser abertos diretamente.
Adicionando um idioma personalizado (admin)
Vá para Administração → Traduções (usuários administradores com permissão gerenciar traduções):
- Clique em "Adicionar localidade" - forneça um código (por exemplo,
mkpara macedônio), nome de exibição, nome nativo, nome do arquivo SVG da bandeira, direção (LTR/RTL) e uma localidade base para copiar as traduções. - A nova localidade aparece no alternador de idiomas e na lista Configurações → Localização de idiomas padrão.
- As traduções armazenadas no banco de dados substituem automaticamente as traduções de arquivos em
lang/{code}/.
Editor de tradução
O editor lista todas as chaves de tradução agrupadas por arquivo (por exemplo, ativos, navegação, configurações). As chaves mostram a linha de base do arquivo e qualquer substituição do banco de dados.
- Filtre por localidade, grupo de tradução ou texto de pesquisa.
- Clique em um valor para editar in-line; as alterações são salvas no banco de dados imediatamente.
- Redefina uma chave para reverter à linha de base do arquivo.
- As localidades integradas (en, vi, es,…) podem ser editadas; localidades personalizadas são totalmente orientadas por banco de dados.
- Somente usuários com permissão gerenciar traduções podem acessar esta página.
Importação/exportação de CSV
- Exportar — baixe todas as chaves de uma localidade como CSV (
group,key,value). - Import — carregue um CSV com as mesmas colunas; as substituições de banco de dados existentes são atualizadas, novas chaves são inseridas.
Localidade padrão por usuário
Cada usuário possui uma coluna locale. As notificações por e-mail são enviadas automaticamente no idioma preferido do destinatário graças ao contrato HasLocalePreference do Laravel.
O idioma padrão do site é definido em Configurações → Localização → Idioma padrão. Usuários individuais substituem isso por meio do alternador de idioma do cabeçalho.
Lista de recursos (15 grupos de módulos)
Gestão de Veículos
- Códigos de veículos gerados automaticamente (prefixo VH)
- Matrícula, VIN, marca, modelo, tipo de combustível
- Geração de código QR e impressão em lote
- Status, condição, rastreamento do hodômetro
- Importação/exportação em massa do Excel
- Clone veículo para compras de frotas idênticas
- Página de detalhes de 7 guias com cronograma do ciclo de vida
Requisições e transferências
- Solicitar → aprovar → devolver fluxo de trabalho
- Visualização de calendário e detecção de conflitos
- Mapeador de danos 2D + assinatura digital
- Exportação de relatório de transferência em PDF
Manutenção
- Agendamento preventivo e corretivo
- Visualização do calendário por prioridade
- Agendamento automático do próximo preventivo
- Acompanhamento de custos → sincronização automática de despesas
- Lembretes por e-mail antes da data de vencimento
Conformidade e Combustível
- Itens genéricos de conformidade (seguro, registro, licenças)
- Rastreamento de vencimento de carteira de motorista
- Registros de combustível com upload e compactação de recibos
- Validação de hodômetro antifraude
TCO e Depreciação
- 3 métodos de depreciação incl. unidades de produção (km)
- Painel de TCO com métricas de custo/km
- Sincronize automaticamente combustível e manutenção com despesas
- Gráficos de curva de depreciação
Relatórios
- 7 tipos de relatórios de frota
- Exportação Excel + PDF
- Painéis ApexCharts
- Filtros de período
Operações de Frota
- Pontuação de integridade da frota com recálculo diário
- Gerenciamento de driver com sincronização de licença
- Despesas com veículos (seguros, pedágios, estacionamento, etc.)
- Verificação rápida de QR para motoristas (combustível, hodômetro, incidente)
Localização
- 11 idiomas de UI integrados + localidades personalizadas
- Editor de tradução com pesquisa e edição inline
- Importação/exportação de CSV para atualizações de tradução em massa
- Configurações de fuso horário e moeda aplicadas em todo o aplicativo
Marca e aparência
- Título da página do navegador em Configurações → Marca → Nome do aplicativo
- Personalize as cores do aplicativo em Configurações → Aparência (modo claro e escuro)
Usuários e funções
FleetHub vem com 5 funções pré-configuradas para operações internas de frota:
| Função | Capacidades |
|---|---|
| Administrador | Acesso total ao sistema — usuários, departamentos, configurações, log de auditoria, webhooks, traduções |
| Gestor de frota | Gerenciar veículos, motoristas, requisições, entregas, manutenção, registros de combustível; aprovar requisições; acesso completo aos relatórios |
| Contador | Painel de controle de TCO, despesas, depreciação, relatórios de conformidade — foco financeiro de leitura intensa |
| Chefe de departamento | Aprovar requisições para o próprio departamento, visualizar veículos e relatórios do departamento |
| Motorista | Visualize o veículo atribuído, envie registros de combustível, ações de verificação rápida, visualize as próprias requisições |
Contas demo (senha: password): admin@fleethub.test, manager@fleethub.test, dept@fleethub.test, accountant@fleethub.test, driver@fleethub.test. Habilite dados de demonstração durante a instalação ou propagação. As permissões são funções do Spatie – os administradores podem ajustar as permissões.
Gestão de Veículos
Criando Veículos
- Navegue até Veículos → Novo veículo.
- Preencha placa, marca, modelo, ano, tipo de combustível, categoria e departamento.
- Adicione a data e o custo da compra (obrigatório para depreciação e TCO).
- Faça upload de imagens (vários arquivos suportados, máximo de 5 MB cada – compactados automaticamente no celular).
- Salvar – o código do veículo e o código QR são gerados automaticamente.
Formato do código do veículo
Padrão: {PREFIX}-{YEAR}-{NNNN}, por ex. VH-2026-0001. Configurável via Configurações → Frota → Prefixo do código do veículo.
Importação em massa
- Clique em Importar na página Veículos.
- Baixe o modelo do Excel.
- Preencha seus dados - colunas obrigatórias:
license_plate,make,model,category_name. - Carregue o arquivo.
Códigos QR e verificação rápida
Cada veículo recebe automaticamente um código QR na criação. A digitalização abre a página do veículo público ou ações rápidas no aplicativo para motoristas autenticados.
Impressão de etiquetas
- Etiqueta única: Clique no ícone da impressora em qualquer linha do veículo.
- Impressão em lote: Selecione vários veículos → Imprimir etiquetas QR. Formato A4, 2 etiquetas por linha.
Verificação no aplicativo
Clique em Scan QR na página Veículos. Permitir permissão da câmera. Funciona em qualquer navegador moderno com HTTPS ou localhost.
Página de veículo público
Cada veículo possui uma URL pública em /v/{vehicle_code} — útil para identificação rápida sem fazer login.
- Configure em Configurações → Frota → Página de veículo público: Público, Login necessário ou Desativado.
- O modo visitante mostra informações básicas somente leitura (placa, marca/modelo). As ações rápidas do driver exigem login.
- Após alterar
APP_URL, clique em Regenerar todos os códigos QR em Configurações.
Fluxos de trabalho
Requisições de Veículos
Os funcionários enviam requisições dos veículos de que precisam. Fluxo: requested → approved → returned (ou rejected). O Gerente de Frota ou Chefe de Departamento aprova. A visualização do calendário mostra as reservas de toda a frota. Devoluções vencidas acionam alertas por e-mail.
Entrega de veículos
- Quando uma requisição for aprovada, crie uma Entrega de saída antes que o motorista leve o veículo.
- Registre o odômetro, preencha a lista de verificação, marque os danos no mapeador 2D, anexe fotos e capture assinatura digital.
- Salve e baixe o relatório de entrega em PDF para seus registros.
- Quando o veículo for devolvido, crie uma Entrega de entrada — compare a condição, atualize o odômetro, apague a atribuição do motorista.
- Concluir a entrega de retorno marca a requisição como devolvida e define o veículo como disponível.
Depreciação e TCO
FleetHub calcula a depreciação do veículo usando um dos três métodos. A depreciação alimenta o painel de TCO junto com registros e despesas de combustível.
| Método | Fórmula | Caso de uso |
|---|---|---|
| Linha reta | (Cost - Salvage) / Useful Life | Mais comum; depreciação anual igual |
| Saldo decrescente | 2 / Useful Life × Book Value | Acelerado; efeitos fiscais |
| Unidades de Produção | (km neste período / total de km esperados) × (Custo − Salvamento) | Veículos com km total previsível (com base no hodômetro) |
Os padrões são herdados da categoria do veículo. current_value é atualizado automaticamente mensalmente via fleethub:update-vehicle-values. TCO = custo de aquisição + soma dos gastos do veículo no período selecionado.
Campos personalizados
Admin → Campos personalizados permitem adicionar atributos personalizados ilimitados aos veículos:
- Tipos: texto, número, data, seleção (suspenso), área de texto, arquivo, caixa de seleção
- Escopo: aplica-se a todas as categorias ou categoria específica de veículo
- Reordenar: arraste e solte a alça
- Os campos obrigatórios são validados ao salvar o veículo
Relatórios
Sete relatórios de frota integrados, acessíveis no menu Relatórios:
- Resumo TCO — custo total de propriedade por veículo e em toda a frota
- Cronograma de depreciação — perda de valor por veículo com exportação
- Custo de manutenção — gastos por veículo, tipo e mês
- Consumo e custo de combustível — tendências de km/l com destaques de anomalias
- Uso de requisição — porcentagem de reserva por veículo ao longo do tempo
- Expiração de conformidade — documentos do veículo e carteiras de motorista expirando em breve
- Alocação de veículos por departamento — veículos e utilização por departamento
Todos os relatórios suportam exportação Excel e PDF por meio de botões no cabeçalho da página.
Webhooks
FleetHub pode notificar serviços externos sobre eventos importantes da frota.
Eventos disponíveis
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
Formato de carga útil
{
"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
}
}
Verificação de assinatura
Se um segredo for configurado, as solicitações incluirão o cabeçalho X-FleetHub-Signature contendo HMAC-SHA256 do corpo da carga útil. Verifique do seu lado:
$expected = hash_hmac('sha256', $rawBody, $secret);
if (hash_equals($expected, $request->header('X-FleetHub-Signature'))) {
// válido
}
Política de Nova Tentativa
Entregas com falha tentam novamente 3 vezes com atraso de 200 ms. Após 10 falhas consecutivas, o webhook é desativado automaticamente.
Tarefas agendadas
FleetHub usa o agendador do Laravel para trabalhos em segundo plano. Você só precisa da entrada one no cron — o Laravel despacha cada comando fleethub: no momento certo.
Hospedagem compartilhada (interface de usuário cPanel / Hostinger Cron Jobs)
Consulte Configuração do Painel → Etapa 7 ou Configuração do Hostinger → Etapa 5. Resumindo: Avançado → Cron Jobs, comando:
/usr/bin/php /home/uXXXXXX/public_html/artisan schedule:run
Programação: a cada minuto (* em todos os cinco campos).
Comando cron do cPanel
Substitua CPANELUSER pelo seu nome de usuário cPanel:
/usr/local/bin/php /home/CPANELUSER/public_html/artisan schedule:run
VPS/servidor dedicado (crontab)
Execute crontab -e como seu usuário da web e adicione:
* * * * * cd /path/to/FleetHub && php artisan schedule:run >> /dev/null 2>&1
Fallback: pinger de URL externo
Se o seu host não tiver cron, use o URL do Cron no aplicativo (Configurações → guia Sistema) com cron-job.org (gratuito, a cada 15 minutos).
Trabalhos que são executados automaticamente
| Tempo | Comando | Propósito |
|---|---|---|
| Diariamente 08:00 | fleethub:send-requisition-overdue-alerts | Requisição aprovada, mas não devolvida após a data de término solicitada |
| Diariamente 08:30 | fleethub:send-maintenance-reminders | Próximos lembretes de manutenção |
| Diariamente 09:00 | fleethub:send-compliance-expiry-alerts | Itens de conformidade expiram em 30/14/7/1 dias |
| Diariamente 09:30 | fleethub:send-driver-license-alerts | Alertas de expiração de carteira de motorista |
| Mensalmente 1º 02:00 | fleethub:update-vehicle-values | Atualizar veículo current_value da depreciação |
| Diariamente 03:00 | fleethub:recalculate-fleet-health-score | Recalcular e armazenar em cache a pontuação de integridade da frota |
Guias de atualização
FleetHub v1.0.0 é o lançamento inicial no CodeCanyon.
Solução de problemas
"Permissão negada" no armazenamento
chmod -R 775 storage bootstrap/cache
chown -R www-data:www-data storage bootstrap/cache
O leitor de código QR não abre a câmera
As APIs da câmera do navegador exigem HTTPS. Instale SSL ou use localhost para teste.
E-mails não chegam
Verifique storage/logs/laravel.log. Use Configurações → E-mail → Enviar e-mail de teste para verificar o SMTP.
Banco de dados “Acesso negado” (1045) no cPanel
Nome de usuário/senha incorretos ou atribuição de usuário ao banco de dados ausente. Consulte Configuração do Painel → Problemas comuns.
Erros de migração em hospedagem compartilhada
Certifique-se de SESSION_DRIVER=file e CACHE_STORE=file em .env antes da primeira migração. Verifique storage/logs/laravel.log para obter detalhes.
Erro APP_KEY/500 ausente antes da instalação
Laravel requer APP_KEY em .env. Consulte Configuração do cPanel → Etapa 5 para métodos de geração sem Terminal.
Redefinir instalação
Exclua storage/installed.lock e visite /install novamente. Os dados existentes serão apagados se você executar novamente as migrações.
Desempenho – lista de veículos lenta
Execute php artisan optimize. Garanta índices MySQL em vehicles.vehicle_code, vehicles.license_plate, vehicles.status (criados por migrações).
Registro de alterações
v1.0.0 – Versão inicial (2026-06)
- Veículo CRUD com geração automática de código QR e página pública em
/v/{vehicle_code} - 5 funções de usuário (administrador, gerente de frota, chefe de departamento, contador, motorista)
- Gerenciamento de driver com sincronização de expiração de licença para itens de conformidade
- Fluxo de trabalho de requisição de veículos com calendário e alertas de atraso
- Entrega de veículos com mapeador de danos 2D, lista de verificação, assinatura e PDF
- Gerenciamento de registro de combustível com antifraude de hodômetro e sincronização automática de despesas
- Painel de despesas do veículo e TCO com análise de custo/km
- Motor de depreciação – linha reta, saldo decrescente, unidades de produção (km)
- Itens de conformidade genéricos com alertas de expiração em 30/14/7/1 dia
- Programação de manutenção com renovação automática preventiva e rastreamento de custos
- Fleet Health Score com recálculo diário e modal de detalhamento
- 7 relatórios de frota com exportação para Excel e PDF
- Campos personalizados (7 tipos) com escopo para categorias de veículos
- Webhooks com assinatura HMAC (
X-FleetHub-Signature) e repetição automática - Log de auditoria via Spatie Activitylog com visualizador de diferenças
- UI multilíngue: 11 localidades, incluindo RTL árabe e hindi
- UI de configurações para empresa, frota, e-mail, notificações, predefinições de conformidade
- Assistente de instalação baseado na Web com semeador de dados de demonstração
- Modo escuro, interface de usuário voltada para dispositivos móveis, compactação de imagem para uploads
Créditos
Bibliotecas de código aberto usadas
- 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