CREDITOS LT - BACKEND PARA CPANEL

Contiene el código local actual del Backend, dependencias PHP de producción
y public/build compilado. Laravel está en la raíz del ZIP, sin carpeta envolvente.
Excluye Mobile, .env, node_modules, bases, fotos, respaldos, sesiones y logs.
No necesitas Composer ni Node en el hosting.

1. Selecciona PHP 8.2.34 o posterior y habilita bcmath, ctype, curl, dom,
   fileinfo, gd, iconv, mbstring, openssl, pdo_mysql, simplexml, tokenizer,
   xml, xmlreader, xmlwriter, zip y zlib.
2. Extrae en la carpeta de la aplicación. El Document Root del dominio
   debe apuntar a esa carpeta/public. Solo public debe servirse por HTTP.
3. Instalación nueva: copia .env.cpanel.example como .env y configura dominio,
   credenciales de base, ADMIN_PASSWORD y RESPALDOS_DIRECTORIO fuera de public.
   Para trasladar una instalación existente, conserva su APP_KEY original,
   importa su base y copia storage/app/private desde un respaldo consistente.
4. En la terminal de cPanel, desde la carpeta de la aplicación:

   php artisan optimize:clear

   SOLO para una instalación nueva sin datos existentes:
   php artisan key:generate
   php artisan migrate --force
   php artisan administrador:sincronizar

   Para datos existentes, respalda la base y aplica migraciones pendientes:
   php artisan migrate --force
   No regeneres APP_KEY ni ejecutes migrate:fresh sobre datos existentes.

   Finalmente:
   php artisan config:cache
   php artisan view:cache

5. storage y bootstrap/cache necesitan escritura para el usuario PHP.
   Activa mostrar archivos ocultos: public/.htaccess está incluido.
   Las fotos privadas de cédulas no requieren storage:link.
6. Comprueba /up, /iniciar-sesion, logos, CSS/JS y conexión con la base.
   Para respaldos diarios, configura cada minuto el cron de schedule:run
   usando el PHP y la ruta de esta instalación. Requiere mariadb-dump o
   mysqldump y un directorio de respaldo escribible fuera de public.

En una actualización, respalda primero y conserva .env y storage del servidor.
Este ZIP no contiene los datos ni cambia automáticamente el hosting.
