Visão geral
O RCSS-tui é o sucessor em Go do projeto original RCSS, antes composto por scripts Bash. A nova versão concentra todo o fluxo de backup em uma interface de terminal, sem esconder o funcionamento do rclone nem armazenar credenciais de nuvem.
Cada remote do rclone funciona como uma conta independente, com suas próprias pastas de origem, destino, exclusões, regras de retenção, logs e tarefas agendadas. Uma conta acompanha quantas pastas forem necessárias, e cada uma vira um backup separado no remote (remote/<nome-da-pasta>), com agendamento próprio. O programa roda em Linux, macOS e Windows.
Funcionalidades
- Backup com progresso ao vivo de uma ou várias pastas, cada uma enviada como um backup próprio.
- Restauração navegável de arquivos e diretórios armazenados no remote.
- Limpeza segura com prévia em dry-run, seleção de itens e confirmação adicional no modo forçado.
- Múltiplas contas, uma para cada remote do rclone, com configurações isoladas.
- Agendamento por pasta: cadência e horário próprios para cada origem, além de um job para todas as pastas e outro para a limpeza — via cron no Linux/macOS e Task Scheduler no Windows.
- Logs por conta acessíveis diretamente pela interface.
- Remotes criptografados por meio do backend
cryptdo rclone. - CLI headless para uso em scripts e rotinas automatizadas.
Segurança e retenção
A limpeza local fica desativada por padrão e só ocorre depois que a origem é enviada com sucesso. Falhas de upload e arquivos excluídos nunca disparam remoção local.
Para a nuvem, o RCSS-tui gera primeiro uma prévia dos arquivos que ultrapassaram a retenção. A limpeza também é bloqueada quando não existe um backup remoto recente; ignorar essa trava exige modo forçado e uma confirmação digitada.
Automação
Além da TUI, os fluxos principais podem ser executados sem interação:
rcss upload -p
rcss upload --account "work:"
rcss upload --folder ~/Projetos/site --folder ~/Projetos/fotos
rcss clean --dry-run --account "drive:"
O --folder pode ser repetido, e é ele que torna possível o agendamento por pasta: cada bloco agendado instala o mesmo comando com a sua origem. Uma pasta que saiu da configuração faz o job falhar de forma explícita no log, em vez de fazer um backup vazio em silêncio.
As tarefas podem ser diárias ou semanais. O agendador altera apenas o bloco gerenciado pelo RCSS no crontab ou as tarefas RCSS-<conta>-* no Windows; um job órfão, deixado por uma pasta removida, aparece marcado como tal e é apagado no próximo salvamento.
Arquitetura
| Camada | Tecnologia |
|---|---|
| Aplicação e CLI | Go |
| Interface de terminal | Bubble Tea |
| Transferência e clouds | Rclone |
| Configuração | TOML, separada por conta |
| Agendamento | Cron / Windows Task Scheduler |
| Plataformas | Linux, macOS e Windows |
As responsabilidades são separadas em pacotes para configuração, integração com rclone, backup e restauração, agendamento e telas da TUI. O mesmo núcleo atende tanto à interface interativa quanto aos comandos headless.
Instalação
git clone https://github.com/dougmb/RCSS-tui.git
cd RCSS-tui
go build -o rcss .
./rcss
O único requisito externo é ter o rclone instalado e ao menos um remote configurado.