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:
100
README.md
Normal file
100
README.md
Normal 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.
|
||||
Reference in New Issue
Block a user