Configuración

PgArachne carga la configuración desde variables de entorno o un archivo.

Note: schema.sql intenta crear el rol pgarachne_admin y concederlo a pgarachne. Sin privilegios de superusuario, la creación se omite. Crea el rol y el grant manualmente si es necesario.
El usuario proxy (DB_USER) debe ser miembro de pgarachne y pgarachne_admin para verificar y crear tokens API.
Nota de Seguridad: PgArachne no maneja contraseñas de base de datos en el archivo de configuración. Confía en el mecanismo estándar de archivo .pgpass de PostgreSQL (o la variable del sistema PGPASSWORD) para la autenticación.
Consejo: Si PgArachne está detrás de un reverse proxy, configura TRUSTED_PROXIES para resolver bien la IP del cliente y evitar spoofing del rate limit.
Orden de Búsqueda: Si no se especifica ningún archivo de configuración a través de CLI, busca en:
  1. Directorio actual: ./pgarachne.env (Todos los SO)
  2. Configuración de usuario:
    • Linux / macOS: ~/.config/pgarachne/pgarachne.env
    • Windows: %USERPROFILE%\.config\pgarachne\pgarachne.env
  3. Configuración del sistema: /etc/pgarachne/pgarachne.env (Solo Linux / macOS)

Ejemplo de configuración mínima

Esto es todo lo que necesitas para empezar:

DB_HOST=localhost
DB_PORT=5432
DB_USER=pgarachne
JWT_SECRET=change_me_to_something_secure

Referencia de configuración

VariableRequeridoDescripción
Conexión a Base de Datos
DB_HOSTDirección del servidor PostgreSQL (ej. localhost).
DB_PORTPuerto de la base de datos.
DB_USEREl usuario de base de datos con el que se conecta PgArachne.
DB_SSLMODENoModo SSL de PostgreSQL. Por defecto: disable.
DB_SSLROOTCERTNoRuta al certificado raíz de CA (PEM).
DB_SSLCERTNoRuta al certificado de cliente (PEM).
DB_SSLKEYNoRuta a la clave privada del cliente (PEM).
Servidor HTTP
HTTP_PORTNoPuerto para escuchar. Por defecto: 8080.
ALLOWED_ORIGINSNoConfiguración de CORS. Lista separada por comas de dominios permitidos (ej. https://miapp.com). Por defecto: *.
STATIC_FILES_PATHNoRuta absoluta para servir archivos estáticos (Explorer/Frontend).
Seguridad (JWT)
JWT_SECRETUna cadena larga y aleatoria utilizada para firmar tokens de sesión.
JWT_EXPIRY_HOURSNoValidez de la sesión en horas. Por defecto: 8.
LOGIN_RATE_LIMITNoMáximo de intentos de login por ventana. Por defecto: 5. Usa 0 para desactivar.
LOGIN_RATE_WINDOWNoDuración de la ventana de rate limit. Por defecto: 1m.
El rate limit de login es por instancia (en memoria). En despliegues con varias instancias se requiere un limitador compartido.
TRUSTED_PROXIESNoIPs/CIDR de proxies de confianza para X-Forwarded-For. Separado por comas.
MAX_REQUEST_BYTESNoTamaño máximo del body en bytes. Por defecto: 2097152.
SSE_MAX_CHANNELSNoMáximo de canales por conexión SSE. Por defecto: 8.
SSE_MAX_CLIENTSNoMáximo de clientes SSE simultáneos por base de datos. Por defecto: 1000.
SSE_CLIENT_BUFFERNoBuffer SSE por cliente (número de mensajes). Por defecto: 64.
SSE_SEND_TIMEOUTNoTiempo máximo de espera al enviar a un cliente lento. Por defecto: 2s.
SSE_HEARTBEATNoIntervalo de heartbeat para SSE. Por defecto: 20s.
SSE_IDLE_TIMEOUTNoTimeout de inactividad sin notificaciones. Por defecto: 90s.
Logging
LOG_LEVELNoVerbosidad: DEBUG, INFO, WARN, ERROR. Por defecto: INFO.
LOG_OUTPUTNoDónde escribir los logs: stdout o ruta del archivo.

Inicia el servidor:

./pgarachne -config .env