# Instalacion en cPanel - prueba.tecnigoplus.cl

## Requisitos

- PHP 8.2 o PHP 8.3.
- MySQL/MariaDB.
- Extensiones PHP: `ctype`, `dom`, `fileinfo`, `filter`, `hash`, `iconv`, `json`, `libxml`, `openssl`, `pcre`, `pdo_mysql`, `session`, `tokenizer`.
- Apache con `mod_rewrite`.
- Acceso a Terminal de cPanel recomendado.

El ZIP ya incluye:

- Dependencias PHP productivas en `vendor/`.
- Assets React/Tailwind compilados en `public/build/`.
- `composer.lock` y `package-lock.json`.

No es necesario ejecutar npm en cPanel para esta entrega.

## 1. Crear infraestructura

1. Crear el subdominio `prueba.tecnigoplus.cl`.
2. Activar SSL.
3. Seleccionar PHP 8.2 o 8.3.
4. Crear una base de datos MySQL.
5. Crear un usuario MySQL.
6. Asignar todos los privilegios del usuario a la base.

## 2. Subir y extraer

Subir `tecni-go-plus-deploy.zip` al directorio:

```text
/home/CPANEL_USER/
```

Extraerlo para obtener:

```text
/home/CPANEL_USER/tecni-go-plus/
```

Configurar el Document Root de `prueba.tecnigoplus.cl` como:

```text
/home/CPANEL_USER/tecni-go-plus/public
```

No apuntar el subdominio a la raiz de Laravel.

## 3. Crear `.env`

Copiar:

```bash
cd /home/CPANEL_USER/tecni-go-plus
cp .env.example .env
```

Editar `.env`:

```env
APP_NAME="Tecni Go Plus"
APP_ENV=production
APP_DEBUG=false
APP_URL=https://prueba.tecnigoplus.cl
FRONTEND_URL=https://prueba.tecnigoplus.cl

DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=CPANEL_DATABASE
DB_USERNAME=CPANEL_DATABASE_USER
DB_PASSWORD=CLAVE_SEGURA

SESSION_DOMAIN=prueba.tecnigoplus.cl
SESSION_SECURE_COOKIE=true
SANCTUM_STATEFUL_DOMAINS=prueba.tecnigoplus.cl

MAIL_MAILER=smtp
MAIL_HOST=mail.tecnigoplus.cl
MAIL_PORT=465
MAIL_USERNAME=soporte@tecnigoplus.cl
MAIL_PASSWORD=CLAVE_CORREO
MAIL_ENCRYPTION=ssl
MAIL_FROM_ADDRESS=soporte@tecnigoplus.cl
```

## 4. Permisos

```bash
chmod -R 775 storage bootstrap/cache
```

No utilizar permisos `777` salvo requerimiento expreso del hosting.

## 5. Activar Laravel

Ejecutar:

```bash
cd /home/CPANEL_USER/tecni-go-plus

php artisan key:generate
php artisan migrate --seed --force
php artisan storage:link
php artisan optimize:clear
php artisan config:cache
php artisan route:cache
php artisan view:cache
php artisan optimize
```

El ZIP ya contiene `vendor/`; Composer solo es necesario si el hosting requiere reinstalar dependencias:

```bash
composer install --no-dev --optimize-autoloader
```

## 6. Verificacion

Ejecutar:

```bash
php artisan about
php artisan route:list
php artisan migrate:status
```

Abrir:

```text
https://prueba.tecnigoplus.cl/up
https://prueba.tecnigoplus.cl
```

Confirmar:

- `/up` responde correctamente.
- La landing carga con estilos.
- No existen errores 404 para archivos en `public/build`.
- Login y Dashboard funcionan.
- Auditoria registra eventos.
- Portal Cliente funciona.
- Se pueden generar y descargar PDFs.
- `public/storage` funciona.
- `storage/logs/laravel.log` no contiene errores criticos.

## 7. Seguridad posterior

Los seeders crean credenciales demo conocidas. Cambiar inmediatamente:

- `admin@tecnigoplus.cl`
- `admin@stschile.cl`
- usuarios tecnicos demo
- claves de Portal Cliente

Mientras se realizan pruebas, se recomienda proteger el subdominio con autenticacion de directorio de cPanel.

Mantener siempre:

```env
APP_ENV=production
APP_DEBUG=false
```
