# ✅ Checklist de Despliegue AAT en cPanel

Usa este checklist para asegurarte de completar todos los pasos correctamente.

## 📦 FASE 1: Preparación Local

- [ ] Limpiar cachés locales (`php artisan optimize:clear`)
- [ ] Compilar assets para producción (`npm run build`)
- [ ] Verificar que no hay errores en el proyecto
- [ ] Exportar base de datos local (si aplica)
- [ ] Preparar lista de archivos a subir

## 🖥️ FASE 2: Configuración del Servidor

- [ ] Acceder a cPanel
- [ ] Verificar PHP 8.2+ instalado
- [ ] Habilitar extensiones PHP requeridas:
  - [ ] mbstring
  - [ ] xml
  - [ ] curl
  - [ ] zip
  - [ ] gd
  - [ ] mysqli/pdo_mysql
  - [ ] fileinfo
  - [ ] openssl
  - [ ] tokenizer
  - [ ] json

## 📤 FASE 3: Subida de Archivos

- [ ] Subir archivos del proyecto al servidor
- [ ] Verificar estructura de carpetas
- [ ] NO subir: `node_modules/`, `.git/`, `.env`, `vendor/`

## 🗄️ FASE 4: Base de Datos

- [ ] Crear base de datos en cPanel
- [ ] Crear usuario de base de datos
- [ ] Asignar privilegios (ALL PRIVILEGES)
- [ ] Anotar credenciales:
  - [ ] Nombre BD: `_________________`
  - [ ] Usuario: `_________________`
  - [ ] Contraseña: `_________________`
  - [ ] Host: `127.0.0.1` o `localhost`

## ⚙️ FASE 5: Configuración

- [ ] Crear archivo `.env` en el servidor
- [ ] Configurar variables de entorno:
  - [ ] `APP_ENV=production`
  - [ ] `APP_DEBUG=false`
  - [ ] `APP_URL=https://tudominio.com`
  - [ ] Credenciales de base de datos
- [ ] Generar `APP_KEY` (`php artisan key:generate`)

## 📦 FASE 6: Instalación

- [ ] Instalar dependencias PHP (`composer install --no-dev`)
- [ ] Verificar que `vendor/` se creó correctamente
- [ ] (Opcional) Instalar dependencias Node.js si es necesario

## 🔐 FASE 7: Permisos

- [ ] Configurar permisos de `storage/` (775)
- [ ] Configurar permisos de `bootstrap/cache/` (775)
- [ ] Verificar propietario de archivos

## 🗃️ FASE 8: Base de Datos

- [ ] Ejecutar migraciones (`php artisan migrate --force`)
- [ ] (Opcional) Ejecutar seeders (`php artisan db:seed --force`)
- [ ] Verificar tablas en phpMyAdmin

## 🚀 FASE 9: Optimización

- [ ] Cachear configuración (`php artisan config:cache`)
- [ ] Cachear rutas (`php artisan route:cache`)
- [ ] Cachear vistas (`php artisan view:cache`)
- [ ] Optimizar autoloader (`php artisan optimize`)
- [ ] Crear enlace simbólico de storage (`php artisan storage:link`)

## 🌐 FASE 10: Rutas y Acceso

- [ ] Configurar DocumentRoot a `public/`
- [ ] Verificar `.htaccess` en `public/`
- [ ] Probar acceso al sitio en navegador
- [ ] Verificar que no hay errores 500

## ✅ FASE 11: Verificación

- [ ] Sitio carga correctamente
- [ ] Login funciona
- [ ] Base de datos conectada
- [ ] Assets (CSS/JS) cargan correctamente
- [ ] Revisar logs (`storage/logs/laravel.log`)
- [ ] No hay errores en consola del navegador

## 🔒 FASE 12: Seguridad

- [ ] Configurar HTTPS/SSL
- [ ] Proteger archivo `.env`
- [ ] Verificar que `APP_DEBUG=false`
- [ ] Revisar permisos de archivos sensibles

---

## 📝 Notas Adicionales

**Credenciales del Servidor:**
- Host: `_________________`
- Usuario FTP: `_________________`
- Puerto SSH: `_________________`

**URLs del Proyecto:**
- URL Principal: `_________________`
- URL Admin: `_________________`
- URL Login: `_________________`

**Fecha de Despliegue:** `_________________`

---

## 🆘 Si Algo Sale Mal

1. Revisar logs: `storage/logs/laravel.log`
2. Verificar permisos de archivos
3. Verificar configuración de `.env`
4. Consultar sección "Solución de Problemas" en la guía completa

