# Instalación y Configuración ⚙️
Esta guía detalla los pasos para instalar, configurar y desplegar `bgustscraper` tanto en un entorno local como de forma completamente aislada mediante Docker.
---
## 🛠️ 1. Requisitos Previos
Antes de proceder, asegúrate de tener instalado en tu sistema operativo:
* **Rust (Edición 2021, v1.75+):** Instálalo mediante el gestor oficial `rustup.rs`:
```bash
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
```
* **Node.js (v18.x o superior):** Requerido para ejecutar el worker asíncrono y los motores de IA local (ONNX).
* **Docker (Opcional):** Para despliegue aislado de benchmark y servidor de producción.
---
## 💻 2. Instalación Local de Desarrollo
1. **Clonar el repositorio:**
```bash
git clone https://github.com/tu-usuario/bgustscraper.git
cd bgustscraper
```
2. **Instalar dependencias del Worker de Node:**
```bash
cd worker
npm install
npx playwright install chromium
cd ..
```
3. **Compilar el proyecto de Rust:**
```bash
cargo check
cargo build --release
```
*El binario final se ubicará en `target/release/bgustscraper` (o en la raíz del espacio de trabajo si usas un entorno de workspace global).*
---
## 🐳 3. Despliegue Aislado con Docker
El proyecto incluye una receta `Dockerfile` de producción multi-etapa que optimiza el tamaño y **pre-descarga todos los modelos de Hugging Face**. Esto asegura un arranque 100% offline dentro del contenedor y un benchmark científico de recursos libre de la latencia de red.
### Construir la imagen de Docker:
```bash
docker build -t bgustscraper .
```
### Ejecutar el contenedor exponeiendo la API:
```bash
docker run -d \
-p 8080:8080 \
--name bgustscraper_instance \
bgustscraper
```
---
## 🌐 4. Variables de Entorno Configurables (`.env`)
Crea un archivo `.env` en la raíz del proyecto para modificar la configuración por defecto del servidor web seguro y los algoritmos criptográficos:
```env
# Clave secreta criptográfica para firmar los Tokens JWT
JWT_SECRET=bgustscraper_super_secret_key_123_change_me!
# Credenciales por defecto para consultar endpoints seguros (/api/auth)
API_USER=admin
API_PASS=bgust2026
# Puerto por defecto del servidor Axum
PORT=8080
# Ruta de almacenamiento de caché del modelo Hugging Face
HF_HOME=/app/models/.cache
```