Configuración
PgArachne carga la configuración desde variables de entorno o un archivo.
Note:
El usuario proxy (
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:
- Directorio actual:
./pgarachne.env(Todos los SO) - Configuración de usuario:
- Linux / macOS:
~/.config/pgarachne/pgarachne.env - Windows:
%USERPROFILE%\.config\pgarachne\pgarachne.env
- Linux / macOS:
- 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_secureReferencia de configuración
| Variable | Requerido | Descripción |
|---|---|---|
| Conexión a Base de Datos | ||
DB_HOST | Sí | Dirección del servidor PostgreSQL (ej. localhost). |
DB_PORT | Sí | Puerto de la base de datos. |
DB_USER | Sí | El usuario de base de datos con el que se conecta PgArachne. |
DB_SSLMODE | No | Modo SSL de PostgreSQL. Por defecto: disable. |
DB_SSLROOTCERT | No | Ruta al certificado raíz de CA (PEM). |
DB_SSLCERT | No | Ruta al certificado de cliente (PEM). |
DB_SSLKEY | No | Ruta a la clave privada del cliente (PEM). |
| Servidor HTTP | ||
HTTP_PORT | No | Puerto para escuchar. Por defecto: 8080. |
ALLOWED_ORIGINS | No | Configuración de CORS. Lista separada por comas de dominios permitidos (ej. https://miapp.com).
Por defecto: *. |
STATIC_FILES_PATH | No | Ruta absoluta para servir archivos estáticos (Explorer/Frontend). |
| Seguridad (JWT) | ||
JWT_SECRET | Sí | Una cadena larga y aleatoria utilizada para firmar tokens de sesión. |
JWT_EXPIRY_HOURS | No | Validez de la sesión en horas. Por defecto: 8. |
LOGIN_RATE_LIMIT | No | Máximo de intentos de login por ventana. Por defecto: 5. Usa 0 para desactivar. |
LOGIN_RATE_WINDOW | No | Duració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_PROXIES | No | IPs/CIDR de proxies de confianza para X-Forwarded-For. Separado por comas. |
MAX_REQUEST_BYTES | No | Tamaño máximo del body en bytes. Por defecto: 2097152. |
SSE_MAX_CHANNELS | No | Máximo de canales por conexión SSE. Por defecto: 8. |
SSE_MAX_CLIENTS | No | Máximo de clientes SSE simultáneos por base de datos. Por defecto: 1000. |
SSE_CLIENT_BUFFER | No | Buffer SSE por cliente (número de mensajes). Por defecto: 64. |
SSE_SEND_TIMEOUT | No | Tiempo máximo de espera al enviar a un cliente lento. Por defecto: 2s. |
SSE_HEARTBEAT | No | Intervalo de heartbeat para SSE. Por defecto: 20s. |
SSE_IDLE_TIMEOUT | No | Timeout de inactividad sin notificaciones. Por defecto: 90s. |
| Logging | ||
LOG_LEVEL | No | Verbosidad: DEBUG, INFO, WARN, ERROR.
Por defecto: INFO. |
LOG_OUTPUT | No | Dónde escribir los logs: stdout o ruta del archivo. |
Inicia el servidor:
./pgarachne -config .env