Déployez authentik 2026.8 et PostgreSQL avec Docker Compose, créez le compte administrateur par l'assistant initial, puis un premier utilisateur de test.
L’issue s’ouvre déjà remplie avec le titre et l’adresse de cette page.
Cette leçon déploie authentik 2026.8.4 avec Docker Compose, crée le compte administrateur par l'assistant initial et vérifie qu'un utilisateur ordinaire peut se connecter. Vous repartirez avec un environnement fonctionnel en une quinzaine de minutes, une compréhension des trois conteneurs et la capacité de modifier leur configuration. Prérequis : Docker et Docker Compose installés. Chaque sortie de la page a été observée le 15 octobre 2026 sur cette version, dans un navigateur Chromium.
Le serveur gère l'interface web, l'API et les flows d'authentification. Le
worker exécute les tâches asynchrones : envoi d'emails, synchronisation
LDAP, provisioning SCIM. Les deux partagent la même base PostgreSQL.
Trois fichiers suffisent : un .env qui porte les secrets, un docker-compose.yaml qui décrit les conteneurs, et le répertoire qui les contient, dont le nom devient le préfixe des conteneurs.
authentik a besoin d'une clé secrète (AUTHENTIK_SECRET_KEY) pour signer les
tokens et chiffrer les données sensibles. Cette clé doit rester stable
entre les redémarrages, sinon toutes les sessions sont invalidées. Le fichier
.env est créé lisible par vous seul (umask 077 dans un sous-shell).
Pourquoi deux conteneurs authentik ? Le server et le worker utilisent la même image Docker mais avec
une commande différente. Le serveur gère les requêtes HTTP (interface, API,
flows). Le worker exécute les tâches en arrière-plan (emails, synchro LDAP,
SCIM). Cette séparation évite qu'une tâche lourde bloque l'interface.
Version et digests. Les images sont épinglées par digest (@sha256:...),
relevé sur le registre : le tag seul peut être déplacé, le digest désigne un
contenu précis. Cette leçon est jouée sur 2026.8.4, la dernière version
publiée au 15 octobre 2026. Pour passer à une version suivante, relevez son
digest avec docker buildx imagetools inspect ghcr.io/goauthentik/server:<tag>
et rejouez la leçon avant de la substituer.
Avant de démarrer, détaillons les éléments clés : les variables qui portent les secrets et la connexion à la base, les volumes qui gardent les données, et les ports publiés sur votre machine.
Clé de chiffrement et de signature (tokens, sessions)
PG_PASS
Mot de passe de la base PostgreSQL
AUTHENTIK_POSTGRESQL__HOST
Hôte PostgreSQL (nom du service Docker)
AUTHENTIK_POSTGRESQL__USER
Utilisateur PostgreSQL
AUTHENTIK_POSTGRESQL__NAME
Nom de la base de données
AUTHENTIK_POSTGRESQL__PASSWORD
Mot de passe PostgreSQL
COMPOSE_PORT_HTTP, COMPOSE_PORT_HTTPS
Ports publiés sur votre machine (9000 et 9443 par défaut)
Glissez pour voir
authentik utilise le préfixeAUTHENTIK_ pour toutes ses variables. Les doubles
underscores (__) séparent les niveaux de configuration : AUTHENTIK_POSTGRESQL__HOST
correspond à postgresql.host dans la configuration interne.
Un volume nommé garde la base, et trois dossiers du répertoire du lab sont montés dans les conteneurs : ce sont eux qui survivent à un docker compose down.
Le déploiement tient en deux commandes, puis en trois vérifications : les conteneurs, la santé et les journaux. Le premier démarrage prend environ une minute, le temps des migrations de la base.
Téléchargez les images Docker
Fenêtre de terminal
dockercomposepull
Chaque image se termine par une ligne Pulled, avec son tag et son digest.
Démarrez les services
Fenêtre de terminal
dockercomposeup-d
Compose attend que PostgreSQL soit sain avant de lancer les deux autres
conteneurs. Les dernières lignes sont :
Les trois conteneurs ont un healthcheck. Pendant la première minute, le
serveur et le worker affichent (health: starting) ; attendez que les trois
soient (healthy) avant d'ouvrir le navigateur :
NAME STATUS
authentik-lab-postgresql-1 Up About a minute (healthy)
authentik-lab-server-1 Up About a minute (healthy)
authentik-lab-worker-1 Up About a minute (healthy)
Vérifiez la version dans les journaux
Les journaux d'authentik sont en JSON, une ligne par événement. La ligne
de démarrage porte la version :
Fenêtre de terminal
dockercomposelogsserver|grep-m1'"event":"authentik is starting"'
Elle contient "event":"authentik is starting","version":"2026.8.4". Le
même filtre sur worker donne la même ligne pour le worker. Au premier
démarrage, le serveur enchaîne ensuite des lignes Migration needs to be applied et Migration finished applying : c'est la création de la base.
Le compte administrateur se crée par l'assistant initial, et cet assistant ne s'ouvre qu'en passant par la racine du site. C'est le piège le plus courant de cette version : la racine redirige vers /setup, qui prépare la session, puis vers le flux initial-setup.
Ouvrez la racine du site
Rendez-vous sur http://localhost:9000/. Le navigateur est redirigé
vers /setup, puis vers http://localhost:9000/if/flow/initial-setup/,
où s'affiche le formulaire « Welcome to authentik! ».
Créez le compte administrateur
Le formulaire demande quatre champs :
Email : votre adresse
Password et Password (repeat) : un mot de passe fort, deux fois
Base URL : l'adresse publique d'authentik, déjà remplie avec
http://localhost:9000 ; gardez-la en lab
Validez. authentik enregistre l'adresse et le mot de passe sur le compte
akadmin, qui a tous les droits d'administration, et vous connecte
aussitôt : vous arrivez sur le portail utilisateur, /if/user/.
Ouvrez l'interface d'administration
L'adresse http://localhost:9000/if/admin/ mène au tableau de bord de
l'administration. L'interface suit la langue du navigateur : avec un
navigateur en français, ce tableau s'appelle Vue d'ensemble, sous le
menu Tableaux de bord (Dashboards en anglais). Il affiche notamment :
Statut du système : OK
Version : 2026.8.4, avec la mention « À jour ! »
Workers : 1
les événements récents : connexion, mot de passe défini, utilisateur écrit
Notez comment vous reconnecter
L'écran de connexion demande d'abord un identifiant, puis le mot de passe
sur un second écran. L'identifiant accepte l'email saisi à l'étape 2 ou
le nom d'utilisateur akadmin : les deux ont été vérifiés.
La sonde répond 200 quand le serveur est prêt. L'API publique renvoie la
configuration du serveur, dont la liste capabilities
(can_save_media, can_impersonate, etc.) : une réponse JSON prouve que
le serveur répond. Les autres points de l'API exigent une session ou un jeton,
et répondent 403 sans.
En fonctionnement normal, le compte vaut 0. Un simple grep -i error
remonte au contraire plus d'une centaine de lignes saines, comme
installing error formatting ou la migrationalter_validators_add_error_messages.
Pour valider le flux d'authentification complet, créez un utilisateur non
administrateur, puis connectez-vous avec lui dans une fenêtre séparée.
Ouvrez la liste des utilisateurs
Dans l'interface d'administration, menu Directory → Users
(Répertoire → Utilisateurs en français), puis le bouton New User.
Choisissez le type de compte
L'assistant Create New User propose Internal User (employé),
External User (consultant ou client) et Service Account (automate).
Choisissez Internal User : l'assistant passe aux détails.
Remplissez les détails
Username : testuser
Name : Utilisateur Test
Email : test@exemple.fr
Is active : laissé coché
Cliquez Create.
Définissez un mot de passe
Ouvrez la fiche de testuser dans la liste, puis le bouton Set password,
qui demande un seul champ. Enregistrez.
Testez la connexion
Ouvrez une fenêtre de navigation privée et allez sur
http://localhost:9000/if/user/. Connectez-vous avec testuser et son mot
de passe : vous arrivez sur le portail utilisateur, vide tant qu'aucune
application n'est configurée. Si ce compte demande /if/admin/, il est
renvoyé au portail : il n'a pas les droits d'administration.
Si le port 9000 est déjà utilisé sur votre machine, ne touchez pas au
fichier Compose : ses lignes ports lisent deux variables. Ajoutez-les au
fichier .env (ce lab a été rejoué ainsi sur 9010 et 9453) :
Fenêtre de terminal
echo"COMPOSE_PORT_HTTP=9010">>.env
echo"COMPOSE_PORT_HTTPS=9453">>.env
dockercomposeup-d
Compose recrée le serveur avec les nouveaux ports. Pensez à changer l'adresse
dans le navigateur, et la Base URL si l'assistant initial n'a pas encore
été joué.
Pour les flows de récupération de mot de passe et les invitations, authentik a
besoin d'un serveur SMTP. La documentation d'authentik décrit les variables
AUTHENTIK_EMAIL__* à ajouter dans .env. Cette configuration n'a pas été
rejouée dans ce lab :
Toutes les options d'authentik sont configurables via des variables
d'environnement préfixées AUTHENTIK_. Les doubles underscores correspondent
aux niveaux de la configuration YAML :
Chaque ligne du tableau correspond à un comportement observé sur authentik 2026.8.4 pendant le rejeu de cette leçon. Lisez le message exact avant de changer un réglage.
Symptôme
Cause probable
Solution
required variable AUTHENTIK_SECRET_KEY is missing a value: secret key required au docker compose up
la clé manque dans .env
regénérer la clé (étape 2 de la préparation), puis relancer
/if/flow/initial-setup/ en 404 juste après le démarrage
le premier démarrage n'est pas terminé : la sonde /-/health/ready/ répond déjà 200 alors que le flux n'existe pas encore
attendre que les trois conteneurs soient (healthy), puis passer par la racine
Access the authentik setup by navigating to http://localhost:9000/
Pour diagnostiquer un problème, les journaux sont le premier réflexe. Chaque
ligne est un objet JSON : le champ event dit ce qui s'est passé, level sa
gravité.
Six questions tirées parmi huit vérifient que vous savez déployer authentik et le prendre en main : rôle du worker, clé secrète, assistant initial, configuration et nettoyage.
Contrôle de connaissances
Validez vos connaissances avec ce quiz interactif
6 questions
6 min.
70% requis
Informations
Le chronomètre démarre au clic sur Démarrer
Questions à choix multiples, vrai/faux et réponses courtes
Vous pouvez naviguer entre les questions
Les résultats détaillés sont affichés à la fin
Lance le quiz et démarre le chronomètre
⏱️--:--
0 / 6
Vérification
(0/0)
--:--
0%
0Correctes
0À revoir
0:00Temps
-Niveau
Score par domaine
Un domaine regroupe plusieurs guides et reçoit plusieurs questions : son score est plus fiable qu'un score par thème, qui porte souvent sur une seule question.
Bilan
Points forts
Aucun sujet réussi à 80 % sur au moins deux questions pour l’instant.
Points faibles
Aucun sujet sous le seuil de réussite.
À faire ensuite
Des indices pour retenter votre chance ?
Nouveau quiz complet avec des questions aléatoires