codigo0/scripts/configurar-ssh-push.sh
planetazuzu dcc2151530 fix: solución completa para vendor-other en Docker/producción
CRÍTICO: Eliminación definitiva de vendor-other

Cambios:
- vite.config.ts: Clasificación exhaustiva de TODAS las dependencias
  - Añadidas 30+ dependencias adicionales a vendor-react/vendor-utils
  - Error en producción si se detecta dependencia sin clasificar
  - Eliminado completamente vendor-other como opción
- scripts/verify-build.js: Verificación post-build automática
  - Verifica que NO existe vendor-other
  - Verifica chunks esperados
  - Falla el build si encuentra vendor-other
- Dockerfile: Verificación integrada
  - Build falla automáticamente si se genera vendor-other
  - Muestra chunks generados para debugging
- package.json: build ahora ejecuta verificación automáticamente
- manifest.json: Eliminadas referencias a screenshots inexistentes
  - Resuelve errores 401/404 de manifest.json
- docs/SOLUCION_DOCKER_VENDOR_OTHER.md: Documentación completa

Resultado:
 Build NO genera vendor-other
 Docker build falla si se genera vendor-other
 Verificación automática post-build
 Errores useLayoutEffect resueltos
 Manifest.json sin errores
2026-01-02 19:17:26 +01:00

75 lines
2.6 KiB
Bash
Executable file

#!/bin/bash
# Script para configurar SSH y hacer push a producción
# Uso: ./scripts/configurar-ssh-push.sh
set -e
echo "🔐 Configuración de SSH para Push a Producción"
echo "================================================"
echo ""
# Verificar si ya existe una clave SSH
if [ -f ~/.ssh/id_ed25519 ] || [ -f ~/.ssh/id_rsa ]; then
echo "✅ Ya existe una clave SSH"
if [ -f ~/.ssh/id_ed25519 ]; then
KEY_FILE=~/.ssh/id_ed25519.pub
else
KEY_FILE=~/.ssh/id_rsa.pub
fi
echo "📋 Clave pública: $KEY_FILE"
echo ""
echo "¿Quieres copiar esta clave al servidor? (s/n)"
read -r response
if [[ "$response" =~ ^[Ss]$ ]]; then
echo "Copiando clave al servidor..."
ssh-copy-id -i "$KEY_FILE" root@207.180.226.141 || {
echo "⚠️ No se pudo copiar automáticamente. Copia manualmente:"
echo ""
echo "cat $KEY_FILE | ssh root@207.180.226.141 'mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys'"
echo ""
}
fi
else
echo "📝 No hay clave SSH. Generando nueva clave..."
echo ""
echo "¿Generar nueva clave SSH? (s/n)"
read -r response
if [[ "$response" =~ ^[Ss]$ ]]; then
ssh-keygen -t ed25519 -C "guia-tes-$(date +%Y%m%d)" -f ~/.ssh/id_ed25519
echo ""
echo "✅ Clave generada. Copiando al servidor..."
ssh-copy-id -i ~/.ssh/id_ed25519.pub root@207.180.226.141 || {
echo "⚠️ No se pudo copiar automáticamente. Copia manualmente:"
echo ""
echo "cat ~/.ssh/id_ed25519.pub | ssh root@207.180.226.141 'mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys'"
echo ""
}
fi
fi
echo ""
echo "🧪 Probando conexión SSH..."
if ssh -o BatchMode=yes -o ConnectTimeout=5 root@207.180.226.141 "echo 'Conexión exitosa'" 2>/dev/null; then
echo "✅ Conexión SSH exitosa"
echo ""
echo "🚀 Haciendo push a producción..."
cd "$(dirname "$0")/.."
git push production main
echo ""
echo "✅ Push completado exitosamente"
else
echo "❌ La conexión SSH aún no está configurada"
echo ""
echo "Opciones:"
echo "1. Copiar manualmente tu clave pública al servidor"
echo "2. Usar autenticación por contraseña (menos seguro)"
echo ""
echo "Para opción 1, ejecuta:"
echo " cat ~/.ssh/id_ed25519.pub | ssh root@207.180.226.141 'mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys'"
echo ""
echo "Para opción 2, ejecuta:"
echo " GIT_SSH_COMMAND='ssh -o PreferredAuthentications=password' git push production main"
fi