Luiz Costa 20129a1ac7 build: add typescript compilation step before frontend build
The build script now runs TypeScript compilation (tsc) before the frontend build to catch type errors earlier in the process. Also downgraded eslint to v8.57.0 for compatibility reasons.
2025-11-18 10:19:13 -03:00

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
0 Stars 1 Watchers 0 Forks
Languages
Go 62.2%
TypeScript 27.6%
Makefile 2.5%
Batchfile 2%
Shell 1.8%
Other 3.9%