# Instalación de AcademyCore en cPanel

## Antes de comenzar

- Selecciona PHP 8.3 o superior en **MultiPHP Manager**.
- Crea una base de datos y un usuario desde **MySQL Databases** y asígnale todos los privilegios.
- Sube el ZIP limpio de AcademyCore. No reutilices un paquete que contenga `.env` o `storage/app/installed.lock`.

## Ubicación correcta del proyecto

Extrae AcademyCore fuera de la carpeta pública cuando tu proveedor lo permita, por ejemplo:

```text
/home/tu_usuario/academycore
```

En **Domains**, configura el `Document Root` del dominio o subdominio como:

```text
/home/tu_usuario/academycore/public
```

Laravel no debe apuntar a la raíz del proyecto. El único directorio público es `public`.

## Permisos

El proceso de PHP necesita escritura en:

```text
storage
bootstrap/cache
```

Usa permisos `775` cuando el hosting lo requiera. La carpeta principal necesita escritura temporal durante el setup para crear `.env`. Evita `777` salvo indicación temporal y específica del proveedor.

## Ejecutar el asistente

Abre:

```text
https://tu-dominio.com/install
```

Si la instalación está pendiente, entrar al dominio también redirige al asistente. AcademyCore creará una llave de aplicación única, comprobará los requisitos, conectará la base de datos y generará el primer superadministrador.

En **Contenido inicial** podrás elegir:

- **Instalación limpia:** estructura, roles, permisos, configuración esencial y únicamente el superadministrador que registres.
- **Instalación con contenido DEMO:** lo anterior más tres cursos, categorías, lecciones, evaluaciones, un instructor y un estudiante de ejemplo.

El asistente importa automáticamente `database/install/academycore-clean.sql` o `database/install/academycore-demo.sql`. No es necesario entrar a phpMyAdmin para importar estos archivos. La base de datos debe estar completamente vacía.

## Si el asistente no aparece

1. Confirma que el dominio apunta a `academycore/public`.
2. Verifica que `vendor/autoload.php` y `public/build/manifest.json` existan.
3. Elimina únicamente estos archivos si provienen de una instalación de prueba:

```text
storage/app/installed.lock
storage/app/installer-state.enc
storage/app/deltanet-license.json
```

4. Si también se subió un `.env` de desarrollo, reemplaza el paquete completo por la distribución limpia.
5. Revisa `storage/logs/laravel.log` y el registro **Errors** de cPanel si aparece un error 500.

No elimines `installed.lock` de una plataforma que ya esté en producción: ese archivo protege el setup una vez terminada la instalación.
