Pular para o conteúdo

Instalar o Lockatus

O Lockatus é distribuído como uma única imagem Docker mais um banco de dados Postgres. Ele gera sua chave de assinatura RS256 no primeiro boot (armazenada criptografada no banco de dados) e semeia o primeiro superadmin — de modo que um único docker compose up lhe dá um hub de identidade funcional.

Docker

O caminho suportado. O docker compose incluído sobe o hub e o Postgres juntos.

Uma chave mestra

LOCKATUS_SECRET criptografa os segredos TOTP e assina a sessão do hub. Gere 32 bytes aleatórios.

Uma URL de issuer alcançável

LOCKATUS_ISSUER é a URL pública que os tokens carregam — ela deve ser alcançável tanto pelo navegador quanto pelos apps federados.

Terminal window
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

Gere a chave mestra com:

Terminal window
node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"
  1. Abra http://localhost:8081 e faça login como LOCKATUS_ADMIN_EMAIL com a senha exibida uma única vez nos logs (ou a que você definiu em LOCKATUS_ADMIN_PASS).
  2. Em Acesso, a matriz mostra quem tem qual papel em cada app. Crie usuários e atribua papéis.
  3. Opcionalmente, inscreva dois fatores para a sua conta, e adicione qualquer novo app da família a partir da matriz com o botão + App.
RouteFinalidade
GET /healthSaúde do serviço (e status do banco de dados).
GET /.well-known/openid-configurationMetadados do issuer para o discovery OIDC.
GET /jwks.jsonA chave pública, para que os apps verifiquem os tokens offline.
VariableDefaultDescrição
POSTGRES_PASSWORD(required)Senha do banco de dados.
LOCKATUS_SECRET(required)Chave mestra — criptografa os segredos TOTP e assina a sessão do hub.
LOCKATUS_ISSUERhttp://localhost:8081URL pública do issuer embutida nos tokens.
LOCKATUS_ADMIN_EMAILadmin@lockatus.localO primeiro superadmin.
LOCKATUS_ADMIN_PASS(empty)Vazio → gerada e exibida uma única vez nos logs.
LOCKATUS_SECURE_COOKIE0Defina como 1 atrás de TLS.
LOCKATUS_PORT8081Porta do host.