#!/bin/bash # 💾 Backup COMPLETO do Projeto Liberi Kids # Cria backup de tudo antes de fazer deploy # Execute: ./backup-projeto-completo.sh echo "💾 BACKUP COMPLETO - Liberi Kids" echo "================================" # Cores para output GREEN='\033[0;32m' YELLOW='\033[1;33m' BLUE='\033[0;34m' RED='\033[0;31m' NC='\033[0m' log() { echo -e "${GREEN}[✅ OK]${NC} $1" } warn() { echo -e "${YELLOW}[⚠️ WARN]${NC} $1" } info() { echo -e "${BLUE}[ℹ️ INFO]${NC} $1" } error() { echo -e "${RED}[❌ ERRO]${NC} $1" } # Configurações BACKUP_DIR="$HOME/liberi-backups" TIMESTAMP=$(date +"%Y%m%d_%H%M%S") BACKUP_NAME="liberi-kids-backup-$TIMESTAMP" BACKUP_PATH="$BACKUP_DIR/$BACKUP_NAME" echo "" info "📋 ESTE BACKUP INCLUIRÁ:" echo " 📁 Código fonte completo" echo " 🔧 Configurações (.env)" echo " 📦 Frontend compilado" echo " 🗄️ Scripts e documentação" echo " 🏦 Configurações PIX" echo " 📚 Todos os arquivos do projeto" echo "" # Criar diretório de backup mkdir -p $BACKUP_DIR echo "" info "💾 CRIANDO BACKUP COMPLETO..." # Criar backup cp -r . $BACKUP_PATH # Remover arquivos desnecessários do backup rm -rf $BACKUP_PATH/node_modules 2>/dev/null || true rm -rf $BACKUP_PATH/client/node_modules 2>/dev/null || true rm -rf $BACKUP_PATH/.git 2>/dev/null || true rm -rf $BACKUP_PATH/logs 2>/dev/null || true rm -rf $BACKUP_PATH/uploads/* 2>/dev/null || true log "✅ Backup criado: $BACKUP_PATH" echo "" info "📊 ESTATÍSTICAS DO BACKUP:" # Contar arquivos TOTAL_FILES=$(find $BACKUP_PATH -type f | wc -l) TOTAL_SIZE=$(du -sh $BACKUP_PATH | cut -f1) echo " 📁 Total de arquivos: $TOTAL_FILES" echo " 💾 Tamanho total: $TOTAL_SIZE" echo " 📅 Data: $(date)" echo "" info "📋 CONTEÚDO DO BACKUP:" echo " ✅ server-supabase.js - Servidor principal" echo " ✅ client/ - Frontend React" echo " ✅ config/ - Configurações (Supabase, PIX, Google)" echo " ✅ package.json - Dependências" echo " ✅ .env - Credenciais (se existir)" echo " ✅ *.sh - Scripts de deploy" echo " ✅ *.md - Documentação" echo " ✅ *.sql - Scripts de banco" echo "" # Criar arquivo de informações do backup cat > $BACKUP_PATH/BACKUP-INFO.txt << EOF BACKUP LIBERI KIDS ================== Data: $(date) Versão: Completa com PIX Servidor: Supabase Frontend: React compilado CONTEÚDO: - Código fonte completo - Configurações PIX Mercado Pago - Frontend compilado - Scripts de deploy - Documentação completa RESTAURAR: 1. Extrair backup 2. npm install 3. Configurar .env 4. ./deploy-completo-servidor.sh SUPORTE: - Banco: Supabase (não incluído no backup) - PIX: Mercado Pago - Deploy: Scripts automatizados EOF log "✅ Arquivo de informações criado" echo "" info "🗜️ COMPACTANDO BACKUP..." # Criar arquivo compactado cd $BACKUP_DIR tar -czf "$BACKUP_NAME.tar.gz" "$BACKUP_NAME" rm -rf "$BACKUP_NAME" COMPRESSED_SIZE=$(du -sh "$BACKUP_NAME.tar.gz" | cut -f1) log "✅ Backup compactado: $BACKUP_DIR/$BACKUP_NAME.tar.gz" echo "" log "🎉 BACKUP COMPLETO FINALIZADO!" echo "" info "📋 RESUMO DO BACKUP:" echo " 📁 Localização: $BACKUP_DIR/$BACKUP_NAME.tar.gz" echo " 💾 Tamanho: $COMPRESSED_SIZE" echo " 📅 Data: $(date)" echo " 🔢 Arquivos: $TOTAL_FILES" echo "" info "🔄 COMO RESTAURAR:" echo " 1. cd $BACKUP_DIR" echo " 2. tar -xzf $BACKUP_NAME.tar.gz" echo " 3. cd $BACKUP_NAME" echo " 4. npm install" echo " 5. ./deploy-completo-servidor.sh" echo "" info "📂 BACKUPS DISPONÍVEIS:" ls -la $BACKUP_DIR/*.tar.gz 2>/dev/null | tail -5 || echo " (Este é o primeiro backup)" echo "" warn "💡 DICA: Mantenha backups regulares" warn "💡 O banco Supabase não está incluído (é na nuvem)" log "✨ BACKUP SEGURO CRIADO!"