Add comprehensive README file describing the Web Tail Pro project including: - Features and architecture overview - Project structure and prerequisites - Build and execution instructions - Development setup and available endpoints
2.7 KiB
2.7 KiB
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.