EM ANDAMENTO
Resumo técnico
Plugin nativo do NEXUS que cria backups de banco, arquivos ou pacotes completos e os envia a destinos locais ou remotos por uma arquitetura de conectores. Suporta FTP, SFTP e provedores de nuvem, protege credenciais com AES-256-CBC e integra agendamento, retenção, progresso e restauração ao fluxo operacional do painel.
Escopo executado
- Backend
backend.php(911 linhas):backup_mysql_dump()(mysqldump com single-transaction, routines e triggers),backup_files_zip()(uploads, plugins, scripts + caminhos extras) ebackup_create_full()(dump + zip empacotados em tar.gz, com limpeza de temporários). - Progresso em tempo real via
progress.jsoncom polling (backup_progress) e lock de 10 minutos (backup_is_running) que evita execuções concorrentes. - Arquitetura de conectores: classe abstrata
BackupConnector(getType/getName/getFields/test/upload + OAuth opcional) eBackupConnectorManagercom varredura dinâmica da pastaconnectors/e auto-registro. - 8 conectores implementados:
local,ftp(timeout 15s, criação recursiva de pastas),sftp(ssh2, subsistema SFTP),dropbox(OAuth2 code + refresh, renovação de token automática, upload emcontent.dropboxapi.com/2/files/upload),google-drive(OAuth2 offline escopodrive.file, upload multipart/related, navegador e criação de pastas),mega(autenticação via API g.api.mega.co.nz em modo simplificado),mediafire(API 1.5 session token) eterabox(cookie de sessão BDSTX). - OAuth completo no painel:
backup_oauth_callback(bypass de autenticação noapi.php), popup compostMessage({type:'nexus_oauth_success'}), redirect URI dinâmica copiável, campos readonly para tokens obtidos automaticamente. - Destinos: CRUD com teste de conexão por tipo (status ATIVO/FALHA/NÃO TESTADO com
last_test/last_error), geração automática de ID (dest_+ hex) e criptografia AES-256-CBC das credenciais (pass,access_token,refresh_token,client_secret,cookie) antes doDB::setConfig('plugin.backup.destinations', ...). - Agendamento soft-cron: configuração em
admin_configs(plugin.backup.schedule), jobbackupnocronjob.json(frequência hourly/daily/weekly/monthly, horário, tipo, destino, retenção 1–100, notificação), cálculo denext_runebackup_cron_check()disparado pelo loop de cron doapi.php(worker/cron/run_cron) — sem alterar o crontab do SO. - Retenção automática (
backup_apply_retention) por data de modificação (padrão 10 backups) com registro em log. - Restauração com um clique:
.sqlvia CLImysql,.zipvia ZipArchive e.tar.gzviatar -xzf, com confirmação em modal. - Metadados sidecar: cada backup grava
<arquivo>.jsoncomstarted_at,completed_at, tipo, destino e status do upload remoto (ENVIADO/FALHOU). - UI Alpine.js (
tab.php830 linhas +assets/backup.js555 linhas): cards de estatísticas (total, banco, arquivos, completos, tamanho), tabela com busca e paginação, barra de progresso, modaisx-teleportcom backdrop blur, campos dinâmicos por conector, explorador de pastas do Google Drive (com nota sobre o escopodrive.file), guias de configuração embutidas (MediaFire, Dropbox, Google) e visualizador do log (últimas 200 linhas) em estilo terminal. - API: 16 actions registradas via
PluginManager::registerApiAction—backup_list,backup_create,backup_delete,backup_download,backup_restore,backup_destinations,backup_destination_save,backup_destination_delete,backup_destination_test,backup_schedule,backup_schedule_save,backup_log,backup_oauth_callback,backup_progress,backup_destination_folders,backup_destination_create_folder(autenticadas por sessão/Bearer com CSRF; apenas o callback OAuth tem bypass de auth).
Stack e ferramentas
- PHP 8 (sem framework)
- MySQL 8 (configurações em
admin_configs; sem tabelas dedicadas) - Alpine.js + Tailwind CSS
- cURL (uploads cloud e fluxos OAuth), OpenSSL (AES-256-CBC), ZipArchive, CLI
mysqldump/mysql/tar - Sistema de plugins do NEXUS (
PluginManager)
Tags operacionais
- Backup
- Restauração
- Cloud Storage
- Cronjobs
Resultado operacional
- Consolidou a política de backup do NEXUS em um único plugin: dump MySQL, compactação de arquivos e pacote completo tar.gz, com envio opcional para múltiplos destinos.
- Credenciais de provedores cloud nunca são persistidas em texto plano (criptografia AES-256-CBC com chave do painel no
admin_configs). - Agendamento integrado ao hub Cronjobs (job
backup), eliminando a dependência de crontab manual no sistema operacional. - Guia de configuração passo a passo dos provedores (Dropbox, Google Drive, Mega, MediaFire, Terabox) embutido na interface e na documentação do plugin.
Andamento no GitHub (issues)
Painel em tempo real com as issues mais recentes do repositório.
live feed
abrir issues no githubcarregando andamento...
não foi possivel carregar as issues agora. abra no github pelo link acima.
Resultados reais
Plugin nativo do NEXUS para backups multi-destino (banco, arquivos e completo) com envio para local, FTP/SFTP e provedores cloud (Dropbox, Google Drive, Mega, MediaFire, Terabox), credenciais criptografadas e agendamento soft-cron.
Arquitetura e organização
- PHP 8
- MySQL 8
- Alpine.js
- Tailwind CSS
- cURL
- OpenSSL
- Plugin NEXUS
Execução e operação
O projeto segue fluxo reprodutível de execução com validação técnica em ambiente de produção/similar.
Screenshots
Falar sobre este projeto
Aplique este modelo no seu ambiente e acelere a entrega com consistência técnica.