Empezando
Instale FleetHub en cPanel, Hostinger o su propio VPS en menos de 10 minutos.
Usuarios y roles
5 roles de flota con permisos de Spatie: administrador, administrador de flota, jefe de departamento, contador, conductor.
Características del producto
Vehículos, conductores, solicitudes, entregas, registros de combustible, TCO, cumplimiento, puntuación del estado de la flota y más.
Personalización
Campos personalizados por categoría de vehículo, marca, idiomas y temas.
Configuración de Hostinger
Implementación paso a paso en el nivel de alojamiento compartido único más económico.
Configuración de cPanel
Implementación paso a paso en alojamiento compartido estándar de cPanel: no se requiere terminal.
Seguridad y QR
HTTPS, webhooks firmados por HMAC, registro de auditoría y escaneo rápido de QR a través de la cámara.
Informes y exportación
7 informes de flota con exportación Excel + PDF y filtros de fecha.
Alertas por correo electrónico
Cumplimiento, mantenimiento, solicitudes vencidas y recordatorios de licencias de conducir.
Preguntas frecuentes
¿Puedo ejecutar FleetHub en el plan Hostinger Single más económico?
Sí, FleetHub es totalmente compatible con Hostinger Single (~$2,99/mes). Single incluye PHP 8.3, MySQL, Cron Jobs nativo y SSL gratuito: todo lo que FleetHub necesita. Sin SSH, sin Composer, no se requiere línea de comando. Consulte la sección Configuración de Hostinger para obtener una guía paso a paso.
¿Necesito habilidades técnicas para instalarlo?
No. El instalador basado en web se encarga de todo: verificación de requisitos, configuración de la base de datos, migraciones y creación de cuentas de administrador. Simplemente cargue los archivos, visite /install en su navegador y siga el asistente.
¿Cómo funcionan los correos electrónicos programados (alertas de cumplimiento/mantenimiento)?
FleetHub usa el programador de Laravel. Solo configura un trabajo cron que se ejecuta cada minuto, y Laravel distribuye internamente cada tarea en el momento correcto (diario a las 08:00, mensual, etc.). Para cPanel, configúrelo en Avanzado → Trabajos cron. Para Hostinger, use hPanel → Avanzado → Trabajos cron. Consulte Configuración de cPanel → Paso 7 o Configuración de Hostinger → Paso 5. Si su host no tiene cron, use la URL de Cron en la aplicación con el servicio gratuito cron-job.org.
¿Qué métodos de depreciación se admiten?
Tres métodos: Línea recta, Saldo decreciente y Unidades de producción (basado en km del odómetro). Los valores del vehículo alimentan el panel TCO y se actualizan automáticamente mensualmente.
¿El escáner QR funciona en teléfonos móviles?
Sí, los conductores y gerentes pueden escanear códigos QR del vehículo con la cámara del navegador a través de html5-qrcode. Las acciones de escaneo rápido (registro de combustible, odómetro, informe de incidentes) requieren inicio de sesión. El único requisito es HTTPS.
¿Puedo agregar mis propios campos sin codificar?
Sí. Admin → Campos personalizados le permite agregar atributos ilimitados (texto, número, fecha, selección, área de texto, archivo, casilla de verificación), asignarlos a categorías de vehículos, marcarlos como obligatorios y reordenarlos mediante arrastrar y soltar.
¿Cuántos idiomas admite FleetHub?
11 idiomas listos para usar: inglés, vietnamita, español, francés, alemán, chino, japonés, portugués (BR), ruso, árabe (con soporte RTL completo) e hindi. Los administradores gestionan las traducciones desde Administración → Traducciones.
¿Puedo instalar FleetHub en el hosting compartido de cPanel?
Sí, FleetHub funciona en cualquier plan estándar cPanel hosting compartido con PHP 8.2+, MySQL y Cron Jobs. No se requiere Composer ni Node.js en el servidor: el paquete se envía prediseñado. Consulte la sección cPanel Setup.
¿Cómo cambio el nombre de FleetHub (página de inicio de sesión, título de página y colores)?
FleetHub puede personalizarse por completo desde el panel de administración — sin editar código ni ejecutar npm run build. El logo de inicio de sesión, el pie de página, la insignia y el título de la pestaña del navegador siguen Configuración → Marca → Nombre de la aplicación. La pestaña Apariencia permite personalizar los colores de la aplicación en modo claro y oscuro.
auth.login_subtitle por idioma → personalice los colores en Configuración → Apariencia.
Referencia rápida:
| Elemento | Ejemplo | Cómo cambiar |
|---|---|---|
| Logo y nombre | Su aplicación de flota | Configuración → Marca → Nombre de la aplicación |
| Subtítulo de inicio de sesión | Introduzca sus credenciales para acceder a FleetHub | Administración → Traducciones → auth.login_subtitle |
| Copyright del pie de página | © 2026 Su empresa | Configuración → Marca → Nombre de la aplicación |
| Título de la pestaña del navegador | NombreApp | Configuración → Marca → Nombre de la aplicación |
| Colores de la aplicación | Paleta personalizada | Configuración → Apariencia |
1. Logo y nombre: Inicie sesión como administrador → Configuración → Marca → actualice Nombre de la aplicación (y suba un logo si lo desea) → Guardar.
2. Subtítulo de inicio de sesión: Edite auth.login_subtitle en Administración → Traducciones para cada idioma, o edite lang/{locale}/auth.php directamente.
3. Colores de la aplicación: Configuración → Apariencia — configure los colores de marca, acento, estado y texto por separado para modo claro y oscuro. Haga clic en Guardar apariencia para aplicar en toda la aplicación.
Descripción general
FleetHub es un sistema de gestión de activos de flota empresarial para vehículos internos de la empresa (50–200 vehículos). Construido con Laravel 11, Vue 3 y Tailwind CSS — cubre vehículos, conductores, requisiciones, entregas con mapa de daños, registros de combustible, gastos, análisis TCO, seguimiento de cumplimiento y puntuación de salud de flota. No está diseñado para taxi ni alquiler de coches.
Escaneo rápido QR
Escanee el código QR de cualquier vehículo para registrar el combustible, actualizar el odómetro o informar incidentes: el dispositivo móvil es lo primero para los conductores.
Panel de control del costo total de propiedad
Costo total de propiedad por vehículo y para toda la flota: compra, combustible, mantenimiento, seguro y más.
Entrega de vehículos
Entregas salientes/entrantes con mapeador de daños 2D, lista de verificación, fotografías, firma e informe en PDF.
Puntuación de salud de la flota
Puntuación diaria con averías: mantenimiento atrasado, cumplimiento vencido, anomalías de combustible.
Seguimiento de cumplimiento
Seguros, matriculación, impuesto de circulación, permisos, licencias de conducir: alertas el 30/14/7/1 días.
Informes de flota
7 informes integrados con gráficos, exportación a Excel y PDF.
Requisitos del servidor
- PHP 8.2 o superior (se recomienda 8.3)
- MySQL 5.7+ o MariaDB 10.3+
- Composer 2.x (solo para desarrollo local; no es necesario en alojamiento compartido)
- Node.js 18+ y npm 9+ (solo para compilaciones de interfaz local)
- Servidor web: Apache o Nginx
Extensiones PHP requeridas
- OpenSSL, PDO, PDO_MySQL, Mbstring, Tokenizer, XML, Ctype, JSON, GD, Fileinfo
Espacio en disco
~ 200 MB mínimo. Deje espacio adicional para fotografías de vehículos, recibos de combustible, imágenes de entrega y documentos de cumplimiento.
Instalación
Opción A: instalador web (recomendado)
- Cargue los archivos del proyecto a su servidor web.
- Apunte la raíz del documento de su dominio a
public/. - Establezca permisos:
storage/ybootstrap/cache/deben poder escribirse (chmod 775). - Copie
.env.examplea.envy configureAPP_KEY(ejecutephp artisan key:generatesi tiene SSH/Terminal, o consulte Configuración de cPanel → Paso 5). - Visita
https://yourdomain.com/installen tu navegador. - Siga el asistente: Requisitos → Base de datos → Migrar → Cuenta de administrador → Listo. Marque Incluir datos de demostración para cargar una flota de muestra con cuentas de demostración (consulte Usuarios y roles).
Opción B: Instalación CLI
# 1. Instalar dependencias
composer install --no-dev --optimize-autoloader
npm install
npm run build
# 2. Configurar el entorno
cp .env.example .env
php artisan key:generate
# 3. Edite .env para configurar las credenciales de base de datos
# DB_HOST, DB_PORT, DB_DATABASE, DB_USERNAME, DB_PASSWORD
# 4. Cree tablas de bases de datos y genere datos iniciales.
php artisan migrate --seed
# 5. Cree un enlace simbólico de almacenamiento para las cargas.
php artisan storage:link
# 6. Configuración de caché para producción
php artisan config:cache
php artisan route:cache
php artisan view:cache
# 7. Marcar como instalado
echo "Installed" > storage/installed.lock
public/. Para Apache, el .htaccess incluido maneja la reescritura de URL. Para Nginx, consulte la Guía de implementación de Laravel.
Paso 2 del asistente: Configuración de la base de datos
Cuando el asistente llegue al Paso 2, ingrese los detalles de la conexión MySQL para la base de datos que creó en su panel de alojamiento.
| Campo | Predeterminado/Ejemplo | Notas |
|---|---|---|
| Host | 127.0.0.1 | Funciona en el 99% de los hosts compartidos. Mantenga este valor predeterminado a menos que su alojamiento proporcione un nombre de host MySQL personalizado. |
| Port | 3306 | Puerto MySQL estándar. Cambie solo si su proveedor utiliza un puerto no estándar. |
| Nombre de la base de datos | uXXXXXX_fleethub | El nombre completo que se muestra en tu panel de hosting, incluido cualquier prefijo. |
| Nombre de usuario | uXXXXXX_fleethub | Usuario de MySQL con permisos en la base de datos anterior. No utilice root en alojamiento compartido. |
| Contraseña | (su contraseña de base de datos) | La contraseña que estableció al crear el usuario MySQL. |
Dónde encontrar estas credenciales por panel de alojamiento
- Hostinger: hPanel → Bases de datos → Administración → haga clic en su base de datos.
- cPanel: cPanel → Bases de datos MySQL. La lista de bases de datos muestra nombres; Los usuarios se enumeran a continuación.
- Plesk: Plesk → Bases de datos → haga clic en el nombre de la base de datos.
- DirectAdmin: DirectAdmin → Administración de MySQL → haga clic en la base de datos.
- Base de datos externa/administrada: AWS RDS, base de datos administrada por DigitalOcean, etc. Utilice las credenciales de su consola en la nube.
Errores comunes y cómo solucionarlos
| Mensaje de error | Causa y solución |
|---|---|
SQLSTATE[HY000] [1045] Access denied | Nombre de usuario o contraseña incorrectos, o el usuario no tiene acceso a esta base de datos. |
SQLSTATE[HY000] [1049] Unknown database | El nombre de la base de datos es incorrecto o aún no ha creado la base de datos. |
SQLSTATE[HY000] [2002] Connection refused | No se puede acceder al servidor MySQL. Pruebe localhost en lugar de 127.0.0.1 o viceversa. |
SQLSTATE[42S02] Base table not found: sessions | Establezca SESSION_DRIVER=file y CACHE_STORE=file en .env antes de la migración. |
could not find driver | Falta la extensión PHP pdo_mysql. Habilítalo en tu panel de hosting. |
127.0.0.1 y 3306; déjelos como están en el hosting compartido.
Localhost (Desarrollo Local)
Guía rápida para ejecutar FleetHub en su computadora para realizar pruebas o desarrollo antes de implementarlo en producción. Elija el entorno que coincida con su sistema operativo.
Opción 1: Laravel Herd (recomendado, macOS y Windows)
Laravel Herd es el entorno local oficial del equipo de Laravel: gratuito, nativo, sin Docker. Incluye PHP 8.2/8.3/8.4, Nginx y (en Herd Pro) MySQL/Redis.
- Descargue e instale Laravel Herd desde herd.laravel.com.
- Coloque la carpeta del proyecto FleetHub dentro de
~/Herd/(macOS) o%USERPROFILE%\Herd\(Windows). Herd crea automáticamente un dominio.test, p.http://fleethub.test. - Abra Herd → Sites y confirme que la versión de PHP es 8.2 o 8.3. Haga clic derecho en el sitio → Secure para habilitar HTTPS (necesario para el escáner QR).
- Crea una base de datos MySQL. Con Herd Pro, use Servicios → MySQL → Abrir en TablePlus. De lo contrario, instale MySQL Community o use SQLite (
DB_CONNECTION=sqlite,touch database/database.sqlite). - Copie
.env.examplea.env, complete las credenciales de la base de datos y luego ejecutephp artisan key:generatedesde la raíz del proyecto. - Abra
http://fleethub.test/installen su navegador y siga el asistente de instalación.
Opción 2: XAMPP (Windows, macOS, Linux)
XAMPP incluye Apache, MySQL/MariaDB y PHP. Gratis y multiplataforma. Asegúrate de elegir una versión con PHP 8.2 o más reciente.
- Descargue XAMPP 8.2+ desde apachefriends.org e instálelo.
- Copie el proyecto FleetHub en
C:\xampp\htdocs\FleetHub\(Windows) o/Applications/XAMPP/htdocs/FleetHub/(macOS). - Abra Panel de control XAMPP e inicie Apache y MySQL. Si los puertos están ocupados, use Config → service.conf para cambiar Apache a 8080.
- Vaya a
http://localhost/phpmyadmin→ Nuevo → cree una base de datos llamadafleethubcon intercalación utf8mb4. - En la carpeta del proyecto: copie
.env.examplea.env, configureDB_DATABASE=fleethub,DB_USERNAME=root, dejeDB_PASSWORDvacío (valor predeterminado de XAMPP). Ejecutephp artisan key:generate. - Visite
http://localhost/FleetHub/public/installpara ejecutar el asistente de instalación.
/public/: crea un host virtual en C:\xampp\apache\conf\extra\httpd-vhosts.conf apuntando DocumentRoot a la carpeta public/ del proyecto, luego agrega 127.0.0.1 fleethub.local a tu archivo de hosts.
Opción 3: Laragon (Windows)
Laragon es una pila portátil de Windows diseñada para Laravel: vhosts automáticos, URL bonitas, MySQL/MariaDB y HeidiSQL incluido.
- Descargue Laragon Full desde laragon.org e instálelo.
- En Laragon: Menú → PHP → Versión - cambie a PHP 8.2 o 8.3.
- Copie el proyecto FleetHub en
C:\laragon\www\FleetHub\. - Haga clic en Iniciar todo. Laragon crea automáticamente el vhost:
http://fleethub.test(apuntando a la carpetapublic/). - Abra HeidiSQL (incluido) → cree una base de datos
fleethub. Credenciales predeterminadas: usuarioroot, contraseña vacía. - Edite
.envcon las credenciales de la base de datos, ejecutephp artisan key:generatey luego visitehttp://fleethub.test/install.
Opción 4: servidor PHP integrado (no se necesita servidor web)
La opción más simple: Laravel viene con artisan serve, que inicia un servidor PHP de desarrollo. No se requiere Apache ni Nginx. Lo mejor para pruebas rápidas.
# Instalar dependencias y configurar
cd /path/to/FleetHub
composer install
cp .env.example .env
php artisan key:generate
# Ejecutar migraciones y generar datos iniciales
php artisan migrate --seed
# Iniciar el servidor de desarrollo
php artisan serve
# Entonces visita: http://127.0.0.1:8000/install
Errores comunes del host local
La cámara del escáner QR no se abre en http://
Las API de la cámara del navegador requieren HTTPS, con una excepción: http://localhost y http://127.0.0.1 se tratan como contextos seguros. Si accede a FleetHub a través de su IP LAN (por ejemplo, http://192.168.1.10), la cámara se negará. Utilice localhost para desarrollo o habilite HTTPS a través de Herd/mkcert.
Permiso denegado en almacenamiento (macOS/Linux)
Si ve errores de escritura cuando la aplicación intenta iniciar sesión o almacenar en caché, corrija los permisos: chmod -R 775 storage bootstrap/cache. En Windows esto no suele ser necesario.
Puerto ya en uso
Si otra aplicación toma el puerto 8000, utilice un puerto diferente:
php artisan serve --port=8001
Probar correos electrónicos localmente
Real SMTP no está disponible en la mayoría de las configuraciones de host local. Dos opciones seguras: (1) configurar MAIL_MAILER=log en .env: los correos electrónicos se descargan en storage/logs/laravel.log en lugar de enviarse; o (2) use Mailtrap / MailHog para capturar el correo saliente en una bandeja de entrada falsa.
MAIL_MAILER=log
# Todos los correos electrónicos se escriben en Storage/logs/laravel.log.
Activos frontend (Vite / Tailwind)
La interfaz Vue/Tailwind de FleetHub está preconstruida en el paquete. Si edita componentes de Vue o la configuración de Tailwind, necesitará Node.js 18+:
npm install
npm run dev # Recarga en caliente durante el desarrollo
npm run build # Compilación de producción (ejecutar antes de implementar)
Implementación en Hostinger Single (Hosting compartido)
Esta es la ruta recomendada para usuarios sin VPS ni experiencia técnica. FleetHub es totalmente compatible con el plan Hostinger Single Web Hosting más económico (~$2,99/mes). Sin SSH, sin Composer, no se necesita línea de comando: Single incluye trabajos cron nativos, PHP 8.3 y SSL gratuito listo para usar.
Paso 1: prepara tu hosting
- Inicie sesión en Hostinger hPanel.
- Vaya a Hosting → Administrar para su dominio.
- Configure la versión de PHP en 8.2 o 8.3 mediante Avanzado → Configuración de PHP.
- Asegúrese de que estas extensiones PHP estén habilitadas (generalmente predeterminadas):
- OpenSSL, PDO, PDO_MySQL, Mbstring, GD, Tokenizer, XML, Ctype, JSON, Fileinfo
Paso 2: crear una base de datos MySQL
- En hPanel, vaya a Bases de datos → Bases de datos MySQL.
- Haga clic en Crear nueva base de datos.
- Tenga en cuenta estos 3 valores:
Nombre de la base de datos— p.ej.u123_FleetHubNombre de usuario— p.ej.u123_adminContraseña— generado automáticamente, mantenlo seguro
Paso 3: cargar archivos
- Vaya a Archivos → Administrador de archivos en hPanel.
- Navega hasta
public_html/(esta es la raíz de tu dominio). - Elimine cualquier
index.htmlodefault.phppredeterminado en esa carpeta. - Haga clic en Cargar archivos y cargue el
source.zipcompleto del paquete.
O cargue el contenido de la carpeta/source/directamente a través de FTP si lo prefiere. - Si cargó un ZIP, haga clic derecho → Extraer. Después de la extracción, todos los archivos deben estar en la raíz de
public_html/. - Verifique que
public_html/contenga:app/,public/,vendor/,.htaccess,index.php(enpublic/),.env, etc.
.htaccess exista en la raíz de public_html/. Contiene las reglas de reescritura de URL. Si el Administrador de archivos oculta archivos ocultos, haga clic en Configuración → Mostrar archivos ocultos.
Paso 4: ejecuta el instalador
- Abra su navegador y vaya a
https://yourdomain.com/install. - Verá el instalador de FleetHub.
- Paso 1: Requisitos: todas las comprobaciones deben pasar (verde). Si alguno falla, comuníquese con el soporte de Hostinger para habilitar la extensión PHP que falta.
- Paso 2: Base de datos: ingrese las credenciales del paso 2 anterior:
- Anfitrión:
localhost - Puerto:
3306 - Base de datos:
u123_FleetHub - Nombre de usuario:
u123_admin - Contraseña: (la que generó Hostinger)
- Anfitrión:
- Paso 3: Migrar: haga clic en "Ejecutar migraciones y semillas". Tarda ~10 segundos. No actualices.
- Paso 4: Administrador: crea tu cuenta de administrador. Utilice una contraseña segura.
- ¡Listo!: verás la URL de Cron (¡guarda esto!) y un botón para iniciar sesión.
Paso 5: Configura alertas automáticas por correo electrónico a través de Hostinger Cron
FleetHub utiliza el programador de Laravel para tareas en segundo plano: alertas de vencimiento de cumplimiento, recordatorios de mantenimiento, avisos de solicitudes vencidas, alertas de licencias de conducir, actualizaciones del valor de los vehículos y recálculo del puntaje del estado de la flota. Configure el trabajo cron one en hPanel y Laravel decide qué tarea ejecutar y cuándo.
- En hPanel, vaya a Avanzado → Trabajos cron.
- Haga clic en Crear trabajo cron.
- Seleccione el tipo: Personalizado (no "PHP"; debemos pasar un argumento).
- Para el comando, ingrese (reemplace
uXXXXXXcon el nombre de usuario de su cuenta de Hostinger):
Consejo: abra el Administrador de archivos, ubique el archivo/usr/bin/php /home/uXXXXXX/public_html/artisan schedule:runartisan(raíz de su proyecto), haga clic derecho → Propiedades para copiar la ruta completa. - Establezca el horario en Cada minuto: los cinco campos (Minuto, Hora, Día, Mes, Día de la semana) configurados en
*. - Haga clic en Guardar.
Eso es todo: FleetHub ahora envía recordatorios de solicitudes vencidas, alertas de mantenimiento, alertas de cumplimiento y vencimiento de licencias, actualiza los valores de depreciación de los vehículos y recalcula automáticamente la puntuación del estado de la flota.
public_html/public/? No hay problema: su código Laravel aún se encuentra en la raíz public_html/, por lo que la ruta cron permanece en /home/uXXXX/public_html/artisan (no agregue /public/).
- Inicie sesión como administrador → Configuración → pestaña Sistema → copie su URL de Cron.
- Regístrate gratis en cron-job.org.
- Cree un cronjob, pegue la URL, configure Cada 15 minutos, guarde.
Paso 6: configurar el correo electrónico (SMTP)
Hostinger proporciona cuentas de correo electrónico con cada plan. Para usarlos para notificaciones de FleetHub:
- En hPanel, vaya a Correos electrónicos → Cuentas de correo electrónico y cree una (por ejemplo,
noreply@yourdomain.com). - Edite el archivo
.envenpublic_html/a través del Administrador de archivos: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" - Guarde el archivo.
- Inicie sesión en FleetHub → Configuración → pestaña Correo electrónico → Enviar correo electrónico de prueba. Si lo recibes, ya está.
Problemas comunes en Hostinger Single
"Error interno del servidor 500" después de la carga
- Verifique que
.htaccessexista en la raízpublic_html/y contenga las reglas de reescritura. - Verifique que la versión de PHP esté configurada en 8.2 u 8.3 en hPanel.
- Verifique
storage/logs/laravel.loga través del Administrador de archivos para ver el error real.
"Permiso denegado" en las cargas
Hostinger normalmente establece los permisos correctos, pero si no:
- Haga clic derecho en
storage/en Administrador de archivos → Permisos → configúrelo en755de forma recursiva. - Lo mismo para
bootstrap/cache/.
La cámara del escáner de código QR no se abre
Las API de la cámara del navegador requieren HTTPS. Hostinger proporciona SSL gratuito a través de Let's Encrypt; habilítelo en hPanel en SSL → Administrar.
Los correos electrónicos programados no se envían
- En hPanel → Trabajos cron → marque la columna Última ejecución en su entrada cron. Si está vacío, el cron no se activa; verifique que la ruta artesanal sea correcta.
- Pruebe el comando manualmente: abra Terminal en hPanel (si está disponible) y ejecute el comando cron. Si falla, el mensaje de error señalará el problema (versión PHP incorrecta, ruta incorrecta, etc.).
- Verifique que SMTP esté configurado correctamente (Configuración → Correo electrónico → Enviar prueba).
- Marque
storage/logs/laravel.logpara ver si hay errores en el programador.
Rendimiento lento
Hostinger Single tiene CPU/RAM compartida. Si su equipo tiene más de 20 usuarios, considere:
- Actualización a Premium (~$3,99/mes): servidores más rápidos, más recursos, múltiples bases de datos.
- O Business (~$5,99/mes): recursos dedicados, copias de seguridad diarias, entorno de prueba.
Implementación en cPanel (alojamiento compartido)
Esta guía cubre el alojamiento compartido estándar cPanel (Namecheap, Bluehost, GoDaddy y la mayoría de los hosts económicos). FleetHub se envía con vendor/ y recursos de interfaz prediseñados: no se requiere Composer, npm ni terminal web. Si su cPanel carece de Terminal, use Acceso SSH o las soluciones alternativas del Administrador de archivos a continuación.
/home/CPANELUSER/; consulte la barra lateral en cPanel en Información general.
Paso 1: configurar la versión y las extensiones de PHP
- Inicie sesión en cPanel.
- Abra MultiPHP Manager (o Seleccione la versión de PHP) y configure su dominio en PHP 8.2 o 8.3.
- Abra Editor INI MultiPHP o Extensiones PHP y confirme que estén habilitadas:
- OpenSSL, PDO, PDO_MySQL, Mbstring, GD, Tokenizer, XML, Ctype, JSON, Fileinfo
- Si falta una extensión, habilítela en la lista de extensiones o comuníquese con el soporte de su proveedor de alojamiento.
Paso 2: habilite SSL (HTTPS)
- Vaya a Estado SSL/TLS (o Cifremos SSL / AutoSSL).
- Ejecute AutoSSL o instale un certificado gratuito para su dominio.
- HTTPS es requerido para que el escáner QR del navegador acceda a la cámara.
https://yourdomain.com para confirmar que aparece el ícono del candado.
Paso 3: crear una base de datos MySQL y un usuario
- Abra Administrar mis bases de datos (en Bases de datos).
- En Crear nueva base de datos, ingrese un nombre (por ejemplo,
fleethub) y haga clic en Crear. cPanel agrega el prefijo de su cuenta automáticamente; el nombre completo se verá asícpaneluser_fleethub. - En Usuarios de MySQL, cree un usuario con una contraseña segura. Copie el nombre de usuario completo con el prefijo.
- En Agregar usuario a la base de datos, seleccione el usuario y la base de datos, haga clic en Agregar y luego otorgue TODOS LOS PRIVILEGIOS. Es fácil pasar por alto este paso; sin él, se obtienen errores
Access denied (1045). - Tenga en cuenta estos tres valores exactamente como se muestran en cPanel:
Nombre de la base de datos— p.ej.u123_FleetHubNombre de usuario— p.ej.u123_adminContraseña— generado automáticamente, mantenlo seguro
Paso 4: cargar archivos
- Abra Administrador de archivos y vaya a
public_html/(la raíz del documento de su dominio). - Habilite Configuración → Mostrar archivos ocultos para que pueda ver
.htaccessy.env. - Elimine cualquier
index.htmlpredeterminado enpublic_html/si está presente. - Cargue el paquete
source.zipy Extráigalo, o cargue el contenido de la carpeta/source/a través de FTP. - Después de la extracción,
public_html/debe contenerapp/,public/,vendor/, raíz.htaccessyartisanen el mismo nivel.
.htaccess redirige todas las solicitudes a la carpeta public/; no necesita cambiar la raíz del documento manualmente en la mayoría de los hosts.
Paso 5: prepare .env antes de ejecutar el instalador
Complete este paso antes de visitar /install. Laravel requiere un APP_KEY válido y una configuración de base de datos correcta en .env.
- En el Administrador de archivos, copie
.env.examplea.env(la misma carpeta queartisan). - Edite
.envy configúrelo al 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 - Establezca
DB_CONNECTION=mysql: el valor predeterminado.env.exampleusa SQLite; El alojamiento compartido requiere MySQL. - Establezca
SESSION_DRIVER=fileyCACHE_STORE=fileantes de la primera migración (evita errores de "tabla de sesiones no encontrada"). - Escriba
DB_PASSWORDentre comillas dobles si contiene caracteres especiales (#,$,!, etc.).
Generar APP_KEY (no se requiere terminal)
Muchos planes de cPanel no incluyen una terminal web. Utilice uno de estos métodos:
- Acceso SSH (cPanel → Seguridad → Acceso SSH): conéctese con PuTTY o PowerShell, luego ejecute
cd ~/public_html && php artisan key:generate. - Ayudante del Administrador de archivos: cree
public/genkey.phptemporalmente, visítelo en su navegador, copie el resultado enAPP_KEY=y luego elimine el archivo inmediatamente.<?php echo 'base64:' . base64_encode(random_bytes(32)); - En tu PC: si PHP está instalado localmente, ejecuta
php -r "echo 'base64:'.base64_encode(random_bytes(32));"y pega el resultado en.env.
genkey.php tan pronto como copie la clave. Nunca deje scripts auxiliares en un servidor de producción.
- Establezca los permisos
storage/ybootstrap/cache/en 755 (recursivo) si el instalador informa errores de escritura.
Paso 6: ejecuta el instalador web
- Abra
https://yourdomain.com/installen su navegador. - Paso 1: Requisitos: todas las comprobaciones deben aprobarse (verde). Corrija las extensiones PHP que falten en el Paso 1 anterior.
- Paso 2: Base de datos: ingrese los nombres con prefijo exactos del Paso 3:
- Anfitrión:
127.0.0.1orlocalhost - Puerto:
3306 - Base de datos:
cpaneluser_fleethub - Nombre de usuario:
cpaneluser_admin - Contraseña: (your MySQL password)
- Anfitrión:
- Paso 3: Migrar: haga clic en "Ejecutar migraciones y semillas". Tarda ~10 segundos. No actualice la página.
- Desmarque Incluir datos de demostración para una instalación de producción limpia.
- Paso 4: Administrador: crea tu cuenta de administrador.
- ¡Listo!: guarda la URL de Cron que se muestra en la pantalla final.
Paso 7: configurar trabajos cron para alertas por correo electrónico
FleetHub necesita un trabajo cron ejecutado cada minuto para que Laravel pueda enviar alertas de cumplimiento, recordatorios de mantenimiento, avisos de solicitudes vencidas y otros correos electrónicos programados.
- En cPanel, vaya a Avanzado → Trabajos cron.
- En Agregar nuevo trabajo cron, establezca la programación en Cada minuto (
* * * * *). - Ingrese el comando (reemplace
CPANELUSERcon su nombre de usuario de cPanel en Información general):
Consejo: la ruta PHP puede ser/usr/local/bin/php /home/CPANELUSER/public_html/artisan schedule:run/usr/local/bin/phpo/usr/bin/php; si no está seguro, pregúntele a su anfitrión. La ruta artesanal es donde subiste el proyecto (normalmente/home/CPANELUSER/public_html/artisan). - Haga clic en Agregar nuevo trabajo cron para guardar.
public_html/public/? Cron todavía apunta a /home/CPANELUSER/public_html/artisan; no agregue /public/.
- Inicie sesión como administrador → Configuración → Sistema → copie la URL de Cron.
- Regístrese en cron-job.org (gratis).
- Cree un trabajo accediendo a esa URL cada 15 minutos.
Paso 8: configurar el correo electrónico (SMTP)
Cree una cuenta de correo electrónico de cPanel para notificaciones salientes:
- Vaya a Cuentas de correo electrónico → cree, por ejemplo.
noreply@yourdomain.com. - Edite
.enven el Administrador de archivos: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" - Guarde y luego en FleetHub: Configuración → Correo electrónico → Enviar correo electrónico de prueba.
Problemas comunes en cPanel
"Acceso denegado al usuario" (SQLSTATE 1045)
- Copie el nombre de la base de datos y el nombre de usuario exactamente desde cPanel, incluido el prefijo de la cuenta.
- Confirme que completó Agregar usuario a la base de datos con TODOS LOS PRIVILEGIOS.
- Restablezca la contraseña de MySQL en cPanel y actualice
.env; use comillas alrededor deDB_PASSWORDsi contiene caracteres especiales.
La migración falla después de pasar el paso de la base de datos
- El asistente prueba las credenciales del formulario, pero Migrar dice
.env. Asegúrate de que ambos coincidan. - Elimine
bootstrap/cache/config.phpsi existe y luego vuelva a intentarlo. - Asegúrese de que
DB_CONNECTION=mysqlesté configurado en.env(no en sqlite).
"Valor predeterminado no válido" durante la migración (1067)
El modo estricto de MySQL en alojamiento compartido puede rechazar ciertos valores predeterminados de columnas. Marque storage/logs/laravel.log para ver el error de migración exacto y asegúrese de que PHP 8.2+ tenga todas las extensiones requeridas habilitadas.
"Error interno del servidor 500" después de la carga
- Verifique que exista la raíz
.htaccessy que PHP sea 8.2+. - Marque
storage/logs/laravel.logpara ver el error real. - Confirme que
APP_KEYestá configurado en.env: la clave vacía provoca 500 errores.
Sin terminal en cPanel
Esto es normal en muchos planes compartidos. Utilice Acceso SSH (si está habilitado), el método temporal genkey.php en el Paso 5, o genere la clave en su PC local.
La cámara del escáner QR no se abre
Habilite SSL a través de SSL/TLS Status → AutoSSL y acceda al sitio a través de https://.
Configuración
Archivo .env
| Clave | Descripción | Ejemplo |
|---|---|---|
APP_NAME | El nombre de la aplicación se muestra en la barra de título. | FleetHub |
APP_URL | URL pública de tu instalación | https://fleet.example.com |
APP_DEBUG | Establecer en false en producción | false |
DB_* | Detalles de conexión a la base de datos | mysql, 127.0.0.1, 3306, ... |
MAIL_MAILER | Controlador de correo | smtp, log, mailgun |
MAIL_HOST | Nombre de host del servidor SMTP | smtp.gmail.com |
MAIL_PORT | Puerto SMTP | 587 |
MAIL_USERNAME | Nombre de usuario SMTP | your@email.com |
MAIL_PASSWORD | Contraseña SMTP o token de aplicación | ********** |
MAIL_FROM_ADDRESS | Dirección de origen predeterminada | noreply@example.com |
Configuración en la aplicación
La mayoría de las opciones no confidenciales se pueden configurar desde Admin → Configuración:
- General: nombre de la empresa/correo electrónico/teléfono, marca
- Flota: prefijo de código de vehículo, plantilla de lista de verificación de entrega, valores predeterminados de mantenimiento, modo de página de vehículo público
- Email: envía un correo electrónico de prueba para verificar SMTP
- Notificaciones: alternar alertas de cumplimiento, mantenimiento, solicitudes y licencias
- Localización: zona horaria, formato de fecha, moneda: se aplica en toda la aplicación
- Cumplimiento: gestiona los ajustes preestablecidos del tipo de cumplimiento (seguro, registro, impuesto de circulación, etc.)
- Branding: nombre y logotipo de la aplicación: actualiza el inicio de sesión, el pie de página y el título de la página del navegador
- Apariencia: personalice la marca, el estado y los colores del texto para el modo claro y oscuro; consulte la guía de cambio de marca en las preguntas frecuentes
Soporte multilingüe
FleetHub viene con 11 idiomas listos para usar, incluidos RTL árabe e hindi. Los usuarios cambian de idioma a través del menú desplegable de banderas en el encabezado superior derecho.
Idiomas enviados
| Código | Idioma | Dirección |
|---|---|---|
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 |
Cómo cambiar de idioma
- Haga clic en el icono de la bandera en el encabezado superior derecho para abrir el menú desplegable.
- Elija su idioma de la lista.
- La página se recarga; todas las etiquetas, fechas y formatos de moneda de la interfaz de usuario cambian.
- Tu elección se guarda tanto en tu cuenta de usuario como en una cookie (1 año).
/locale/{code}, que solo funciona cuando se está ejecutando un servidor PHP. Accede siempre a través de tu dominio real (producción) o http://localhost:8000 (dev con php artisan serve). Los archivos de documentación como este, por otro lado, son totalmente independientes y se pueden abrir directamente.
Agregar un idioma personalizado (admin)
Vaya a Administración → Traducciones (usuarios administradores con permiso administrar traducciones):
- Haga clic en "Agregar configuración regional": proporcione un código (por ejemplo,
mkpara macedonio), nombre para mostrar, nombre nativo, nombre de archivo SVG de la bandera, dirección (LTR/RTL) y una configuración regional base desde la cual copiar las traducciones. - La nueva configuración regional aparece en el selector de idiomas y en Configuración → Lista de idiomas predeterminados de localización.
- Las traducciones almacenadas en la base de datos anulan automáticamente las traducciones de archivos en
lang/{code}/.
Editor de traducción
El editor enumera todas las claves de traducción agrupadas por archivo (por ejemplo, recursos, navegación, configuración). Las claves muestran la línea base del archivo y cualquier anulación de la base de datos.
- Filtre por configuración regional, grupo de traducción o texto de búsqueda.
- Haga clic en un valor para editarlo en línea; Los cambios se guardan en la base de datos inmediatamente.
- Restablezca una clave para volver a la línea base del archivo.
- Las configuraciones regionales integradas (en, vi, es,…) se pueden editar; Las configuraciones regionales personalizadas están completamente basadas en DB.
- Solo los usuarios con el permiso administrar traducciones pueden acceder a esta página.
Importación/exportación CSV
- Exportar: descarga todas las claves de una configuración regional como CSV (
group,key,value). - Importar: sube un CSV con las mismas columnas; Las anulaciones de bases de datos existentes se actualizan y se insertan nuevas claves.
Configuración regional predeterminada por usuario
Cada usuario tiene una columna locale. Las notificaciones por correo electrónico se envían automáticamente en el idioma preferido del destinatario gracias al contrato HasLocalePreference de Laravel.
El idioma predeterminado del sitio se establece en Configuración → Localización → Idioma predeterminado. Los usuarios individuales anulan esto a través del selector de idioma del encabezado.
Lista de funciones (15 grupos de módulos)
Gestión de vehículos
- Códigos de vehículos generados automáticamente (prefijo VH)
- Matrícula, VIN, marca, modelo, tipo de combustible
- Generación de códigos QR e impresión por lotes
- Estado, condición, seguimiento del odómetro
- Importación/exportación masiva de Excel
- Clonar vehículo para compras de flotas idénticas
- Página de detalles de 7 pestañas con cronograma del ciclo de vida
Solicitudes y entregas
- Solicitar → aprobar → devolver flujo de trabajo
- Vista de calendario y detección de conflictos
- Mapeador de daños 2D + firma digital
- Exportación del informe de entrega en PDF
Mantenimiento
- Programación preventiva y correctiva
- Vista de calendario por prioridad
- Programar automáticamente el siguiente preventivo
- Seguimiento de costos → sincronización automática de gastos
- Recordatorios por correo electrónico antes de la fecha de vencimiento
Cumplimiento y combustible
- Elementos genéricos de cumplimiento (seguros, registros, permisos)
- Seguimiento del vencimiento de la licencia de conducir
- Registros de combustible con carga y compresión de recibos
- Validación de cuentakilómetros antifraude
TCO y depreciación
- 3 métodos de depreciación incl. unidades de producción (km)
- Panel de control TCO con métricas de costo/km
- Sincronización automática de combustible y mantenimiento con los gastos
- Gráficos de curvas de depreciación
Informes
- 7 tipos de informes de flota
- Exportación Excel + PDF
- Paneles de control de ApexCharts
- Filtros de rango de fechas
Operaciones de flota
- Puntuación de salud de la flota con recálculo diario
- Gestión de conductores con sincronización de licencias
- Gastos del vehículo (seguros, peajes, aparcamiento, etc.)
- Escaneo rápido QR para conductores (combustible, cuentakilómetros, incidencias)
Localización
- 11 idiomas de interfaz de usuario integrados + configuraciones regionales personalizadas
- Editor de traducción con búsqueda y edición en línea
- Importación/exportación CSV para actualizaciones de traducción masivas
- Configuración de zona horaria y moneda aplicada en toda la aplicación
Marca y apariencia
- Título de la página del navegador desde Configuración → Marca → Nombre de la aplicación
- Personalice los colores de la aplicación en Configuración → Apariencia (modo claro y oscuro)
Usuarios y roles
FleetHub se entrega con 5 roles preconfigurados para operaciones internas de la flota:
| Rol | Capacidades |
|---|---|
| Administrador | Acceso completo al sistema: usuarios, departamentos, configuraciones, registro de auditoría, webhooks, traducciones |
| Gestor de flota | Gestionar vehículos, conductores, requisiciones, entregas, mantenimiento, registros de combustible; aprobar solicitudes; acceso a informes completos |
| Contador | Panel de control TCO, gastos, depreciación, informes de cumplimiento: enfoque financiero de gran lectura |
| Jefe de departamento | Aprobar solicitudes para su propio departamento, ver vehículos e informes del departamento. |
| Conductor | Ver el vehículo asignado, enviar registros de combustible, acciones de escaneo rápido, ver solicitudes propias |
Cuentas demo (contraseña: password): admin@fleethub.test, manager@fleethub.test, dept@fleethub.test, accountant@fleethub.test, driver@fleethub.test. Habilite los datos de demostración durante la instalación o la inicialización. Los permisos son roles de Spatie: los administradores pueden ajustar cada permiso.
Gestión de vehículos
Creando vehículos
- Navegue hasta Vehículos → Vehículo nuevo.
- Complete la matrícula, marca, modelo, año, tipo de combustible, categoría y departamento.
- Agregue la fecha de compra y el costo (obligatorio para la depreciación y el TCO).
- Cargue imágenes (se admiten varios archivos, máximo 5 MB cada uno, comprimidos automáticamente en dispositivos móviles).
- Guardar: el código del vehículo y el código QR se generan automáticamente.
Formato de código de vehículo
Predeterminado: {PREFIX}-{YEAR}-{NNNN}, p.e. VH-2026-0001. Configurable a través de Configuración → Flota → Prefijo de código de vehículo.
Importación masiva
- Haga clic en Importar en la página Vehículos.
- Descarga la plantilla de Excel.
- Complete sus datos: columnas obligatorias:
license_plate,make,model,category_name. - Sube el archivo.
Códigos QR y escaneo rápido
Cada vehículo recibe automáticamente un código QR al crearlo. El escaneo abre la página del vehículo público o acciones rápidas en la aplicación para conductores autenticados.
Impresión de etiquetas
- Etiqueta única: haga clic en el icono de la impresora en cualquier fila de vehículos.
- Impresión por lotes: seleccione varios vehículos → Imprimir etiquetas QR. Formato A4, 2 etiquetas por fila.
Escaneo en la aplicación
Haga clic en Escanear QR en la página Vehículos. Permitir permiso a la cámara. Funciona en cualquier navegador moderno con HTTPS o localhost.
Página de vehículos públicos
Cada vehículo tiene una URL pública en /v/{vehicle_code}, útil para una identificación rápida sin iniciar sesión.
- Configure en Configuración → Flota → Página de vehículos públicos: Público, Se requiere inicio de sesión o Deshabilitado.
- El modo invitado muestra información básica de solo lectura (placa, marca/modelo). Las acciones rápidas del conductor requieren iniciar sesión.
- Después de cambiar
APP_URL, haga clic en Regenerar todos los códigos QR en Configuración.
Flujos de trabajo
Requisiciones de vehículos
Los empleados envían solicitudes de vehículos que necesitan. Flujo: requested → approved → returned (o rejected). El gerente de flota o el jefe de departamento lo aprueba. La vista de calendario muestra reservas para toda la flota. Las devoluciones vencidas activan alertas por correo electrónico.
Entrega de vehículos
- Cuando se apruebe una solicitud, cree un entrega saliente antes de que el conductor tome el vehículo.
- Registre el odómetro, complete la lista de verificación, marque daños en el mapeador 2D, adjunte fotografías y capture firma digital.
- Guarde y descargue el informe de entrega en PDF para sus registros.
- Cuando se devuelva el vehículo, cree una Entrega entrante: compare la condición, actualice el odómetro y borre la asignación del conductor.
- Completar la entrega de entrada marca la requisición como devuelta y establece el vehículo como disponible.
Depreciación y coste total de propiedad
FleetHub calcula la depreciación del vehículo utilizando uno de tres métodos. La depreciación alimenta el panel de TCO junto con los registros y gastos de combustible.
| Método | Fórmula | Caso de uso |
|---|---|---|
| Línea recta | (Cost - Salvage) / Useful Life | Más común; igual depreciación anual |
| Saldo decreciente | 2 / Useful Life × Book Value | Acelerado; fines fiscales |
| Unidades de producción | (km este período / km total esperado) × (Costo − Salvamento) | Vehículos con kilómetros totales predecibles (basados en el odómetro) |
Los valores predeterminados heredan de la categoría del vehículo. current_value se actualiza automáticamente mensualmente a través de fleethub:update-vehicle-values. TCO = costo de compra + suma de gastos del vehículo en el período seleccionado.
Campos personalizados
Administrador → Campos personalizados le permite agregar atributos personalizados ilimitados a los vehículos:
- Tipos: texto, número, fecha, selección (desplegable), área de texto, archivo, casilla de verificación
- Alcance: se aplica a todas las categorías o a una categoría de vehículo específica
- Reordenar: arrastra y suelta el controlador de agarre
- Los campos obligatorios se validan al guardar el vehículo.
Informes
Siete informes de flota integrados, accesibles desde el menú Informes:
- Resumen de TCO: costo total de propiedad por vehículo y para toda la flota
- Programa de depreciación — pérdida de valor por vehículo con exportación
- Costo de mantenimiento: gasto por vehículo, tipo y mes
- Consumo y costo de combustible — tendencias de km/l con anomalías destacadas
- Uso de solicitud: porcentaje de reserva por vehículo a lo largo del tiempo
- Caducidad del cumplimiento: los documentos del vehículo y las licencias de conducir vencerán pronto
- Asignación de vehículos por departamento: vehículos y utilización por departamento
Todos los informes admiten la exportación Excel y PDF mediante botones en el encabezado de la página.
Ganchos web
FleetHub puede notificar a servicios externos sobre eventos clave de la flota.
Eventos disponibles
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
}
}
Verificación de firma
Si se configura un secreto, las solicitudes incluyen el encabezado X-FleetHub-Signature que contiene HMAC-SHA256 del cuerpo de la carga útil. Verifique por su parte:
$expected = hash_hmac('sha256', $rawBody, $secret);
if (hash_equals($expected, $request->header('X-FleetHub-Signature'))) {
// válido
}
Política de reintento
Las entregas fallidas se reintentan 3 veces con un retraso de 200 ms. Después de 10 fallas consecutivas, el webhook se desactiva automáticamente.
Tareas programadas
FleetHub utiliza el programador de Laravel para trabajos en segundo plano. Solo necesita una entrada cron: Laravel envía cada comando fleethub: en el momento adecuado.
Alojamiento compartido (cPanel / Hostinger Cron Jobs UI)
Consulte Configuración de cPanel → Paso 7 o Configuración de Hostinger → Paso 5. En resumen: Avanzado → Trabajos cron, comando:
/usr/bin/php /home/uXXXXXX/public_html/artisan schedule:run
Horario: cada minuto (* en los cinco campos).
Comando cron de cPanel
Reemplace CPANELUSER con su nombre de usuario de cPanel:
/usr/local/bin/php /home/CPANELUSER/public_html/artisan schedule:run
VPS/servidor dedicado (crontab)
Ejecute crontab -e como su usuario web y agregue:
* * * * * cd /path/to/FleetHub && php artisan schedule:run >> /dev/null 2>&1
Alternativa: ping de URL externo
Si su host no tiene cron, use la URL de Cron en la aplicación (Configuración → pestaña Sistema) con cron-job.org (gratis, cada 15 minutos).
Trabajos que se ejecutan automáticamente
| Tiempo | Dominio | Objetivo |
|---|---|---|
| Todos los días 08:00 | fleethub:send-requisition-overdue-alerts | Solicitud aprobada pero no devuelta después de la fecha de finalización solicitada |
| Diariamente 08:30 | fleethub:send-maintenance-reminders | Próximos recordatorios de mantenimiento |
| Todos los días 09:00 | fleethub:send-compliance-expiry-alerts | Artículos de cumplimiento que vencen en 30/14/7/1 días |
| Diariamente 09:30 | fleethub:send-driver-license-alerts | Alertas de vencimiento de licencia de conducir |
| 1 de mes 02:00 | fleethub:update-vehicle-values | Actualizar valor_actual del vehículo desde la depreciación |
| Diariamente 03:00 | fleethub:recalculate-fleet-health-score | Recalcular y almacenar en caché la puntuación de estado de la flota |
Guías de actualización
FleetHub v1.0.0 es el lanzamiento inicial en CodeCanyon.
Solución de problemas
"Permiso denegado" en el almacenamiento
chmod -R 775 storage bootstrap/cache
chown -R www-data:www-data storage bootstrap/cache
El escáner de códigos QR no abre la cámara
Las API de la cámara del navegador requieren HTTPS. Instale SSL o use localhost para realizar pruebas.
Los correos electrónicos no llegan
Marque storage/logs/laravel.log. Utilice Configuración → Correo electrónico → Enviar correo electrónico de prueba para verificar SMTP.
Base de datos "Acceso denegado" (1045) en cPanel
Nombre de usuario/contraseña incorrectos o falta la asignación de usuario a base de datos. Consulte Configuración de cPanel → Problemas comunes.
Errores de migración en hosting compartido
Asegúrese de SESSION_DRIVER=file y CACHE_STORE=file en .env antes de la primera migración. Marque storage/logs/laravel.log para obtener más detalles.
Falta APP_KEY/error 500 antes de la instalación
Laravel requiere APP_KEY en .env. Consulte Configuración de cPanel → Paso 5 para conocer los métodos de generación sin Terminal.
Restablecer instalación
Elimina storage/installed.lock y visita /install nuevamente. Los datos existentes se borrarán si vuelve a ejecutar las migraciones.
Rendimiento: lista de vehículos lentos
Ejecute php artisan optimize. Asegúrese de que MySQL indexe en vehicles.vehicle_code, vehicles.license_plate, vehicles.status (creados por migraciones).
Registro de cambios
v1.0.0 — Lanzamiento inicial (2026-06)
- CRUD de vehículo con autogeneración de código QR y página pública en
/v/{vehicle_code} - 5 roles de usuario (administrador, administrador de flota, jefe de departamento, contable, conductor)
- Gestión de controladores con sincronización de vencimiento de licencia con elementos de cumplimiento
- Flujo de trabajo de solicitud de vehículos con calendario y alertas vencidas
- Entrega del vehículo con mapeador de daños 2D, lista de verificación, firma y PDF
- Gestión del registro de combustible con odómetro antifraude y sincronización de gastos automáticos
- Panel de gastos de vehículos y TCO con análisis de costo/km
- Motor de depreciación: línea recta, saldo decreciente, unidades de producción (km)
- Artículos de cumplimiento genéricos con alertas de vencimiento de 30/14/7/1 día
- Programación de mantenimiento con renovación automática preventiva y seguimiento de costos.
- Puntuación de salud de la flota con recálculo diario y modo de desglose
- 7 informes de flota con exportación a Excel y PDF
- Campos personalizados (7 tipos) enfocados a categorías de vehículos
- Webhooks con firma HMAC (
X-FleetHub-Signature) y reintento automático - Registro de auditoría a través de Spatie Activitylog con visor de diferencias
- Interfaz de usuario en varios idiomas: 11 idiomas, incluidos RTL árabe e hindi
- Configuración de interfaz de usuario para empresa, flota, correo electrónico, notificaciones y ajustes preestablecidos de cumplimiento
- Asistente de instalación basado en web con sembrador de datos de demostración
- Modo oscuro, interfaz de usuario móvil primero, compresión de imágenes para cargas
Créditos
Bibliotecas de código abierto utilizadas
- 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