docs: add initial README with project overview and setup instructions

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
This commit is contained in:
Luiz Costa
2025-11-18 08:40:06 -03:00
parent 3a5cbe12ef
commit 775e562fe9

100
README.md Normal file
View File

@@ -0,0 +1,100 @@
# 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.