403 lines
9.6 KiB
Markdown
403 lines
9.6 KiB
Markdown
# 🚀 Sistema de Auto-Sync RDO-C
|
|
|
|
Sistema completo de automação para sincronização automática com o repositório GitHub [TS_RDO](https://github.com/Reifonas/TS_RDO.git).
|
|
|
|
## 📋 Funcionalidades
|
|
|
|
- ✅ **Sincronização Automática**: Detecta mudanças e faz commit/push automático
|
|
- ✅ **GitHub Actions**: Deploy automático no repositório remoto
|
|
- ✅ **Git Hooks**: Automação local com validações
|
|
- ✅ **Monitoramento de Arquivos**: Watch em tempo real das mudanças
|
|
|
|
- ✅ **Logs Detalhados**: Sistema completo de logging e notificações
|
|
- ✅ **Interface Unificada**: Script principal para gerenciar tudo
|
|
|
|
## 🛠️ Pré-requisitos
|
|
|
|
### Software Necessário
|
|
- **Git** (versão 2.0+)
|
|
- **Node.js** (versão 16+)
|
|
- **NPM** ou **PNPM**
|
|
- **PowerShell** 5.1+ (Windows)
|
|
|
|
### Verificar Dependências
|
|
```powershell
|
|
# Verificar Git
|
|
git --version
|
|
|
|
# Verificar Node.js
|
|
node --version
|
|
|
|
# Verificar NPM
|
|
npm --version
|
|
```
|
|
|
|
## 📦 Instalação
|
|
|
|
### 1. Configuração Inicial
|
|
```powershell
|
|
# Navegar para o diretório do projeto
|
|
cd C:\Users\Marcos\Documents\GitHub\RDO-C
|
|
|
|
# Executar configuração inicial
|
|
.\scripts\start-auto-sync.ps1 -Action setup
|
|
```
|
|
|
|
### 2. Configurar Git (se necessário)
|
|
```powershell
|
|
# Configurar usuário Git
|
|
git config user.name "Seu Nome"
|
|
git config user.email "seu.email@exemplo.com"
|
|
|
|
# Verificar repositório remoto
|
|
git remote -v
|
|
```
|
|
|
|
### 3. Configurar Git Hooks
|
|
```powershell
|
|
# Executar script de configuração dos hooks
|
|
.\scripts\setup-git-hooks.ps1
|
|
```
|
|
|
|
### 4. Testar Sistema
|
|
```powershell
|
|
# Executar testes do sistema
|
|
.\scripts\start-auto-sync.ps1 -Action test
|
|
```
|
|
|
|
## ⚙️ Configuração
|
|
|
|
### Arquivo de Configuração Principal
|
|
Edite o arquivo `auto-sync-config.json`:
|
|
|
|
```json
|
|
{
|
|
"repository": {
|
|
"remote_url": "https://github.com/Reifonas/TS_RDO.git",
|
|
"branch": "main",
|
|
"auto_push": true
|
|
},
|
|
"monitoring": {
|
|
"sync_interval": 300,
|
|
"file_watch_enabled": true,
|
|
"excluded_patterns": ["node_modules", ".git", "logs", "temp"]
|
|
},
|
|
|
|
"logging": {
|
|
"level": "INFO",
|
|
"console_enabled": true,
|
|
"file_enabled": true
|
|
}
|
|
}
|
|
```
|
|
|
|
### Configuração de Notificações
|
|
Edite o arquivo `logging-config.json` para configurar notificações:
|
|
|
|
```json
|
|
{
|
|
"notifications": {
|
|
"desktop": {
|
|
"enabled": true,
|
|
"levels": ["SUCCESS", "ERROR"]
|
|
},
|
|
"email": {
|
|
"enabled": false,
|
|
"smtp_server": "smtp.gmail.com",
|
|
"smtp_port": 587,
|
|
"username": "seu.email@gmail.com",
|
|
"password": "sua_senha_app",
|
|
"to": "destinatario@exemplo.com"
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
## 🚀 Uso
|
|
|
|
### Comandos Principais
|
|
|
|
#### Iniciar Sistema
|
|
```powershell
|
|
# Iniciar com configurações padrão
|
|
.\scripts\start-auto-sync.ps1 -Action start
|
|
|
|
# Iniciar sistema
|
|
.\scripts\start-auto-sync.ps1 -Action start
|
|
|
|
# Iniciar com todas as funcionalidades
|
|
.\scripts\start-auto-sync.ps1 -Action start -EnableNotifications -EnableFileWatch
|
|
```
|
|
|
|
#### Parar Sistema
|
|
```powershell
|
|
.\scripts\start-auto-sync.ps1 -Action stop
|
|
```
|
|
|
|
#### Reiniciar Sistema
|
|
```powershell
|
|
.\scripts\start-auto-sync.ps1 -Action restart -EnableNotifications
|
|
```
|
|
|
|
#### Verificar Status
|
|
```powershell
|
|
.\scripts\start-auto-sync.ps1 -Action status
|
|
```
|
|
|
|
### Parâmetros Avançados
|
|
|
|
```powershell
|
|
# Configurar intervalos personalizados
|
|
.\scripts\start-auto-sync.ps1 -Action start -SyncInterval 180
|
|
|
|
# Modo verbose para debug
|
|
.\scripts\start-auto-sync.ps1 -Action start -Verbose
|
|
|
|
# Modo dry-run (simulação)
|
|
.\scripts\start-auto-sync.ps1 -Action start -DryRun
|
|
|
|
# Forçar execução
|
|
.\scripts\start-auto-sync.ps1 -Action start -Force
|
|
```
|
|
|
|
## 📁 Estrutura de Arquivos
|
|
|
|
```
|
|
RDO-C/
|
|
├── scripts/
|
|
│ ├── start-auto-sync.ps1 # Script principal
|
|
│ ├── auto-sync-github.ps1 # Sincronização Git
|
|
│ ├── file-watcher.ps1 # Monitoramento de arquivos
|
|
|
|
│ ├── logging-notifications.ps1 # Logs e notificações
|
|
│ └── setup-git-hooks.ps1 # Configuração de hooks
|
|
├── .github/
|
|
│ ├── workflows/
|
|
│ │ └── auto-sync-deploy.yml # GitHub Action
|
|
│ └── SECRETS_SETUP.md # Configuração de secrets
|
|
├── logs/ # Arquivos de log
|
|
├── temp/ # Arquivos temporários
|
|
├── auto-sync-config.json # Configuração principal
|
|
├── logging-config.json # Configuração de logs
|
|
└── README-AUTO-SYNC.md # Este arquivo
|
|
```
|
|
|
|
## 🔧 Scripts Individuais
|
|
|
|
### 1. Sincronização Manual
|
|
```powershell
|
|
# Sincronização simples
|
|
.\scripts\auto-sync-github.ps1
|
|
|
|
# Com commit automático
|
|
.\scripts\auto-sync-github.ps1 -AutoCommit
|
|
|
|
# Com push automático
|
|
.\scripts\auto-sync-github.ps1 -AutoCommit -Push
|
|
```
|
|
|
|
### 2. Monitoramento de Arquivos
|
|
```powershell
|
|
# Monitoramento contínuo
|
|
.\scripts\file-watcher.ps1 -Continuous
|
|
|
|
# Monitoramento com intervalo personalizado
|
|
.\scripts\file-watcher.ps1 -Continuous -SyncInterval 120
|
|
```
|
|
|
|
## 🔍 Monitoramento e Logs
|
|
|
|
### Localização dos Logs
|
|
- **Logs principais**: `logs/auto-sync-YYYYMMDD.log`
|
|
- **Logs de erro**: `logs/error-YYYYMMDD.log`
|
|
- **Status do sistema**: `auto-sync-status.json`
|
|
|
|
### Visualizar Logs em Tempo Real
|
|
```powershell
|
|
# Windows PowerShell
|
|
Get-Content logs\auto-sync-$(Get-Date -Format 'yyyyMMdd').log -Wait
|
|
|
|
# Ou usando tail (se disponível)
|
|
tail -f logs/auto-sync-$(Get-Date -Format 'yyyyMMdd').log
|
|
```
|
|
|
|
### Níveis de Log
|
|
- **ERROR**: Erros críticos
|
|
- **WARN**: Avisos importantes
|
|
- **INFO**: Informações gerais
|
|
- **SUCCESS**: Operações bem-sucedidas
|
|
- **DEBUG**: Informações de debug (apenas com -Verbose)
|
|
|
|
## 🔔 Notificações
|
|
|
|
### Notificações Desktop
|
|
Habilitadas por padrão no Windows. Mostra:
|
|
- ✅ Sincronizações bem-sucedidas
|
|
- ❌ Erros de sincronização
|
|
|
|
- ⚠️ Avisos importantes
|
|
|
|
### Notificações por Email
|
|
Configure no arquivo `logging-config.json`:
|
|
1. Habilite `email.enabled = true`
|
|
2. Configure servidor SMTP
|
|
3. Defina credenciais (use senhas de app para Gmail)
|
|
|
|
### Webhooks e Integrações
|
|
Suporta integração com:
|
|
- **Slack**: Configure webhook URL
|
|
- **Discord**: Configure webhook URL
|
|
- **Webhooks personalizados**: Configure URL e formato
|
|
|
|
## 🔒 GitHub Actions e Secrets
|
|
|
|
### Configurar Secrets no GitHub
|
|
1. Acesse: `Settings > Secrets and variables > Actions`
|
|
2. Adicione os secrets necessários:
|
|
- `REMOTE_REPO_TOKEN`: Token de acesso ao repositório
|
|
- `NETLIFY_AUTH_TOKEN`: Token do Netlify (se usar)
|
|
- `NETLIFY_SITE_ID`: ID do site Netlify (se usar)
|
|
|
|
### Arquivo de Configuração
|
|
Veja instruções detalhadas em `.github/SECRETS_SETUP.md`
|
|
|
|
## 🐛 Solução de Problemas
|
|
|
|
### Problemas Comuns
|
|
|
|
#### 1. "Repositório não é um Git"
|
|
```powershell
|
|
# Inicializar repositório Git
|
|
git init
|
|
git remote add origin https://github.com/Reifonas/TS_RDO.git
|
|
```
|
|
|
|
#### 2. "Configuração do Git incompleta"
|
|
```powershell
|
|
git config user.name "Seu Nome"
|
|
git config user.email "seu.email@exemplo.com"
|
|
```
|
|
|
|
#### 3. "Falha na conectividade remota"
|
|
```powershell
|
|
# Testar conectividade
|
|
git ls-remote origin HEAD
|
|
|
|
# Verificar URL remota
|
|
git remote -v
|
|
|
|
# Reconfigurar se necessário
|
|
git remote set-url origin https://github.com/Reifonas/TS_RDO.git
|
|
```
|
|
|
|
#### 4. "Permissões de execução"
|
|
```powershell
|
|
# Permitir execução de scripts
|
|
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
|
|
```
|
|
|
|
#### 5. "Hooks não funcionam"
|
|
```powershell
|
|
# Reconfigurar hooks
|
|
.\scripts\setup-git-hooks.ps1 -Force
|
|
|
|
# Verificar permissões
|
|
ls -la .git/hooks/
|
|
```
|
|
|
|
### Debug Avançado
|
|
|
|
```powershell
|
|
# Executar com logs detalhados
|
|
.\scripts\start-auto-sync.ps1 -Action start -Verbose -LogLevel DEBUG
|
|
|
|
# Testar componentes individualmente
|
|
.\scripts\start-auto-sync.ps1 -Action test
|
|
|
|
# Verificar status detalhado
|
|
.\scripts\start-auto-sync.ps1 -Action status
|
|
```
|
|
|
|
### Logs de Debug
|
|
```powershell
|
|
# Ver logs de erro
|
|
Get-Content logs\error-$(Get-Date -Format 'yyyyMMdd').log
|
|
|
|
# Ver logs completos
|
|
Get-Content logs\auto-sync-$(Get-Date -Format 'yyyyMMdd').log | Select-String "ERROR"
|
|
```
|
|
|
|
## 📈 Monitoramento de Performance
|
|
|
|
### Métricas Disponíveis
|
|
- Número de sincronizações
|
|
- Número de erros
|
|
- Tempo de última sincronização
|
|
- Status do sistema
|
|
|
|
### Visualizar Estatísticas
|
|
```powershell
|
|
# Status completo
|
|
.\scripts\start-auto-sync.ps1 -Action status
|
|
|
|
# Verificar arquivo de status
|
|
Get-Content auto-sync-status.json | ConvertFrom-Json
|
|
```
|
|
|
|
## 🔄 Atualizações e Manutenção
|
|
|
|
### Atualizar Sistema
|
|
1. Pare o sistema: `start-auto-sync.ps1 -Action stop`
|
|
2. Atualize os scripts
|
|
3. Reinicie: `start-auto-sync.ps1 -Action restart`
|
|
|
|
### Limpeza de Logs
|
|
```powershell
|
|
# Limpar logs antigos (mais de 30 dias)
|
|
Get-ChildItem logs\*.log | Where-Object {$_.LastWriteTime -lt (Get-Date).AddDays(-30)} | Remove-Item
|
|
```
|
|
|
|
### Backup de Configuração
|
|
```powershell
|
|
# Backup das configurações
|
|
Copy-Item auto-sync-config.json auto-sync-config.json.bak
|
|
Copy-Item logging-config.json logging-config.json.bak
|
|
```
|
|
|
|
## 📞 Suporte
|
|
|
|
### Informações do Sistema
|
|
```powershell
|
|
# Coletar informações para suporte
|
|
.\scripts\start-auto-sync.ps1 -Action test > system-info.txt
|
|
Get-Content auto-sync-status.json >> system-info.txt
|
|
Get-Content logs\auto-sync-$(Get-Date -Format 'yyyyMMdd').log | Select-Object -Last 50 >> system-info.txt
|
|
```
|
|
|
|
### Contato
|
|
- **Repositório**: [TS_RDO](https://github.com/Reifonas/TS_RDO.git)
|
|
- **Issues**: Use o sistema de issues do GitHub
|
|
- **Documentação**: Este arquivo README
|
|
|
|
---
|
|
|
|
## 📝 Changelog
|
|
|
|
### v1.0.0 (2024)
|
|
- ✅ Sistema completo de auto-sync
|
|
- ✅ GitHub Actions integradas
|
|
- ✅ Git Hooks configurados
|
|
|
|
- ✅ Monitoramento de arquivos
|
|
- ✅ Logs detalhados e notificações
|
|
- ✅ Interface unificada de gerenciamento
|
|
|
|
---
|
|
|
|
**🎉 Sistema RDO-C Auto-Sync pronto para uso!**
|
|
|
|
Para começar:
|
|
```powershell
|
|
.\scripts\start-auto-sync.ps1 -Action setup
|
|
.\scripts\start-auto-sync.ps1 -Action start -EnableNotifications
|
|
``` |