Skip to content

PointSav Documentation

The engineering library for the PointSav platform — operating systems and services for regulated businesses that own their data, their AI, and their record-keeping outright. Where the monorepo holds the code, this wiki holds the reasoning: architecture, services, security, and the governance commitments that bind future development.

Cómo configurar el gateway Doorman

Requisitos previos

  • El binario slm-doorman-server (o la unidad systemd slm-doorman) disponible en el host de despliegue
  • El binario del modelo SLM local presente en la ruta que espera el Tier A (véase local-slm.service)
  • Una sesión de terminal en el host donde se ejecutará Doorman
  • Acceso de red a un endpoint Yo-Yo en GCE, si se desea cómputo de ráfaga de Tier B (opcional)
  • Claves de API de Anthropic, Gemini u OpenAI, si se desea el respaldo externo de Tier C (opcional)

Propósito

El gateway Doorman enruta las solicitudes de inferencia y de audit-proxy hacia uno de tres niveles: Tier A (un modelo pequeño local), Tier B (cómputo de ráfaga Yo-Yo en GCE, opcional) o Tier C (APIs de proveedores externos, opcional). Doorman se configura íntegramente mediante variables de entorno — no existe ningún archivo de configuración. Un Doorman con solo el Tier A configurado es un despliegue completo y válido (el "modo community-tier"); los Tiers B y C son aditivos, no obligatorios.

Procedimiento

  1. Defina la dirección de escucha. Doorman escucha en SLM_BIND_ADDR (por defecto 127.0.0.1:9080 — solo loopback; coloque delante un proxy inverso con terminación TLS para cualquier tráfico que no sea del mismo host).

  2. Defina el endpoint y el modelo del Tier A (local). SLM_LOCAL_ENDPOINT debe coincidir con la dirección a la que se vincula local-slm.service (por defecto http://127.0.0.1:8080). SLM_LOCAL_MODEL debe coincidir con el nombre de archivo del modelo que ese servicio cargó al arrancar (por ejemplo Olmo-3-1125-7B-Think-Q4_K_M.gguf). Estas dos variables son las únicas necesarias para que Doorman arranque y atienda solicitudes.

  3. Opcional: defina las variables del Tier B (Yo-Yo). Deje todas las variables SLM_YOYO_* vacías o sin definir para permanecer en modo community-tier (solo Tier A) — Doorman arranca sin problemas en cualquiera de los dos casos. Para habilitar el Tier B, defina como mínimo SLM_YOYO_ENDPOINT (la URL de inferencia Yo-Yo en GCE) y SLM_YOYO_BEARER (un token bearer estático para la ruta de desarrollo/staging; un despliegue real con GCP Workload Identity lo sustituye por un token específico del proveedor). SLM_YOYO_MODEL nombra el modelo servido en ese endpoint.

  4. Opcional: defina las variables del Tier C (externo). Cada proveedor (SLM_TIER_C_ANTHROPIC_*, SLM_TIER_C_GEMINI_*, SLM_TIER_C_OPENAI_*) necesita su propio endpoint, clave de API y tarifas de entrada/salida por millón de tokens. Todo proveedor sin definir permanece deshabilitado; la ruta de audit-proxy (POST /v1/audit/proxy) devuelve 503 con un mensaje explicativo de "unconfigured" hasta que al menos uno esté configurado — este es el comportamiento correcto y esperado, no un estado de error.

  5. Coloque las variables ya definidas en un EnvironmentFile (por ejemplo /etc/local-doorman/local-doorman.env) y apunte la directiva EnvironmentFile= de la unidad systemd hacia él, o añada los valores como líneas Environment= en línea dentro de un drop-in de la unidad. Los valores del EnvironmentFile tienen prioridad sobre cualquier línea Environment= en línea que ya exista en la unidad.

  6. Inicie el servicio:

    sudo systemctl start slm-doorman
    

Resultado esperado

Doorman arranca y comienza a aceptar solicitudes en SLM_BIND_ADDR, con independencia de si el Tier B o el Tier C están configurados. GET /healthz devuelve 200 de inmediato como comprobación de vida. GET /readyz devuelve el estado de preparación junto con el estado de los niveles una vez que Doorman ha terminado de construir su enrutador interno.

Verificación

Compruebe la preparación y el estado de los niveles:

curl http://127.0.0.1:9080/readyz

Una respuesta sana con solo el Tier A ("community-tier") incluye:

{
  "tier_a": true,
  "tier_b": false,
  "tier_c": false,
  "has_local": true,
  "has_yoyo": false,
  "has_external": false,
  "ai_available": true
}

tier_a/tier_b/tier_c (y sus equivalentes has_local/has_yoyo/has_external) son booleanos, no una cadena de estado de circuito — un nivel marca true cuando su dependencia es alcanzable, false en caso contrario. ai_available es true siempre que cualquiera de los niveles esté operativo. El Tier B expone además su propio detalle de circuit-breaker en GET /v1/status/yoyo (estados de circuito de los nodos Yo-Yo) — una solicitud de Tier B que encuentre un circuito Yo-Yo abierto recurre automáticamente al Tier A en lugar de fallar.

Confirme el enrutamiento, no solo la preparación, enviando una solicitud real:

curl -X POST http://127.0.0.1:9080/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{"messages":[{"role":"user","content":"Say hello in one word."}]}'

Reversión

Detenga el servicio y elimine o comente las variables que haya cambiado:

sudo systemctl stop slm-doorman

Los Tiers B y C son aditivos y pueden deshabilitarse de forma independiente — vaciar SLM_YOYO_ENDPOINT o la clave de un proveedor SLM_TIER_C_* devuelve Doorman al modo community-tier en el siguiente reinicio sin afectar al Tier A.

Próximos pasos

Véase también

Cite this record: /wiki/configure-doorman — revision 3e373253, last updated 4 August 2026.

Important Information

Estructura corporativa. PointSav Digital Systems ("PointSav") es actualmente un nombre comercial de Woodfine Capital Projects Inc. ("Woodfine"), con previsión de convertirse en una subsidiaria de propiedad absoluta de Woodfine tras su incorporación. PointSav no ofrece, vende ni solicita por sí mismo valor alguno. Toda oferta de valores asociada a las soluciones inmobiliarias de tenencia directa de Woodfine se realiza exclusivamente por parte de Woodfine, y únicamente por medio del Memorando de Colocación Privada aplicable.

Sin asesoramiento de inversión. El contenido de este wiki se ofrece con fines de ingeniería, operativos, de investigación y de desarrollo. Nada de lo que figura en este wiki constituye asesoramiento de inversión ni una solicitud para invertir en ninguna sociedad o solución de tenencia directa de Woodfine.

Propiedad intelectual. El nombre, el nombre comercial, el logotipo y las marcas de PointSav, junto con todos los productos, servicios y ofertas actuales y futuros de las marcas PointSav y Totebox — así como el software, el código fuente, la documentación, el sistema de diseño y todos los materiales relacionados — son propiedad de Woodfine y sus filiales, salvo los componentes identificados como de código abierto. No se otorga ningún derecho salvo el expresamente establecido en una licencia o acuerdo por escrito. El aviso de marcas completo aparece en el pie de página de cada página de este sitio.

Componentes de código abierto. Algunas partes de la plataforma se ofrecen bajo licencias de código abierto permisivas identificadas en el repositorio correspondiente. El uso de esos componentes se rige por los términos de sus respectivas licencias.

Sin garantía; uso informativo. El contenido de este wiki se ofrece únicamente con fines informativos generales y no constituye una declaración, garantía ni compromiso respecto de la funcionalidad, disponibilidad, precio o hoja de ruta de ningún producto. Algunos artículos describen características, capacidades e hitos planificados o previstos — el lenguaje como "planificado", "previsto", "objetivo", "puede" y "esperado" marca este contenido prospectivo, que está sujeto a cambios y no constituye un compromiso respecto del rendimiento futuro.

Confidencialidad. Cuando un artículo describiría un detalle operativo o de implementación no destinado a divulgación pública, ese artículo no se publica en este wiki. El contenido aquí es documentación de ingeniería de uso general, no configuración específica de clientes.

Jurisdicción. Woodfine Capital Projects Inc. está constituida en Columbia Británica, Canadá. Las referencias a la Sovereign Data Foundation en este wiki describen una iniciativa planificada o prevista únicamente, no una titular de capital actual ni un órgano de gobierno activo.

Cambios a este aviso. PointSav podrá actualizar este aviso periódicamente; rige la versión publicada en esta página.

No es un sistema de presentación de documentos. Este wiki no es un sistema de presentación de valores, un repositorio de divulgación electrónica ni un sustituto de SEDAR+ ni de ningún otro sistema de presentación regulatorio. Las presentaciones formales de valores se realizan a través del sistema de presentación regulatorio correspondiente, no a través de este wiki.

Descargo completo. Este aviso complementa, y no sustituye, el artículo completo de Avisos Legales. En caso de cualquier conflicto, prevalece el artículo de Avisos Legales.

Read the full disclaimer →