# Instalación Rápida - Sistema Coto Digital

## 📋 Requisitos Previos

1. **Node.js** (v18 o superior)
   ```bash
   node --version
   ```

2. **Bitwarden CLI** configurado con credenciales de Coto Digital
   ```bash
   bw status
   ```

3. **Tailscale** corriendo y configurado
   ```bash
   tailscale status
   ```

4. **PM2** (opcional, recomendado)
   ```bash
   npm install -g pm2
   ```

## 🚀 Instalación en 5 Pasos

### Paso 1: Clonar/Preparar el proyecto
```bash
cd /home/ubuntu/.openclaw/workspace/coto-system
```

### Paso 2: Instalar dependencias
```bash
npm install
```

### Paso 3: Configurar base de datos
```bash
npm run setup-db
```

### Paso 4: Desplegar sistema
```bash
npm run deploy
```

### Paso 5: Verificar instalación
```bash
# Verificar que el servicio está corriendo
pm2 status

# Verificar API
curl http://localhost:3001/api/health

# Acceder al dashboard
echo "Dashboard disponible en: https://miopenclaw-vnic.tail9799d2.ts.net/coto/"
```

## 🔧 Configuración de Bitwarden

### 1. Verificar que Bitwarden está desbloqueado
```bash
bw unlock
# Ingresar master password
```

### 2. Verificar que existen credenciales de Coto Digital
```bash
bw list items --search "Coto Digital"
```

### 3. Si no existen, crear un nuevo item:
```bash
bw create item --name "Coto Digital" \
  --login.username "tu_email@ejemplo.com" \
  --login.password "tu_password" \
  --login.uri "https://www.cotodigital3.com.ar"
```

## 🎯 Primer Scraping Manual

### Opción 1: Scraping completo
```bash
npm run scrape
```

### Opción 2: Scraping con debugging
```bash
node scraper/coto-scraper-enhanced.js
```

## 📊 Acceso al Dashboard

### URL Principal
```
https://miopenclaw-vnic.tail9799d2.ts.net/coto/
```

### URLs Alternativas
- API: `http://localhost:3001/api/`
- Health Check: `http://localhost:3001/api/health`
- Dashboard directo: `http://localhost:3001/coto`

## 🔄 Mantenimiento

### Comandos PM2
```bash
# Ver estado
pm2 status coto-digital-dashboard

# Ver logs
pm2 logs coto-digital-dashboard

# Reiniciar
pm2 restart coto-digital-dashboard

# Detener
pm2 stop coto-digital-dashboard

# Iniciar
pm2 start coto-digital-dashboard
```

### Scraping Manual
```bash
# Scraping completo
npm run scrape

# Scraping con opciones
node scraper/coto-scraper-enhanced.js --headless --fast
```

### Backup de Base de Datos
```bash
# Backup manual
cp database/coto.db database/backups/coto-backup-$(date +%Y%m%d-%H%M%S).db

# Restaurar backup
cp database/backups/coto-backup-YYYYMMDD-HHMMSS.db database/coto.db
```

## 🐛 Solución de Problemas

### Problema: "Bitwarden vault no está desbloqueado"
```bash
# Desbloquear vault
bw unlock

# Verificar estado
bw status
```

### Problema: "Servicio no responde"
```bash
# Verificar PM2
pm2 status

# Reiniciar servicio
pm2 restart coto-digital-dashboard

# Ver logs de error
pm2 logs coto-digital-dashboard --err
```

### Problema: "Dashboard no carga"
```bash
# Verificar que la API está corriendo
curl http://localhost:3001/api/health

# Verificar puerto
netstat -tulpn | grep 3001

# Verificar logs de Nginx (si está configurado)
tail -f /var/log/nginx/error.log
```

### Problema: "Scraping falla"
```bash
# Verificar credenciales
bw get item "Coto Digital"

# Probar con headless false
node scraper/coto-scraper-enhanced.js --headless false

# Ver logs detallados
tail -f logs/scrape-*.log
```

## 📈 Monitoreo

### Logs del Sistema
```bash
# Logs de API
tail -f logs/pm2-out.log

# Logs de scraping
tail -f logs/cron.log

# Logs de errores
tail -f logs/pm2-error.log
```

### Estadísticas de Base de Datos
```bash
# Conectar a la base de datos
sqlite3 database/coto.db

# Consultas útiles
SELECT COUNT(*) as total_orders FROM orders;
SELECT COUNT(*) as total_products FROM products;
SELECT * FROM stats;
```

## 🔐 Seguridad

### Credenciales
- Almacenadas en Bitwarden (nunca en código)
- Sesiones automáticas
- Rotación periódica recomendada

### Acceso
- Solo a través de Tailscale
- Sin exposición pública
- Rate limiting habilitado

### Datos
- Base de datos local
- Backups automáticos
- Sin datos sensibles en logs

## 🚨 Actualizaciones

### Actualizar código
```bash
cd /home/ubuntu/.openclaw/workspace/coto-system
git pull origin main  # si usas git
npm install
npm run deploy
```

### Actualizar dependencias
```bash
npm update
npm run deploy
```

## 📞 Soporte

### Archivos importantes
- `logs/` - Logs del sistema
- `database/backups/` - Backups automáticos
- `screenshots/` - Capturas de pantalla de debugging

### Comandos de diagnóstico
```bash
# Estado completo del sistema
./deploy/deploy.js --check

# Verificar todas las dependencias
node -e "console.log(require('./package.json').dependencies)"

# Espacio en disco
df -h /home/ubuntu/.openclaw/workspace/coto-system
```

---

**🎉 ¡Sistema listo!** El scraping automático se ejecutará diariamente a las 2 AM.