20129a1ac7a6b0f1e1f9694aab5e8102463d51ba
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.
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,jsoneapache - Autenticação básica com usuário fixo
admine senha definida por flag
Arquitetura
- Backend (Go 1.21+): realiza
taildos arquivos e publica eventos via SSE. Serve os arquivos do frontend comgo: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:8080ou9090.-password(padrão vazio): ao definir uma senha, ativa autenticação básica (usuárioadmin).
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
/apie/logsdirecionar parahttp://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.
Languages
Go
62.2%
TypeScript
27.6%
Makefile
2.5%
Batchfile
2%
Shell
1.8%
Other
3.9%