Subir archivos a "docs"

This commit is contained in:
2026-05-09 17:49:37 +00:00
parent df16af7b28
commit 8dbc34904b
5 changed files with 595 additions and 0 deletions
+91
View File
@@ -0,0 +1,91 @@
# 🪟 Instalación de Ubuntu + n8n en Windows (WSL2)
> ← [Volver al índice](../README.md) | Siguiente: [☁️ Google Cloud VM →](./02-gcloud-vm-n8n.md)
---
## Requisitos previos
- Windows 10 versión 2004+ o Windows 11
- Acceso a Microsoft Store
- PowerShell con permisos de administrador
---
## Paso 1 — Instalar Ubuntu 24.04 LTS
Descarga desde Microsoft Store:
👉 [Ubuntu 24.04 LTS](https://apps.microsoft.com/store/detail/ubuntu-2404-lts/9NZ3KLHXDJP5)
---
## Paso 2 — Habilitar WSL2
Abre **PowerShell como administrador** y ejecuta:
```powershell
wsl --install
```
Esto habilita WSL2 y descarga Ubuntu automáticamente.
---
## Paso 3 — Reiniciar el equipo
Windows completará la instalación durante el reinicio.
---
## Paso 4 — Configurar Ubuntu
- Abre **Ubuntu 24.04** desde el menú de inicio.
- Crea tu **usuario** y **contraseña** cuando se te solicite.
---
## Paso 5 — Instalar dependencias y n8n
Ejecuta los siguientes comandos en orden dentro de Ubuntu:
```bash
# Instalar NVM (última versión estable)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
# Recargar bash para que funcione nvm
source ~/.bashrc
# Instalar Node.js LTS (última recomendada por n8n)
nvm install --lts
# Verificar versiones
node -v
npm -v
# Instalar n8n última versión
npm install -g n8n@latest
# Ejecutar n8n
n8n
```
---
## Paso 6 — Acceder a n8n
Abre en tu navegador:
👉 [http://localhost:5678](http://localhost:5678)
---
## Notas
- n8n se ejecuta en primer plano. Cierra la terminal y se detendrá.
- Para entornos de producción o con dominio propio, consulta los pasos de [Google Cloud VM](./02-gcloud-vm-n8n.md) y [HTTPS](./03-https-nginx.md).
- Esta instalación es ideal para **desarrollo local y pruebas**.
---
> ← [Volver al índice](../README.md) | Siguiente: [☁️ Google Cloud VM →](./02-gcloud-vm-n8n.md)
+140
View File
@@ -0,0 +1,140 @@
# ☁️ Instalación de n8n en Google Cloud VM
> ← [Anterior: 🪟 WSL2](./01-wsl2-n8n.md) | [Volver al índice](../README.md) | Siguiente: [🔐 HTTPS →](./03-https-nginx.md)
---
## Requisitos previos
- Cuenta en [Google Cloud Console](https://console.cloud.google.com/)
- Proyecto activo con facturación habilitada
- `gcloud` CLI instalado *(opcional, también se puede hacer desde la web)*
---
## Paso 1 — Crear la VM en Google Cloud
1. Ingresa a [Google Cloud Console](https://console.cloud.google.com/).
2. Ve a **Compute Engine > VM Instances**.
3. Haz clic en **Create Instance** y configura:
| Campo | Valor recomendado |
|-------|------------------|
| **Nombre** | `n8n-vm` |
| **Región/Zona** | La más cercana a tu ubicación |
| **Machine type** | `e2-medium` (2 vCPU, 4 GB RAM) |
| **Boot disk** | Ubuntu 24.04 LTS |
| **Firewall** | ✅ Allow HTTP traffic / ✅ Allow HTTPS traffic |
4. Haz clic en **Create**.
---
## Paso 2 — Conectarse a la VM
Desde la consola o terminal:
```bash
gcloud compute ssh n8n-vm --zone us-central1-a
```
También puedes usar el botón **SSH** directamente desde la consola web de GCP.
---
## Paso 3 — Actualizar paquetes
```bash
sudo apt update && sudo apt upgrade -y
```
---
## Paso 4 — Instalar dependencias y n8n
```bash
# Instalar NVM
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
# Recargar bash
source ~/.bashrc
# Instalar Node.js LTS
nvm install --lts
# Verificar versiones
node -v
npm -v
# Instalar n8n
npm install -g n8n@latest
# Ejecutar n8n
n8n
```
n8n quedará escuchando en el puerto **5678** por defecto.
---
## Paso 5 — Abrir puertos en el firewall de Google Cloud
### Opción A: Desde la consola web
1. Ve a **VPC Network > Firewall**.
2. Clic en **Create Firewall Rule** y configura:
| Campo | Valor |
|-------|-------|
| **Name** | `allow-n8n` |
| **Targets** | All instances in the network |
| **Source IP ranges** | `0.0.0.0/0` *(o tu IP para mayor seguridad)* |
| **Protocols/Ports** | TCP: `80, 443, 5678` |
### Opción B: Con gcloud CLI
```bash
gcloud compute firewall-rules create allow-n8n \
--allow tcp:80,tcp:443,tcp:5678 \
--source-ranges=0.0.0.0/0 \
--target-tags=n8n-server
```
Luego edita tu VM y en **Network tags** agrega `n8n-server`.
---
## Paso 6 — Acceder a n8n
Abre en tu navegador:
👉 `http://EXTERNAL_IP:5678`
*(La IP externa está visible en la consola de GCP)*
---
## Paso 7 (Opcional) — Ejecutar n8n en segundo plano con PM2
Sin PM2, n8n se detiene al cerrar la sesión SSH.
```bash
npm install -g pm2
pm2 start n8n
pm2 save
pm2 startup
```
PM2 se asegura de que n8n se reinicie automáticamente tras reinicios de la VM.
---
## ⚠️ Nota de seguridad
> No expongas el puerto `5678` directamente en producción. Lo ideal es configurar un **proxy inverso con Nginx + SSL**.
> Consulta el siguiente paso: [🔐 Habilitar HTTPS](./03-https-nginx.md)
---
> ← [Anterior: 🪟 WSL2](./01-wsl2-n8n.md) | [Volver al índice](../README.md) | Siguiente: [🔐 HTTPS →](./03-https-nginx.md)
+126
View File
@@ -0,0 +1,126 @@
# 🔐 Habilitar HTTPS en Google Cloud (Nginx + Certbot)
> ← [Anterior: ☁️ Google Cloud VM](./02-gcloud-vm-n8n.md) | [Volver al índice](../README.md) | Siguiente: [🕷️ Crawl4AI →](./04-crawl4ai-ubuntu.md)
---
## Requisitos previos
- VM en Google Cloud con Ubuntu 24.04 *(ver [paso anterior](./02-gcloud-vm-n8n.md))*
- n8n ya instalado y corriendo con PM2
- Un **dominio propio** con un registro **A** apuntando a la IP externa de tu VM:
```
n8n.midominio.com → EXTERNAL_IP_VM
```
---
## Paso 1 — Instalar n8n con PM2 (si no lo hiciste aún)
```bash
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
source ~/.bashrc
nvm install --lts
npm install -g n8n@latest
npm install -g pm2
pm2 start n8n
pm2 save
pm2 startup
```
---
## Paso 2 — Instalar Nginx
```bash
sudo apt install -y nginx
```
### Crear configuración para n8n
```bash
sudo nano /etc/nginx/sites-available/n8n
```
Pega el siguiente contenido (reemplaza `n8n.midominio.com` por tu dominio real):
```nginx
server {
listen 80;
server_name n8n.midominio.com;
location / {
proxy_pass http://localhost:5678;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
```
### Activar el sitio
```bash
sudo ln -s /etc/nginx/sites-available/n8n /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
```
n8n ya será accesible en `http://n8n.midominio.com`.
---
## Paso 3 — Instalar Certbot para HTTPS
```bash
sudo apt install -y certbot python3-certbot-nginx
```
Ejecuta el proceso de certificación:
```bash
sudo certbot --nginx -d n8n.midominio.com
```
Durante el proceso:
- Acepta los términos de servicio.
- Selecciona la opción de **redirigir todo el tráfico a HTTPS**.
Certbot configurará Nginx automáticamente para usar TLS.
---
## Paso 4 — Verificar acceso
Abre en tu navegador:
👉 `https://n8n.midominio.com`
n8n estará corriendo con **HTTPS válido y seguro**
---
## Paso 5 — Renovación automática de certificados
Certbot instala un cron job que renueva los certificados antes de que expiren. Puedes verificarlo con:
```bash
sudo certbot renew --dry-run
```
---
## ✅ Resultado final
Con esta configuración tienes:
-**n8n corriendo en segundo plano** con PM2
-**Acceso seguro** vía Nginx + HTTPS (Let's Encrypt)
-**Firewall en GCP** abierto solo en puertos `80` y `443` (ya no necesitas exponer el `5678`)
---
> ← [Anterior: ☁️ Google Cloud VM](./02-gcloud-vm-n8n.md) | [Volver al índice](../README.md) | Siguiente: [🕷️ Crawl4AI →](./04-crawl4ai-ubuntu.md)
+113
View File
@@ -0,0 +1,113 @@
# 🕷️ Instalación de Crawl4AI en Ubuntu
> ← [Anterior: 🔐 HTTPS](./03-https-nginx.md) | [Volver al índice](../README.md) | Siguiente: [📋 Proyecto →](./05-proyecto-website-craw-css.md)
---
## Requisitos previos
- Ubuntu 22.04+ (local vía WSL2 o en Google Cloud VM)
- Python 3 y pip instalados
```bash
sudo apt update && sudo apt install -y python3 python3-pip
```
---
## Instalación básica
### 1 — Instalar el núcleo de Crawl4AI
```bash
pip install crawl4ai
```
Esto instala la versión base sin características adicionales como modelos ML o Transformers.
### 2 — Ejecutar la configuración inicial
```bash
crawl4ai-setup
```
Este comando instala y configura las dependencias del navegador: Playwright, librerías del sistema, etc.
### 3 — Diagnosticar el entorno *(opcional pero recomendado)*
```bash
crawl4ai-doctor
```
Verifica compatibilidad de Python, instalación de Playwright y variables del sistema.
### 4 — Verificar la instalación con un ejemplo
```python
import asyncio
from crawl4ai import AsyncWebCrawler, BrowserConfig, CrawlerRunConfig
async def main():
async with AsyncWebCrawler() as crawler:
result = await crawler.arun(url="https://www.example.com")
print(result.markdown[:300])
if __name__ == "__main__":
asyncio.run(main())
```
Ejecuta el script y verás los primeros 300 caracteres de `example.com` en formato Markdown.
---
## Instalación avanzada *(opcional)*
Elige según las capacidades que necesites:
| Variante | Comando |
|----------|---------|
| Con PyTorch | `pip install crawl4ai[torch] && crawl4ai-setup` |
| Con Transformers | `pip install crawl4ai[transformer] && crawl4ai-setup` |
| Todas las características | `pip install crawl4ai[all] && crawl4ai-setup` |
### Pre-descargar modelos *(solo si los necesitas)*
```bash
crawl4ai-download-models
```
> ⚠️ Los modelos son pesados. Descárgalos solo si tu flujo los requiere.
---
## Opción Docker *(experimental)*
La documentación oficial indica que la vía Docker es **experimental** y puede cambiar. No se recomienda para producción aún.
```bash
docker pull unclecode/crawl4ai:latest
docker run -p 11235:11235 unclecode/crawl4ai:latest
```
Consulta la [documentación oficial de Crawl4AI](https://docs.crawl4ai.com/core/installation/) para actualizaciones.
---
## Resumen de comandos
```bash
# Instalación mínima
pip install crawl4ai
crawl4ai-setup
# Verificar entorno
crawl4ai-doctor
# Instalación completa
pip install crawl4ai[all]
crawl4ai-setup
```
---
> ← [Anterior: 🔐 HTTPS](./03-https-nginx.md) | [Volver al índice](../README.md) | Siguiente: [📋 Proyecto →](./05-proyecto-website-craw-css.md)
+125
View File
@@ -0,0 +1,125 @@
# 📋 Documento del Proyecto — Website Craw CSS
> ← [Anterior: 🕷️ Crawl4AI](./04-crawl4ai-ubuntu.md) | [Volver al índice](../README.md)
---
## 1. Iniciación
| Campo | Detalle |
|-------|---------|
| **Objetivo** | Automatizar la extracción de productos desde páginas web mediante Crawl4AI, procesar los datos con n8n y exportarlos en formato usable (JSON/archivo) |
| **Stakeholders** | Equipo de datos/marketing *(consumirá los resultados)*, equipo de IT *(mantendrá el flujo en n8n)* |
| **Justificación** | Reducir esfuerzo manual en scraping, garantizar consistencia de datos y preparar pipeline para análisis en Google Sheets u otras herramientas |
---
## 2. Planificación
### Requerimientos técnicos
- Servidor con n8n instalado (Ubuntu/Docker)
- Conexión a Crawl4AI
- Credenciales: `httpBasicAuth` y `httpHeaderAuth`
- Acceso a Google Sheets (OAuth2 configurado)
### Alcance
- Número de URLs a escanear: `Array.from({ length: 2 })` → 2 páginas por ahora, escalable
- **Campos a extraer**: `link`, `título`, `rating` (conteo de estrellas), `descripción`, `precio`, `stock`
### Riesgos
| Riesgo | Descripción |
|--------|-------------|
| 🔴 Bloqueo de IP | Crawling excesivo puede resultar en bloqueo por el sitio objetivo |
| 🟡 Cambio en HTML | Si la estructura de la web cambia, los selectores CSS deben actualizarse |
| 🟡 Fallos de credenciales | Acceso perdido a Crawl4AI o Google Sheets interrumpe el flujo |
---
## 3. Diseño y Arquitectura
### Flujo de nodos en n8n
```
Manual Trigger
Markdown Crawl Request ──► POST a Crawl4AI con URLs + esquema JSON-CSS
Wait (15s) ──────────────► Pausa mientras Crawl4AI procesa
Get LLM Crawl ───────────► Recupera resultados por task_id
LLM if In Process ───────► ¿Sigue en estado "pending/processing"?
│ │
[Sí] [No]
│ │
└─────────┤
LLM Result ──────► Convierte rating a número (star_count)
Split Out ──────► Divide resultados por producto
Convert to File ───► Exporta a archivo final (JSON/CSV)
[Opcional] Google Sheets ── (deshabilitado por defecto)
```
**Tipo de arquitectura**: Workflow asincrónico con polling + procesamiento + exportación.
---
## 4. Ejecución / Desarrollo
### Implementación inicial
1. Configurar credenciales: `crawl4aiserver`, `panel`, Google Sheets.
2. Probar con dataset pequeño (2 páginas) para validar selectores CSS.
### Edición futura
- Ampliar `Array.from({ length: N })` para procesar más páginas.
- Ajustar `baseSelector` y `fields` si cambia la estructura web.
- Habilitar el módulo de Google Sheets para registro en línea.
---
## 5. Monitoreo y Control
### Logs
Revisar ejecuciones en: **n8n → Execution History**
### KPIs
| Indicador | Descripción |
|-----------|-------------|
| % productos extraídos | Porcentaje de productos extraídos correctamente por batch |
| Tiempo de procesamiento | Tiempo promedio por batch de páginas |
### Control de cambios
- Antes de editar `schema.fields`, probar en ambiente de desarrollo.
- Documentar versiones del flujo (`versionId` ya está incluido en el JSON de n8n).
---
## 6. Cierre / Entrega
| Entregable | Formato |
|------------|---------|
| Archivo de productos estructurados | JSON o CSV |
| Exportación automática | Google Drive / Google Sheets |
| Documentación de uso | Este repositorio |
---
> ← [Anterior: 🕷️ Crawl4AI](./04-crawl4ai-ubuntu.md) | [Volver al índice](../README.md)