# Web Tail Pro Visualizador de logs em tempo real no navegador, com backend em Go e frontend em React. Permite acompanhar múltiplos arquivos simultaneamente, filtrar linhas, aplicar formatações (JSON e Apache), e mesclar logs por timestamp em um painel unificado. Autenticação básica (HTTP Basic Auth) opcional. ## Recursos - Monitoramento em tempo real via SSE (`/logs`) - Múltiplas abas, uma por arquivo de log, e painel "Mesclado" - Filtro de texto simples nas abas - Formatação de linhas para `generic`, `json` e `apache` - Autenticação básica com usuário fixo `admin` e senha definida por flag ## Arquitetura - **Backend (Go 1.21+)**: realiza `tail` dos arquivos e publica eventos via SSE. Serve os arquivos do frontend com `go:embed`. - **Frontend (React + Vite + Ant Design)**: consome SSE, organiza abas e renderiza as linhas de log com formatação. Estrutura do projeto: ``` backend/ main.go go.mod frontend/ src/ App.tsx components/ hooks/ package.json vite.config.ts build.sh ``` ## Pré-requisitos - Go 1.21+ - Node.js 18+ e npm ## Build Opção 1 (Unix/WSL/Git Bash): ``` bash build.sh ``` Opção 2 (manual, multiplataforma): ``` cd frontend npm install npm run build cd .. go build -o web-tail-pro ./backend/main.go ``` ## Execução Exemplos de uso do binário gerado: ``` ./web-tail-pro backend/logs/app.log backend/logs/access.log backend/logs/json.log ./web-tail-pro -port :9090 -password "s3nh4" backend/logs/*.log ./web-tail-pro -password "s3nh4" backend/logs/app.log ./web-tail-pro -port 1234 backend/logs/*.log ``` Após iniciar, acesse `http://localhost:8080` (ou a porta configurada). ### Flags disponíveis - `-port` (padrão `:8080`): porta/endereço para o servidor HTTP. Aceita formatos como `:8080` ou `9090`. - `-password` (padrão vazio): ao definir uma senha, ativa autenticação básica (usuário `admin`). ### Autenticação - Usuário: `admin` - Senha: valor definido em `-password` - Sem `-password`, o acesso é liberado. ## Desenvolvimento Executar backend em modo desenvolvimento: ``` go run ./backend/main.go backend/logs/*.log ``` Executar frontend com Vite (proxy para o backend): ``` cd frontend npm run dev ``` - Frontend dev: `http://localhost:5173` - Proxy configurado para `/api` e `/logs` direcionar para `http://localhost:8080` (ajuste a porta se necessário). ## Endpoints - `GET /api/files`: retorna a lista de arquivos de log que o backend está monitorando. - `SSE /logs`: stream de eventos com linhas de log (`filename`, `line`, `timestamp`). ## Observações - O buffer no frontend mantém aproximadamente as últimas 2000 linhas por conexão SSE. - O painel "Mesclado" ordena por `timestamp` (quando disponível) para facilitar correlação entre arquivos.