160 lines
3.7 KiB
Bash
Executable File
160 lines
3.7 KiB
Bash
Executable File
#!/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)"
|
||
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!"
|