codigo0/scripts/deploy/verificar-servidor.sh
planetazuzu f3f2ab3c55 docs: añadir plan de conversión SCORM y scripts de deploy
- Plan completo de conversión progresiva a SCORM
- Guía rápida de inicio SCORM
- Scripts de despliegue automático mejorados
2026-01-02 10:28:38 +01:00

117 lines
3.8 KiB
Bash
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# Script para verificar y corregir la configuración en el servidor
# Ejecutar en el servidor: bash verificar-servidor.sh
set -e
GIT_DIR="/var/repos/emerges-tes.git"
APP_DIR="/var/www/emerges-tes"
HOOK_FILE="$GIT_DIR/hooks/post-receive"
LOG_FILE="/var/log/emerges-tes-deploy.log"
echo "🔍 Verificando configuración del despliegue..."
echo ""
# 1. Verificar hook
echo "1⃣ Verificando hook post-receive..."
if [ -f "$HOOK_FILE" ]; then
if [ -x "$HOOK_FILE" ]; then
echo " ✅ Hook existe y es ejecutable"
else
echo " ⚠️ Hook existe pero no es ejecutable. Corrigiendo..."
chmod +x "$HOOK_FILE"
echo " ✅ Permisos corregidos"
fi
else
echo " ❌ Hook no existe. Crear primero con los comandos de configuración."
exit 1
fi
# 2. Verificar directorio de trabajo
echo ""
echo "2⃣ Verificando directorio de trabajo..."
if [ -d "$APP_DIR" ]; then
if [ -d "$APP_DIR/.git" ]; then
echo " ✅ Directorio existe y es un repositorio Git"
echo " 📍 Rama actual: $(cd "$APP_DIR" && git branch --show-current 2>/dev/null || echo 'desconocida')"
else
echo " ⚠️ Directorio existe pero no es un repositorio Git"
echo " 🔧 Inicializando repositorio..."
cd "$APP_DIR"
git init
git remote add origin "$GIT_DIR" 2>/dev/null || git remote set-url origin "$GIT_DIR"
git fetch origin
git checkout -b main origin/main 2>/dev/null || git checkout main 2>/dev/null || echo " ⚠️ No se pudo hacer checkout automático"
echo " ✅ Repositorio inicializado"
fi
else
echo " ❌ Directorio no existe. Creando..."
mkdir -p "$APP_DIR"
git clone "$GIT_DIR" "$APP_DIR"
echo " ✅ Directorio creado y clonado"
fi
# 3. Verificar logs
echo ""
echo "3⃣ Verificando archivo de logs..."
if [ -f "$LOG_FILE" ]; then
if [ -w "$LOG_FILE" ]; then
echo " ✅ Archivo de logs existe y es escribible"
else
echo " ⚠️ Archivo de logs existe pero no es escribible. Corrigiendo..."
chmod 666 "$LOG_FILE" 2>/dev/null || sudo chmod 666 "$LOG_FILE"
echo " ✅ Permisos corregidos"
fi
else
echo " ⚠️ Archivo de logs no existe. Creando..."
touch "$LOG_FILE"
chmod 666 "$LOG_FILE" 2>/dev/null || sudo chmod 666 "$LOG_FILE"
echo " ✅ Archivo de logs creado"
fi
# 4. Verificar Node.js y npm
echo ""
echo "4⃣ Verificando Node.js y npm..."
if command -v node >/dev/null 2>&1; then
echo " ✅ Node.js: $(node --version)"
else
echo " ❌ Node.js no está instalado"
echo " 💡 Instalar con: curl -fsSL https://deb.nodesource.com/setup_20.x | bash - && apt-get install -y nodejs"
fi
if command -v npm >/dev/null 2>&1; then
echo " ✅ npm: $(npm --version)"
else
echo " ❌ npm no está instalado"
fi
# 5. Verificar que el directorio de trabajo está actualizado
echo ""
echo "5⃣ Verificando estado del repositorio..."
if [ -d "$APP_DIR/.git" ]; then
cd "$APP_DIR"
echo " 📍 Directorio: $APP_DIR"
echo " 📦 Rama: $(git branch --show-current 2>/dev/null || echo 'desconocida')"
echo " 🔗 Remoto: $(git remote get-url origin 2>/dev/null || echo 'no configurado')"
# Verificar si hay cambios pendientes
if [ -n "$(git status --porcelain 2>/dev/null)" ]; then
echo " ⚠️ Hay cambios no commiteados en el directorio de trabajo"
else
echo " ✅ Directorio de trabajo limpio"
fi
fi
echo ""
echo "✅ Verificación completada"
echo ""
echo "📋 Resumen:"
echo " - Hook: $HOOK_FILE"
echo " - Directorio app: $APP_DIR"
echo " - Logs: $LOG_FILE"
echo ""
echo "🧪 Para probar el despliegue:"
echo " 1. Desde tu máquina local: git push production main"
echo " 2. En el servidor, ver logs: tail -f $LOG_FILE"