Skip to content

renatofabro/clamav-UI

Repository files navigation

🛡️ ClamAV Tray UI (Multiplataforma)

Interface gráfica moderna e intuitiva para o ClamAV, projetada para ser compatível com Windows e Linux. Roda em background no system tray e oferece todas as funcionalidades principais do ClamAV através de uma interface React amigável.

ClamAV Tray UI Platform License

📋 Funcionalidades

✨ Interface Moderna

  • 🎨 Design limpo e intuitivo em português
  • 🌙 Interface responsiva e moderna
  • 📊 Dashboard com visão geral do sistema
  • 🔔 Notificações de ameaças detectadas

🔍 Scanner de Vírus

  • Scan Rápido: Escaneia pastas comuns (Downloads, Documentos, Desktop)
  • Scan Completo: Escaneia todo o sistema
  • Scan Personalizado: Escolha pastas ou arquivos específicos
  • ⏱️ Progresso em tempo real durante o scan
  • 📈 Visualização detalhada dos resultados

🔄 Atualização de Definições

  • Atualização manual com um clique
  • Opção de atualização automática diária
  • Indicador da última atualização

📜 Histórico

  • Registro completo de todos os scans
  • Detalhes de cada scan (arquivos escaneados, ameaças, duração)
  • Visualização de ameaças detectadas

🔒 Quarentena

  • Arquivos infectados movidos automaticamente para quarentena
  • Opção de restaurar ou deletar arquivos em quarentena
  • Interface segura para gerenciar ameaças

🛡️ Proteção em Tempo Real ⭐ APRIMORADA

  • Monitoramento contínuo de pastas críticas (Downloads, Desktop, Documentos)
  • Scan automático de arquivos novos e modificados
  • Escaneamento ultra-rápido: Prioriza o uso de clamdscan (via daemon) para verificações em milissegundos.
  • Eficiência aprimorada: Ignora arquivos temporários de download (.part, .crdownload, etc.) para evitar interrupções.
  • Sistema de Fila: Processa arquivos de forma controlada para evitar sobrecarga do sistema.
  • Configuração personalizada de pastas monitoradas
  • Exclusão de extensões específicas (.tmp, .log, .cache, etc.)
  • Quarentena automática de ameaças detectadas
  • Notificações instantâneas do sistema
  • Estatísticas em tempo real (arquivos escaneados, ameaças detectadas)
  • Histórico de ameaças recentes
  • Ativar/desativar com um clique

⏰ Agendamento de Scans ⭐ NOVO

  • Scans automáticos em horários programados
  • Frequências: Diária, Semanal ou Mensal
  • Configuração de horário específico para cada agendamento
  • Suporte a todos os tipos de scan (rápido, completo, personalizado)
  • Criar múltiplos agendamentos diferentes
  • Ativar/desativar agendamentos individualmente
  • Visualização de próxima execução e última execução
  • Notificação quando scans agendados são iniciados
  • Persistência automática de configurações

⚙️ Configurações

  • Iniciar com o Windows
  • Minimizar para bandeja do sistema
  • Notificações personalizáveis
  • Configuração do caminho do ClamAV

🔔 System Tray

  • Aplicativo roda em background no system tray
  • Menu de contexto com ações rápidas
  • Indicador de status (idle, scanning, updating)

📦 Pré-requisitos

ClamAV

IMPORTANTE: Esta aplicação requer que o ClamAV esteja instalado e configurado no seu sistema (Windows ou Linux).

Instalação e Configuração do ClamAV (Windows)

  1. Baixe e instale o ClamAV:

  2. Configure o PATH (opcional, mas recomendado):

    • Adicione C:\Program Files\ClamAV ao PATH do sistema
    • Ou configure o caminho nas configurações da aplicação.
  3. Atualize as definições:

    cd "C:\Program Files\ClamAV"
    freshclam

Instalação e Configuração do ClamAV (Ubuntu/Linux)

  1. Instale os pacotes necessários:

    sudo apt update
    sudo apt install clamav clamav-daemon
  2. Atualize as definições (freshclam):

    sudo freshclam
  3. Inicie e habilite o serviço clamd (daemon):

    sudo systemctl start clamav-daemon
    sudo systemctl enable clamav-daemon

    Para melhor desempenho da Proteção em Tempo Real, garanta que o serviço clamav-daemon esteja ativo.

  4. Verifique a instalação:

    clamscan --version
    clamdscan --version

    Ambos os comandos devem retornar a versão do ClamAV.

🚀 Instalação da ClamAV Tray UI

Opção 1: Instalar via Executável (Recomendado)

  1. Baixe o instalador ClamAV-Tray-UI-Setup.exe
  2. Execute como Administrador
  3. Siga o assistente de instalação
  4. A aplicação será instalada e adicionada ao menu Iniciar

Opção 2: Desenvolvimento

Pré-requisitos para Desenvolvimento

  • Node.js 18+ instalado
  • npm ou yarn
  • ClamAV instalado (ver acima)

Passos:

  1. Clone o repositório:

    git clone https://github.com/renatofabro/clamav-UI.git
    cd clamav-UI
  2. Instale as dependências:

    npm install
  3. Execute em modo desenvolvimento:

    npm run dev
  4. Build para produção:

    npm run build
    npm run package

    Isso gerará os pacotes para a sua plataforma atual (ex: .deb no Linux, .exe no Windows) na pasta release/. Para gerar especificamente para Windows a partir de outra plataforma, use:

    npm run package:win

💻 Uso

Primeira Execução

  1. Inicie a aplicação (ou ela será iniciada automaticamente se configurado)
  2. Verifique o ícone no system tray 🛡️
  3. Clique no ícone para abrir a interface
  4. A aplicação verificará automaticamente se o ClamAV está instalado

Dashboard

No Dashboard você encontrará:

  • Status do ClamAV (versão, última atualização)
  • Resumo dos últimos scans
  • Botões de ação rápida

Realizando Scans

  1. Vá para a aba Scanner
  2. Escolha o tipo de scan:
    • Rápido: ~5-10 minutos
    • 🖥️ Completo: pode demorar horas
    • 📁 Personalizado: você escolhe o tempo
  3. Clique em Iniciar Scan
  4. Acompanhe o progresso em tempo real

Gerenciando Ameaças

Se ameaças forem detectadas:

  1. Arquivos infectados são automaticamente movidos para quarentena
  2. Acesse a aba Quarentena para gerenciá-los
  3. Você pode:
    • ↩️ Restaurar: Move de volta para a Área de Trabalho (use com cuidado!)
    • 🗑️ Deletar: Remove permanentemente

Atualizando Definições

Método 1: Dashboard → Clique em "Atualizar Definições"

Método 2: Settings → Ative "Atualizar automaticamente"

Método 3: Menu do System Tray → "Atualizar Definições"

🛠️ Estrutura do Projeto

clamav-UI/
├── src/
│   ├── main/               # Processo principal Electron
│   │   ├── main.ts        # Entry point
│   │   ├── preload.ts     # Bridge IPC
│   │   ├── tray.ts        # System tray manager
│   │   ├── clamav.ts      # ClamAV operations
│   │   └── settings.ts    # Settings manager
│   ├── renderer/          # Interface React
│   │   ├── components/    # Componentes React
│   │   │   ├── Dashboard.tsx
│   │   │   ├── Scanner.tsx
│   │   │   ├── History.tsx
│   │   │   ├── Quarantine.tsx
│   │   │   └── Settings.tsx
│   │   ├── styles/        # CSS
│   │   ├── App.tsx        # Componente principal
│   │   ├── main.tsx       # Entry point React
│   │   └── index.html
│   └── shared/            # Tipos compartilhados
│       └── types.ts
├── public/                # Assets (ícones)
├── dist/                  # Build compilado
└── release/               # Instaladores

🔧 Scripts Disponíveis

# Desenvolvimento
npm run dev              # Inicia em modo dev (hot reload)
npm run dev:renderer     # Apenas React (Vite)
npm run dev:main         # Apenas Electron

# Build
npm run build            # Build completo
npm run build:renderer   # Build React
npm run build:main       # Build Electron

# Empacotamento
npm run package          # Gera executável
npm run package:win      # Gera instalador Windows

🎨 Tecnologias Utilizadas

  • Electron 28: Framework para aplicações desktop
  • React 18: Interface do usuário
  • TypeScript: Tipagem estática
  • Vite: Build tool rápido
  • electron-store: Persistência de configurações
  • electron-builder: Empacotamento para Windows
  • chokidar: File system watcher para proteção em tempo real
  • node-cron: Agendamento de tarefas com cron

📝 Configurações Avançadas

Localização do ClamAV

Se o ClamAV não for detectado automaticamente:

  1. Vá em Configurações
  2. Em "Caminho do ClamAV", insira o caminho correto
  3. Exemplo: C:\Program Files\ClamAV
  4. Salve as configurações

Auto-iniciar com Windows

  1. Vá em Configurações
  2. Ative "Iniciar com o Windows"
  3. A aplicação será executada em background ao iniciar o sistema

Pasta de Quarentena

Os arquivos em quarentena são armazenados em uma subpasta chamada ClamAV-Quarantine dentro do diretório home do seu usuário.

  • Windows (exemplo): C:\Users\[SeuUsuário]\ClamAV-Quarantine\
  • Linux (exemplo): /home/[SeuUsuário]/ClamAV-Quarantine/

🐛 Solução de Problemas

ClamAV não detectado ou Proteção em Tempo Real não funciona

  1. Verifique a instalação do ClamAV:

    • No terminal, execute: clamscan --version e clamdscan --version. Ambos devem retornar a versão.
    • No Linux, certifique-se de que o serviço clamav-daemon esteja ativo: sudo systemctl status clamav-daemon.
  2. Verifique o PATH do sistema:

    • Certifique-se de que os executáveis do ClamAV (clamscan, freshclam, clamdscan) estão acessíveis via PATH.
  3. Configure manualmente o caminho:

    • Se necessário, configure o caminho completo para a pasta de instalação do ClamAV nas Configurações da aplicação.

Scan não inicia

  1. Execute a aplicação com privilégios adequados:

    • No Windows, execute como Administrador. No Linux, se o ClamAV está configurado para o usuário atual, geralmente não é necessário sudo para o UI, mas pode ser para algumas operações do ClamAV em pastas protegidas.
  2. Verifique o ClamAV:

    • No terminal, tente um scan manual: clamscan -r /home/seu_usuario.
  3. Verifique os logs do Electron (F12 → DevTools) para mensagens de erro.

Atualização de definições falha

  1. Verifique sua conexão com a internet.
  2. Execute a atualização manualmente no terminal: freshclam. Pode ser necessário executar com sudo no Linux.
  3. Verifique se o ClamAV tem permissões de escrita na pasta de definições (ex: /var/lib/clamav no Linux, C:\Program Files\ClamAV\database no Windows).

🤝 Contribuindo

Contribuições são bem-vindas! Para contribuir:

  1. Fork o projeto
  2. Crie uma branch para sua feature (git checkout -b feature/MinhaFeature)
  3. Commit suas mudanças (git commit -m 'Adiciona MinhaFeature')
  4. Push para a branch (git push origin feature/MinhaFeature)
  5. Abra um Pull Request

📄 Licença

Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.

🙏 Agradecimentos

  • ClamAV - Motor antivírus open-source
  • Comunidade Electron
  • Comunidade React

📞 Suporte

Para reportar bugs ou sugerir funcionalidades:

  • Abra uma Issue
  • Entre em contato com o desenvolvedor

Desenvolvido com ❤️ para tornar o ClamAV acessível a todos os usuários

About

Criando uma interface visual para usuários domesticos poderem utilizar o ClamAV com UI.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors