Configuração
O PgArachne carrega a configuração a partir de variáveis de ambiente ou de um arquivo.
Note:
O usuário proxy (
schema.sql tenta criar o papel pgarachne_admin e concedê-lo a pgarachne. Sem privilégios de superusuário, a criação é ignorada. Crie o papel e o grant manualmente se necessário.O usuário proxy (
DB_USER) deve ser membro de pgarachne e pgarachne_admin para validar e criar tokens de API.Nota de Segurança: O PgArachne não lida com senhas do banco de dados no arquivo
de configuração. Ele depende do mecanismo padrão de arquivo
.pgpass do PostgreSQL (ou da
variável de sistema PGPASSWORD) para autenticação.Dica: Se o PgArachne estiver atrás de um reverse proxy, defina
TRUSTED_PROXIES para resolver corretamente o IP do cliente e evitar spoofing do rate limit.Ordem de Busca: Se nenhum arquivo de configuração for especificado via CLI, ele busca
em:
- Diretório atual:
./pgarachne.env(Todos os SOs) - Configuração do usuário:
- Linux / macOS:
~/.config/pgarachne/pgarachne.env - Windows:
%USERPROFILE%\.config\pgarachne\pgarachne.env
- Linux / macOS:
- Configuração do sistema:
/etc/pgarachne/pgarachne.env(Somente Linux / macOS)
Exemplo de Configuração Mínima
É tudo o que você precisa para começar:
DB_HOST=localhost
DB_PORT=5432
DB_USER=pgarachne
JWT_SECRET=change_me_to_something_secureReferência de Configuração
| Variável | Obrigatório | Descrição |
|---|---|---|
| Conexão com Banco de Dados | ||
DB_HOST | Sim | Endereço do servidor PostgreSQL (ex: localhost). |
DB_PORT | Sim | Porta do banco de dados. |
DB_USER | Sim | O usuário do banco de dados com o qual o PgArachne se conecta. |
DB_SSLMODE | Não | Modo SSL do PostgreSQL. Padrão: disable. |
DB_SSLROOTCERT | Não | Caminho do certificado raiz da CA (PEM). |
DB_SSLCERT | Não | Caminho do certificado do cliente (PEM). |
DB_SSLKEY | Não | Caminho da chave privada do cliente (PEM). |
| Servidor HTTP | ||
HTTP_PORT | Não | Porta para escutar. Padrão: 8080. |
ALLOWED_ORIGINS | Não | Configurações de CORS. Lista separada por vírgulas de domínios permitidos (ex:
https://meuapp.com).
Padrão: *. |
STATIC_FILES_PATH | Não | Caminho absoluto para servir arquivos estáticos (Explorer/Frontend). |
| Segurança (JWT) | ||
JWT_SECRET | Sim | Uma string longa e aleatória usada para assinar tokens de sessão. |
JWT_EXPIRY_HOURS | Não | Validade da sessão em horas. Padrão: 8. |
LOGIN_RATE_LIMIT | Não | Máximo de tentativas de login por janela. Padrão: 5. Use 0 para desativar. |
LOGIN_RATE_WINDOW | Não | Duração da janela do rate limit. Padrão: 1m. |
| O rate limit de login é por instância (em memória). Em várias instâncias, use um limitador compartilhado. | ||
TRUSTED_PROXIES | Não | Proxies confiáveis (IP/CIDR) para X-Forwarded-For. Separados por vírgula. |
MAX_REQUEST_BYTES | No | Tamanho máximo do body em bytes. Padrão: 2097152. |
SSE_MAX_CHANNELS | No | Máximo de canais por conexão SSE. Padrão: 8. |
SSE_MAX_CLIENTS | No | Máximo de clientes SSE simultâneos por banco de dados. Padrão: 1000. |
SSE_CLIENT_BUFFER | No | Buffer SSE por cliente (número de mensagens). Padrão: 64. |
SSE_SEND_TIMEOUT | No | Tempo máximo de espera ao enviar para cliente lento. Padrão: 2s. |
SSE_HEARTBEAT | No | Intervalo de heartbeat para SSE. Padrão: 20s. |
SSE_IDLE_TIMEOUT | No | Timeout de inatividade sem notificações. Padrão: 90s. |
| Logging | ||
LOG_LEVEL | Não | Verbosidade: DEBUG, INFO, WARN, ERROR.
Padrão: INFO. |
LOG_OUTPUT | Não | Onde gravar logs: stdout ou caminho do arquivo. |
Inicie o servidor:
./pgarachne -config .env