Sobre o projeto
# Visão geral do RelayAB
O RelayAB é um gateway (estação de retransmissão) de API de IA auto-hospedado, projetado para compartilhar de forma segura e controlada as chaves de API de serviços de IA upstream com um pequeno número de usuários, oferecendo gerenciamento refinado de permissões e uso. Ele suporta implantação em um clique na Vercel e é compatível com os protocolos de API da OpenAI e da Anthropic.
## Funcionalidades principais
- **Multiusuário e papéis**: suporta dois papéis, administrador (admin) e usuário comum (user); as senhas dos usuários são armazenadas com hash unidirecional bcrypt.
- **Gerenciamento de cotas de pontos**: o administrador pode atribuir a cada conta um total de pontos e os modelos acessíveis; todas as chaves de API da conta compartilham esses pontos e, quando esgotados, todas param.
- **Autoatendimento do usuário**: usuários comuns podem criar, renomear, ativar/desativar ou excluir chaves de API por conta própria no console, além de alterar a própria senha.
- **Controle refinado de chaves**: cada usuário pode criar várias chaves de API, e cada chave pode ter configurações independentes de tempo de expiração, estado de ativação e lista de modelos permitidos (que só pode restringir dentro da lista permitida da conta).
- **Protocolos compatíveis**: suporta os protocolos OpenAI Chat Completions e Anthropic Messages, além de mapeamento de modelos do cliente para modelos reais upstream.
- **Armazenamento seguro**: as chaves de provedor upstream são armazenadas no Redis criptografadas com AES-256-GCM; a perda da chave mestra tornará os dados permanentemente inutilizáveis.
- **Interface multilíngue**: chinês por padrão, com suporte a inglês, alternável com um clique no rodapé.
- **Página de documentação amigável ao usuário**: fornece endereços de interface copiáveis e exemplos de código compatíveis com OpenAI/Anthropic.
## Stack tecnológico
- **Framework**: Next.js 15 App Router + React 19 + TypeScript 5
- **Armazenamento de dados**: Upstash for Redis (instalável em um clique pelo Vercel Marketplace)
- **Autenticação**: iron-session 8 + bcryptjs (work factor 12)
- **Criptografia**: AES-256-GCM + bcryptjs
- **Integração de IA upstream**: Vercel AI SDK
- **Testes**: Vitest + Playwright
## Início rápido
1. **Instalar dependências**: `pnpm install`
2. **Configurar variáveis de ambiente**: copie `.env.example` para `.env.local`; basta definir `RELAY_AUTH` (senha mestra, que também é a senha de login do administrador). As variáveis do Upstash são injetadas automaticamente na Vercel.
3. **Iniciar o servidor de desenvolvimento**: `pnpm dev` e acesse `http://localhost:3000`.
4. **Login**: na primeira inicialização, uma conta de administrador é criada automaticamente, com nome de usuário padrão `admin` e senha igual ao valor de `RELAY_AUTH`.
## Implantação na Vercel
O projeto oferece um botão de implantação em um clique; na implantação, basta preencher a variável de ambiente `RELAY_AUTH`. Após a implantação bem-sucedida, instale o banco de dados Upstash pelo Vercel Marketplace e faça um novo deploy (Redeploy) para que entre em vigor.
## Pontos de segurança
- As senhas dos usuários usam hash unidirecional bcrypt, impossibilitando reverter ao texto original.
- As chaves de API dos clientes armazenam apenas seu hash SHA-256; o texto em claro é retornado somente uma vez na criação.
- As chaves de provedor upstream são armazenadas criptografadas com AES-256-GCM; a perda da chave mestra torna a recuperação impossível.
- O cookie de sessão é criptografado com iron-session e configurado com os atributos HttpOnly, Secure e SameSite=Lax.
## Documentação e operação
O projeto fornece documentação detalhada de arquitetura, modelo de dados, rotas de API, testes e implantação. Também inclui scripts de operação, como os comandos bootstrap-admin, reset-password, rotate-key e list-usage.
## Licença
MIT
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.