Ir al contenido

Instalar Lockatus

Lockatus se distribuye como una única imagen Docker más una base de datos Postgres. Genera su clave de firma RS256 en el primer arranque (almacenada cifrada en la base de datos) y siembra el primer superadmin — así que un solo docker compose up te da un hub de identidad funcionando.

Docker

El camino soportado. El docker compose incluido levanta el hub y Postgres juntos.

Una clave maestra

LOCKATUS_SECRET cifra los secretos TOTP y firma la sesión del hub. Genera 32 bytes aleatorios.

Una URL de issuer alcanzable

LOCKATUS_ISSUER es la URL pública que llevan los tokens — debe ser alcanzable tanto desde el navegador como desde las apps federadas.

Ventana de terminal
git clone https://github.com/diegoparras/lockatus.git && cd lockatus
cp .env.example .env # set POSTGRES_PASSWORD and LOCKATUS_SECRET
docker compose up -d --build
docker compose logs lockatus # the generated admin password is printed once here
# → http://localhost:8081

Genera la clave maestra con:

Ventana de terminal
node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"
  1. Abre http://localhost:8081 e inicia sesión como LOCKATUS_ADMIN_EMAIL con la contraseña impresa una sola vez en los logs (o la que hayas definido en LOCKATUS_ADMIN_PASS).
  2. En Acceso, la matriz muestra quién tiene qué rol en cada app. Crea usuarios y asigna roles.
  3. Opcionalmente registra dos factores para tu cuenta, y agrega cualquier nueva app de la familia desde la matriz con el botón + App.
RoutePropósito
GET /healthSalud del servicio (y estado de la base de datos).
GET /.well-known/openid-configurationMetadatos del issuer para el discovery OIDC.
GET /jwks.jsonLa clave pública, para que las apps verifiquen los tokens offline.
VariableDefaultDescripción
POSTGRES_PASSWORD(requerido)Contraseña de la base de datos.
LOCKATUS_SECRET(requerido)Clave maestra — cifra los secretos TOTP y firma la sesión del hub.
LOCKATUS_ISSUERhttp://localhost:8081URL pública del issuer embebida en los tokens.
LOCKATUS_ADMIN_EMAILadmin@lockatus.localEl primer superadmin.
LOCKATUS_ADMIN_PASS(vacío)Vacío → se genera y se imprime una sola vez en los logs.
LOCKATUS_SECURE_COOKIE0Define 1 detrás de TLS.
LOCKATUS_PORT8081Puerto del host.