Files
App-Estoque-LiberiKids/backup-projeto-completo.sh
2025-10-14 14:04:17 -03:00

160 lines
3.7 KiB
Bash
Executable File
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.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/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!"