# Despliegue web COMANO 0003

## Verificacion rapida

Antes de subir o inmediatamente despues de configurar el hosting, ejecutar por consola:

```bash
php tools/check_deployment.php
```

El verificador revisa version de PHP, extensiones, archivo `.env`, carpetas escribibles y conexion a la base de datos.
El resultado debe quedar sin errores `FAIL`. Las advertencias `WARN` indican funciones que podrian quedar limitadas.

## Carpeta publica

La carpeta recomendada como raiz publica del dominio o subdominio es:

```text
public/
```

Si el hosting no permite apuntar directamente a `public/`, se puede subir la carpeta completa. El archivo `.htaccess` de la raiz redirige la aplicacion hacia `public/` y bloquea el acceso directo a `app/`, `config/`, `database/`, `storage/`, `tools/`, `vendor/` y `tmp/`.

## Configuracion de base de datos

Crear un archivo `.env` en la raiz del proyecto, copiando `.env.example`:

```text
APP_ENV=production
COMANO_DB_HOST=localhost
COMANO_DB_PORT=3306
COMANO_DB_NAME=akrcsist_bd0003_2026
COMANO_DB_USER=usuario_mysql
COMANO_DB_PASS=clave_mysql
COMANO_DB_CHARSET=utf8mb4
```

No se debe modificar codigo PHP para cambiar credenciales entre XAMPP, intranet o cPanel.
El archivo `.env` no debe compartirse ni subirse a repositorios. En produccion, `APP_ENV=production` oculta errores PHP al navegador y los envia a `storage/logs/php_errors.log`.

Antes de exportar la base definitiva, revisar desde el sistema el modulo `Configuracion > Backup y mantenimiento`.
Si hay migraciones pendientes, aplicarlas o marcar linea base segun corresponda. Luego generar un backup limpio desde el mismo modulo.

## Seguridad web

- Publicar preferentemente solo la carpeta `public/`.
- Activar HTTPS en el dominio o subdominio.
- Mantener `.env` fuera de la raiz publica y con claves distintas a las de XAMPP.
- Usar un usuario MySQL limitado a la base del sistema, no `root`.
- Desactivar `display_errors` desde cPanel si el hosting lo permite.
- Conservar los archivos `.htaccess`; bloquean carpetas internas y archivos ocultos.
- No subir backups antiguos, archivos temporales ni importaciones de prueba salvo que sean necesarios para restaurar datos.

## Extensiones PHP requeridas

- PHP 8.0 o superior
- PDO MySQL
- DOM
- mbstring
- fileinfo
- session
- json
- iconv

## Extensiones PHP recomendadas

- ZipArchive: importacion y generacion de plantillas XLSX SIAGIE.
- GD: procesamiento de firmas, imagenes y QR en reportes.
- cURL: sincronizacion de fechas especiales desde fuentes externas.

Si una extension recomendada no esta habilitada, el sistema puede iniciar, pero algunas funciones especificas quedaran limitadas.

## Dependencias frontend

Las librerias de interfaz estan incluidas localmente en:

```text
public/assets/vendor/
```

El sistema no requiere CDN para Bootstrap, AdminLTE, DataTables, Chart.js, SweetAlert2, PDF.js ni QR.

## Python

Python no es obligatorio para el arranque del sistema. Si el servidor permite ejecutar Python y se desean habilitar parsers antiguos, configurar:

```text
COMANO_PYTHON=/ruta/al/python
```

Si `COMANO_PYTHON` no existe, el sistema no buscara rutas locales ni comandos del servidor.
