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.
S
Description
No description provided
Readme
32 MiB
Languages
Go 62.2%
TypeScript 27.6%
Makefile 2.5%
Batchfile 2%
Shell 1.8%
Other 3.9%