# Despliegue inicial en Raxa

## 1. Requisitos

- PHP 8.3+ (preferible 8.4)
- MySQL/MariaDB con PDO MySQL
- Composer 2
- HTTPS activo
- permisos de escritura para `storage/` y `bootstrap/cache/`

## 2. Crear Laravel limpio

En Terminal, fuera de `public_html` si la estructura de la cuenta lo permite:

```bash
composer create-project laravel/laravel plataforma-profesionales
cd plataforma-profesionales
```

A continuación copiar el contenido de `laravel-overlay/` sobre el proyecto.

## 3. Configurar `.env`

Copiar `.env.platform.example` como `.env` y completar únicamente en el servidor:

- `APP_URL`
- `DB_DATABASE`
- `DB_USERNAME`
- `DB_PASSWORD`

Después:

```bash
php artisan key:generate
php artisan migrate
php artisan db:seed --class=PlanSeeder
php artisan storage:link
```

## 4. Document root

La raíz web del subdominio debe apuntar a la carpeta `public/` de Laravel, nunca a la raíz completa del proyecto.

Ejemplo conceptual:

`/home/USUARIO/apps/plataforma-profesionales/public`

Si cPanel no permite apuntar directamente a esa ruta, usar una estructura compatible con el hosting sin exponer `.env`, `vendor`, `storage` ni el código de aplicación.

## 5. Permisos

Laravel necesita escritura en:

- `storage/`
- `bootstrap/cache/`

No usar 777 salvo instrucción expresa del proveedor. Normalmente 755/775 según el entorno.

## 6. Producción

Cuando el MVP pase de desarrollo a producción:

```bash
php artisan optimize
```

En `.env`:

```dotenv
APP_ENV=production
APP_DEBUG=false
```

## 7. Cron

Más adelante se añadirá un cron de Laravel Scheduler. En cPanel suele configurarse cada minuto:

```bash
* * * * * cd /RUTA/AL/PROYECTO && php artisan schedule:run >> /dev/null 2>&1
```

No activarlo hasta que tengamos tareas programadas reales.
