Files
pastebin/ADMIN_GUIDE.md

4.6 KiB

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

version: "3.4"
services:
  paste:
    environment:
      - YASUC_ADMIN_PASSWORD=minhasenha123

Execução Local

# 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

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

# Abrir no navegador
open http://localhost:8080/admin/login

2. Login via Curl

# 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

# 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

# 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

# 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