# Guia da Interface de Administração

## Visão Geral

A interface de administração do YASUC permite gerenciar todos os pastes criados através de uma interface web simples e intuitiva.

## Acesso

### URL de Acesso
```
http://localhost:8080/admin/login
```

### Autenticação
- **Senha**: Definida pela variável de ambiente `YASUC_ADMIN_PASSWORD`
- **Sessão**: 1 hora de duração
- **Padrão**: `admin123` (se não configurada)

## Configuração da Senha

### Docker Compose
```yaml
version: "3.4"
services:
  paste:
    environment:
      - YASUC_ADMIN_PASSWORD=minhasenha123
```

### Execução Local
```bash
# Linux/Mac
YASUC_ADMIN_PASSWORD=minhasenha123 ./yasuc -db data/yasuc.sqlite3 -port 8080

# Windows PowerShell
$env:YASUC_ADMIN_PASSWORD="minhasenha123"; ./yasuc.exe -db data/yasuc.sqlite3 -port 8080
```

### Docker Run
```bash
docker run -d -p 8080:8080 -v /path/to/data:/data -e YASUC_ADMIN_PASSWORD=minhasenha123 yasuc
```

## Funcionalidades

### 1. Dashboard Principal

O dashboard exibe:
- **Estatísticas**: Total de pastes e tamanho total em bytes
- **Lista de Pastes**: Todos os pastes ordenados por data de criação (mais recentes primeiro)
- **Ações**: Botões para visualizar e remover pastes

### 2. Informações dos Pastes

Para cada paste, são exibidas:
- **ID**: O ID curto do paste (ex: `Ly34kx3`)
- **URL**: Link direto para acessar o paste
- **Conteúdo**: Preview dos primeiros 50 caracteres
- **Tamanho**: Tamanho em bytes
- **Data de Criação**: Data e hora formatadas

### 3. Ações Disponíveis

#### Visualizar Paste
- **Botão**: "Ver" (azul)
- **Ação**: Abre o paste em nova aba
- **URL**: `http://localhost:8080/[ID]`

#### Remover Paste
- **Botão**: "Remover" (vermelho)
- **Ação**: Deleta permanentemente o paste
- **Confirmação**: Dialog de confirmação antes da remoção

### 4. Navegação

- **Logout**: Botão "Sair" no canto superior direito
- **Sessão**: Expira automaticamente após 1 hora
- **Redirecionamento**: Para login se não autenticado

## Interface Web

### Design
- **Responsivo**: Interface limpa e moderna
- **Cores**: Azul para ações principais, vermelho para remoção
- **Tabela**: Lista organizada com informações claras
- **Preview**: Conteúdo truncado para melhor visualização

### Segurança
- **Autenticação**: Protegido por senha
- **Sessão**: Cookie HttpOnly com expiração
- **CSRF**: Proteção básica contra ataques
- **Validação**: Verificação de autenticação em todas as rotas

## Rotas da API

### Autenticação
- `GET /admin/login` - Página de login
- `POST /admin/login` - Autenticação
- `GET /admin/logout` - Logout

### Administração
- `GET /admin/dashboard` - Dashboard principal
- `POST /admin/delete/[ID]` - Remover paste

## Exemplos de Uso

### 1. Acessar Administração
```bash
# Abrir no navegador
open http://localhost:8080/admin/login
```

### 2. Login via Curl
```bash
# Fazer login e salvar cookies
curl -c cookies.txt -b cookies.txt -d "password=admin123" -X POST http://localhost:8080/admin/login

# Acessar dashboard
curl -b cookies.txt http://localhost:8080/admin/dashboard
```

### 3. Remover Paste via API
```bash
# Remover paste específico
curl -b cookies.txt -X POST http://localhost:8080/admin/delete/Ly34kx3
```

## Troubleshooting

### Problemas Comuns

#### Senha Incorreta
- **Sintoma**: Mensagem "Senha incorreta"
- **Solução**: Verificar variável de ambiente `YASUC_ADMIN_PASSWORD`

#### Sessão Expirada
- **Sintoma**: Redirecionamento para login
- **Solução**: Fazer login novamente

#### Erro ao Remover Paste
- **Sintoma**: Mensagem de erro no JavaScript
- **Solução**: Verificar se o paste ainda existe

#### Acesso Negado
- **Sintoma**: Redirecionamento para login
- **Solução**: Verificar autenticação e cookies

### Logs
```bash
# Verificar logs do servidor
docker logs paste

# Ou no terminal local
./yasuc -db data/yasuc.sqlite3 -port 8080
```

## Segurança

### Recomendações
1. **Senha Forte**: Use senhas complexas
2. **HTTPS**: Configure SSL em produção
3. **Firewall**: Restrinja acesso à porta 8080
4. **Backup**: Faça backup regular do banco
5. **Monitoramento**: Monitore logs de acesso

### Variáveis de Ambiente
```bash
# Produção
YASUC_ADMIN_PASSWORD=senha_muito_forte_123!

# Desenvolvimento
YASUC_ADMIN_PASSWORD=dev123
```

## Personalização

### Modificar Interface
Para personalizar a interface, edite as constantes HTML no arquivo `yasuc.go`:
- `adminLoginHTML` - Página de login
- `adminDashboardHTML` - Dashboard principal

### Adicionar Funcionalidades
Exemplos de extensões possíveis:
- Filtros por data
- Busca por conteúdo
- Exportação de dados
- Estatísticas avançadas
- Backup automático 