Ctrl K
ComunidadGuías…
GITHUB · ANALIZADO

semantius-idp

Proveedor de identidad auto-alojado ligero para OAuth 2.1 / OIDC y aplicaciones internas. Gestiona autenticación, tokens JWT firmados (ES256/RS256) y actúa como proxy inverso para backends con validación offline.

Ficha actualizada 27 sept 2026, 18:40 · upstream 27 sept 2026, 18:21 · release v0.6.9

Ver códigoProblemas y ayudaRepositorio ↗
00

Qué es semantius-idp

Descripción editorial construida a partir del repositorio, su documentación y sus señales de mantenimiento.

Semantius IDP es un proveedor de identidad auto-alojado diseñado para aplicaciones internas que requieren gestión de usuarios, autenticación OAuth 2.1 / OpenID Connect y emisión de tokens JWT firmados. Los servidores de recursos pueden validar estos tokens offline contra el conjunto JWKS publicado sin llamadas al IdP en cada solicitud.

Incluye gestión completa de usuarios con autenticación por correo electrónico y contraseña, TOTP para doble factor, claves API por usuario y portal de autogestión. El sistema permite configuración mediante archivos JSONC (config.jsonc, oauth_clients.jsonc, roles.jsonc) que actúan como fuente de verdad, con base de datos PostgreSQL como almacén operativo reconciliado.

Funciona como proxy inverso autenticador para backends a través de rutas /gateway/<name>, convirtiendo claves API o sesiones del navegador en JWT inyectados en encabezados Authorization. Soporta despliegue GitOps con validación de configuración, logs estructurados y endpoints de salud.

CASOS DE USO
  • Autenticación centralizada para aplicaciones internas que requieren OAuth 2.1 / OIDC estándar
  • Proxy inverso autenticador para backends JWT-only como PostgREST o Neon Data API
  • Gestión de usuarios con portal de autogestión, aprobaciones y revocación de consentimientos
  • Emisión de tokens firmados ES256/RS256 validables offline sin dependencia del IdP por request
PUNTOS DESTACADOS
  • Soporta OAuth 2.1 / OIDC completo con PKCE (S256), refresh tokens rotativos y discovery RFC 8414
  • Tokens JWT siempre firmados (ES256/RS256) para validación offline sin callback al IdP en cada petición
  • Configuración mediante archivos JSONC versionables con GitOps, reproducible y diffable
  • Single container amd64/arm64 con PostgreSQL como base de datos opcional integrada o externa
  • API gateway integrado que convierte sesiones/API keys en JWT para backends sin código adicional
PRECAUCIONES
  • No es multi-tenant: una sola instancia, población única de usuarios, sin organizaciones ni equipos
  • No soporta SAML, LDAP o SCIM; OpenID Connect / OAuth 2.1 es la superficie protocolaria completa
  • Sin passkeys/WebAuthn, SMS o magic links; solo contraseña, TOTP y social sign-in (Google, GitHub, Entra)
  • Instancia única testada y soportada; réplicas accidentales seguras pero no topología medida
  • No incluye grant client_credentials en v1; para acceso scriptado usar per-user API keys
01

Perfil de infraestructura

Estimación inicial derivada del repositorio y de los servicios detectados.

CPU1 vCPUrecomendación inicial
MEMORIA1 GBRAM estimada
DISCO20 GBalmacenamiento base
COMPLEJIDADlownivel de operación
02

Despliegue detectado

Qué señales reales de instalación hemos encontrado.

Despliegue manual

Requiere IDP_SECRET (≥32 bytes) y DATABASE_URL configurados. Usar ./idp-create.sh para despliegue Docker con stack completo. Para Neon o Postgres externo, ajustar DATABASE_URL sin pooler en DATABASE_URL_ADMIN. Validar config con idp config validate antes de producción. No incluir Caddy en imagen; usar compose profile opcional para TLS/sub-path. Migraciones aplican al boot con Drizzle schema commitado.

—Dockerfile
—Compose
—One-click
03

Stack y dependencias

Componentes inferidos a partir de manifests, configuración y documentación.

FRAMEWORKS
Next.jsNode.js
SERVICIOS
PostgreSQL
BASES DE DATOS
PostgreSQL
PUERTOS
30005432
05

Puede sustituir a

Relaciones detectadas por el análisis del repositorio y su categoría.

06

Experiencia real de la comunidad

Ayuda a contrastar la estimación automática con instalaciones reales.

Todavía no hay datos comunitarios para este proyecto.