Aller au contenu

Installer Lockatus

Lockatus se livre sous la forme d’une seule image Docker accompagnée d’une base de données Postgres. Il génère sa clé de signature RS256 au premier démarrage (stockée chiffrée dans la base de données) et amorce le premier superadmin — un seul docker compose up vous donne donc un hub d’identité fonctionnel.

Docker

Le chemin recommandé. Le docker compose fourni démarre le hub et Postgres ensemble.

Une clé maître

LOCKATUS_SECRET chiffre les secrets TOTP et signe la session du hub. Générez 32 octets aléatoires.

Une URL d'émetteur joignable

LOCKATUS_ISSUER est l’URL publique que portent les jetons — elle doit être joignable à la fois depuis le navigateur et depuis les applications fédérées.

Fenêtre 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

Générez la clé maître avec :

Fenêtre de terminal
node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"
  1. Ouvrez http://localhost:8081 et connectez-vous en tant que LOCKATUS_ADMIN_EMAIL avec le mot de passe affiché une seule fois dans les logs (ou celui que vous avez défini dans LOCKATUS_ADMIN_PASS).
  2. Dans Access, la matrice montre qui détient quel rôle dans chaque application. Créez des utilisateurs et attribuez les rôles.
  3. Inscrivez éventuellement la double authentification pour votre compte, et ajoutez toute nouvelle application de la famille depuis la matrice avec le bouton + App.
RoutePurpose
GET /healthSanté du service (et état de la base de données).
GET /.well-known/openid-configurationMétadonnées de l’émetteur pour la découverte OIDC.
GET /jwks.jsonLa clé publique, pour que les applications vérifient les jetons hors ligne.
VariableDefaultDescription
POSTGRES_PASSWORD(required)Mot de passe de la base de données.
LOCKATUS_SECRET(required)Clé maître — chiffre les secrets TOTP et signe la session du hub.
LOCKATUS_ISSUERhttp://localhost:8081URL publique de l’émetteur intégrée dans les jetons.
LOCKATUS_ADMIN_EMAILadmin@lockatus.localLe premier superadmin.
LOCKATUS_ADMIN_PASS(empty)Vide → généré et affiché une seule fois dans les logs.
LOCKATUS_SECURE_COOKIE0Mettez à 1 derrière TLS.
LOCKATUS_PORT8081Port de l’hôte.