From 1ecab757d96ed8e30a78d8f3f08335df1f0e63fe Mon Sep 17 00:00:00 2001 From: EidanThen Date: Sat, 9 May 2026 17:47:43 +0000 Subject: [PATCH] Subir archivos a "/" --- 01-wsl2-n8n.md | 91 +++++++++++++++++++++++++++ 02-gcloud-vm-n8n.md | 140 ++++++++++++++++++++++++++++++++++++++++++ 03-https-nginx.md | 126 +++++++++++++++++++++++++++++++++++++ 04-crawl4ai-ubuntu.md | 113 ++++++++++++++++++++++++++++++++++ README.md | 67 ++++++++++++++++++++ 5 files changed, 537 insertions(+) create mode 100644 01-wsl2-n8n.md create mode 100644 02-gcloud-vm-n8n.md create mode 100644 03-https-nginx.md create mode 100644 04-crawl4ai-ubuntu.md create mode 100644 README.md diff --git a/01-wsl2-n8n.md b/01-wsl2-n8n.md new file mode 100644 index 0000000..02a85a2 --- /dev/null +++ b/01-wsl2-n8n.md @@ -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) diff --git a/02-gcloud-vm-n8n.md b/02-gcloud-vm-n8n.md new file mode 100644 index 0000000..b9ce528 --- /dev/null +++ b/02-gcloud-vm-n8n.md @@ -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) diff --git a/03-https-nginx.md b/03-https-nginx.md new file mode 100644 index 0000000..cd8ed6d --- /dev/null +++ b/03-https-nginx.md @@ -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) diff --git a/04-crawl4ai-ubuntu.md b/04-crawl4ai-ubuntu.md new file mode 100644 index 0000000..077e1ae --- /dev/null +++ b/04-crawl4ai-ubuntu.md @@ -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) diff --git a/README.md b/README.md new file mode 100644 index 0000000..f395f0b --- /dev/null +++ b/README.md @@ -0,0 +1,67 @@ +# 📌 Website Craw CSS — Documentación del Proyecto + +> Pipeline de scraping automatizado con **Crawl4AI + n8n** para extracción, procesamiento y exportación de productos desde páginas web. + +--- + +## 🗂️ Tabla de Contenidos + +| # | Categoría | Descripción | +|---|-----------|-------------| +| 1 | [🪟 Instalación local (Windows + WSL2)](./docs/01-wsl2-n8n.md) | Configurar Ubuntu y n8n en Windows mediante WSL2 | +| 2 | [☁️ Instalación en Google Cloud VM](./docs/02-gcloud-vm-n8n.md) | Crear una VM en GCP e instalar n8n | +| 3 | [🔐 Habilitar HTTPS en Google Cloud](./docs/03-https-nginx.md) | Configurar Nginx + Certbot para SSL en producción | +| 4 | [🕷️ Instalación de Crawl4AI en Ubuntu](./docs/04-crawl4ai-ubuntu.md) | Instalar y configurar Crawl4AI como motor de scraping | +| 5 | [📋 Documento del Proyecto](./docs/05-proyecto-website-craw-css.md) | Arquitectura, flujo n8n, KPIs y entrega del proyecto | + +--- + +## 🧭 Ruta de configuración recomendada + +Sigue los pasos en orden según tu entorno: + +``` +┌─────────────────────────────────────────┐ +│ ¿Dónde vas a correr n8n? │ +└────────────┬────────────────────────────┘ + │ + ┌───────▼──────┐ ┌──────────────────┐ + │ Windows │ │ Google Cloud │ + │ (Local) │ │ (Producción) │ + └──────┬───────┘ └────────┬─────────┘ + │ │ + [Paso 1: WSL2] [Paso 2: GCloud VM] + │ │ + └──────────┬──────────────┘ + │ + [Paso 3: HTTPS] ← Solo en producción + │ + [Paso 4: Crawl4AI] + │ + [Paso 5: Proyecto] +``` + +--- + +## 🛠️ Stack tecnológico + +- **n8n** — Orquestador del workflow de scraping +- **Crawl4AI** — Motor de extracción web (Python + Playwright) +- **Ubuntu 24.04** — Sistema operativo base (WSL2 o GCP) +- **Nginx + Certbot** — Proxy inverso y SSL para producción +- **Google Sheets** *(opcional)* — Destino final de los datos exportados + +--- + +## 📁 Estructura de archivos + +``` +/ +├── README.md ← Estás aquí +└── docs/ + ├── 01-wsl2-n8n.md ← Instalación local en Windows + ├── 02-gcloud-vm-n8n.md ← Instalación en Google Cloud + ├── 03-https-nginx.md ← HTTPS con Nginx + Certbot + ├── 04-crawl4ai-ubuntu.md ← Instalación de Crawl4AI + └── 05-proyecto-website-craw-css.md ← Documento del proyecto +```