#!/bin/bash # Script de deployment para Francia Ocupada # Este script se ejecuta en el HOST, no en el runner set -e # Salir si hay algún error echo "🚀 Iniciando deployment de Francia Ocupada..." echo "================================================" # Directorio del proyecto PROJECT_DIR="/home/marti/Documentos/Gitea/resistencia" cd "$PROJECT_DIR" echo "📂 Directorio de trabajo: $(pwd)" echo "" # PASO 1: Actualizar código desde Git echo "📥 PASO 1: Actualizando código desde Git..." git fetch origin git reset --hard origin/main echo "✅ Código actualizado" echo "" # PASO 2: Detener contenedores anteriores echo "🛑 PASO 2: Deteniendo contenedores anteriores..." docker compose -f docker-compose_prod.yml down || true docker container prune -f || true echo "✅ Contenedores anteriores detenidos" echo "" # PASO 3: Limpiar imágenes antiguas echo "🧹 PASO 3: Limpiando imágenes antiguas..." docker image prune -f || true echo "✅ Limpieza completada" echo "" # PASO 4: Construir imágenes Docker echo "🔨 PASO 4: Construyendo imágenes Docker..." docker compose -f docker-compose_prod.yml build --no-cache # Etiquetar con timestamp para trazabilidad TAG_VERSION=$(date +%Y%m%d_%H%M%S) docker tag resistencia-client:latest resistencia-client:${TAG_VERSION} || true docker tag resistencia-server:latest resistencia-server:${TAG_VERSION} || true echo "✅ Imágenes construidas:" echo " - resistencia-client:latest (${TAG_VERSION})" echo " - resistencia-server:latest (${TAG_VERSION})" echo "" # PASO 5: Desplegar contenedores echo "📦 PASO 5: Desplegando aplicación..." docker compose -f docker-compose_prod.yml up -d echo "✅ Aplicación desplegada exitosamente" echo "" # PASO 6: Verificar deployment echo "✅ PASO 6: Verificando deployment..." sleep 10 echo "📊 Estado de los contenedores:" docker compose -f docker-compose_prod.yml ps echo "" # Verificar que los contenedores están corriendo RUNNING_CONTAINERS=$(docker compose -f docker-compose_prod.yml ps -q | wc -l) if [ "$RUNNING_CONTAINERS" -eq 0 ]; then echo "❌ ERROR: No hay contenedores corriendo" docker compose -f docker-compose_prod.yml logs exit 1 fi echo "✅ Verificación completada - $RUNNING_CONTAINERS contenedores corriendo" echo "" # PASO 7: Mostrar logs recientes echo "📋 PASO 7: Logs recientes..." echo "" echo "--- Logs del Cliente (últimas 20 líneas) ---" docker compose -f docker-compose_prod.yml logs --tail=20 client || true echo "" echo "--- Logs del Servidor (últimas 20 líneas) ---" docker compose -f docker-compose_prod.yml logs --tail=20 server || true echo "" echo "================================================" echo "🎉 Deployment completado exitosamente!" echo "" echo "🌐 Aplicación disponible en:" echo " - Frontend: https://franciaocupada.martivich.es" echo " - API: https://api.franciaocupada.martivich.es" echo "================================================"