📍 Article principal de la série : Authentik 2026 : guide pratique.
Trente minutes pour passer d’un VPS vide à un Authentik de production avec HTTPS valide, SMTP configuré, et premier compte admin. Ce tutoriel utilise Coolify v4 sur Hetzner CX23 (4,51 €/mois). Méthode validée chez plusieurs PME francophones d’Afrique de l’Ouest.
Prérequis
- VPS Hetzner CX23 minimum (2 vCPU, 4 GB RAM) sous Ubuntu 22.04 LTS / Debian 12.
- Coolify v4 installé.
- Nom de domaine DNS A pointant vers VPS :
auth.votre-entreprise.com. - Niveau attendu : intermédiaire.
- Temps estimé : 30 à 45 minutes.
Étape 1 — Préparer le DNS
dig +short auth.votre-entreprise.com # Doit retourner l'IP du VPS
Cloudflare proxy en gris pendant l’émission Let’s Encrypt.
Étape 2 — Créer le service Authentik dans Coolify
Resources → + New → Service → rechercher « Authentik ». Coolify déploie le template officiel (v2026.2 stable). Nom : authentik-prod. Server : Hetzner CX23. Project : Production.
Étape 3 — Variables d’environnement
AUTHENTIK_SECRET_KEY=générez-une-clé-aléatoire-de-50-caractères
AUTHENTIK_ERROR_REPORTING__ENABLED=false
AUTHENTIK_LOG_LEVEL=info
AUTHENTIK_REDIS__HOST=authentik-redis
AUTHENTIK_POSTGRESQL__HOST=authentik-postgres
AUTHENTIK_POSTGRESQL__USER=authentik
AUTHENTIK_POSTGRESQL__PASSWORD=mot-de-passe-fort
AUTHENTIK_POSTGRESQL__NAME=authentik
AUTHENTIK_EMAIL__HOST=smtp-relay.brevo.com
AUTHENTIK_EMAIL__PORT=587
AUTHENTIK_EMAIL__USERNAME=votre-login-brevo
AUTHENTIK_EMAIL__PASSWORD=votre-clé-api-brevo
AUTHENTIK_EMAIL__USE_TLS=true
AUTHENTIK_EMAIL__FROM=auth@votre-entreprise.com
Étape 4 — Configurer le domaine HTTPS
Onglet Domains : https://auth.votre-entreprise.com. Coolify configure Traefik + Let’s Encrypt automatiquement.
Étape 5 — Lancer le déploiement
Cliquer Deploy. Coolify pull les 4 images (server, worker, postgres, redis) et démarre. Comptez 3-4 minutes au premier déploiement.
Étape 6 — Premier compte administrateur
Ouvrir https://auth.votre-entreprise.com/if/flow/initial-setup/. L’écran de setup propose la création du premier admin (email + mot de passe 16+ caractères). Saisir, valider. Vous êtes connecté à l’admin panel.
Étape 7 — Activer MFA pour l’admin
Settings → Tokens & App passwords → MFA Authenticator Setup. Scanner le QR code avec Aegis ou Authy. Saisir le code 6 chiffres. MFA activé. Recommandé immédiatement, avant tout autre setup.
Étape 8 — Créer une première Application (test)
Applications → Create → Type : OAuth2/OpenID Provider. Nom : test-app. Slug : test-app. Redirect URI : https://test.exemple.com/callback. Note l’client_id et client_secret.
Étape 9 — Tester le flow login
Ouvrir un navigateur incognito. URL :
https://auth.votre-entreprise.com/application/o/authorize/?response_type=code&client_id=CLIENT_ID&redirect_uri=https://test.exemple.com/callback&scope=openid profile email
Saisir login admin + MFA. Redirection vers test.exemple.com/callback?code=.... Cela confirme que le Provider OIDC fonctionne.
Erreurs fréquentes
| Erreur | Cause | Solution |
|---|---|---|
| 500 Internal Server Error initial | Migrations Postgres pas terminées | Attendre 60 secondes + refresh |
| Email reset jamais reçu | SMTP mal configuré | Vérifier logs : docker logs authentik-server |
| SECRET_KEY trop court | < 50 caractères | Régénérer avec openssl rand -base64 50 |
| Redis connection refused | Container redis pas up | Vérifier statut Coolify |
| UI ne charge pas (CORS) | Hostname différent dans config | Vérifier AUTHENTIK_HOST |
Mise en pratique en environnement ouest-africain
Trois ajustements. SMTP fiable depuis Afrique : Brevo (300 emails/jour gratuit) ou Resend (3000/mois gratuit) garantissent délivrabilité vers Gmail, Outlook, Yahoo africains. Datacenter de proximité : Hetzner Falkenstein ou OVH Roubaix offrent 90-100 ms ping depuis Dakar/Casablanca. Sauvegardes obligatoires : pg_dump + restic vers B2 toutes les 6 heures, sans exception.
Tutoriels frères
FAQ
Authentik consomme combien de RAM ? Server + worker + Postgres + Redis = ~1.5 Go au repos. Confortable sur CX23 (4 Go).
Mise à jour Authentik ? Coolify : Deployments → Pull latest image → Redeploy. Sauvegarder Postgres avant chaque update majeure.
HTTP 502 après déploiement ? Worker pas encore prêt. Attendre logs « Worker ready » avant test.
Plusieurs admins ? Oui, créer plusieurs users avec rôle akadmin. Recommandé pour bus factor.
Branding personnalisé ? Tenants → modifier logo, couleurs, terms of service par domaine.
Lectures complémentaires
- 🔝 Retour au guide général : guide pratique Authentik 2026
- Documentation : goauthentik.io/docs
Hébergement recommandé pour les lecteurs
Si vous n’avez pas encore d’hébergeur, Hostinger est celui que nous utilisons et que nous recommandons après plusieurs années d’usage.
Lien d affiliation. Si vous achetez via ce lien, le blog reçoit une petite commission sans surcoût pour vous.
Etape 1 : Preparer le VPS Coolify et le sous-domaine auth
Authentik est un fournisseur d’identite open source qui remplace Keycloak avec une UI plus moderne et une consommation memoire moindre (300 a 500 Mo contre 1 Go pour Keycloak). Pour le deployer sur Coolify, il faut un VPS avec au moins 4 Go de RAM (8 Go recommandes si vous comptez 50 utilisateurs ou plus). Sur Hetzner CX22 a 4,15 EUR/mois (2 723 FCFA) le compromis est correct pour un usage equipe a Dakar ou Abidjan.
# Verifier les ressources Coolify disponibles
free -h
df -h /var/lib/docker
# Creer le sous-domaine A record
auth.example.sn IN A 91.107.X.X
# TTL 300 pour permettre des ajustements rapides
Attendez la propagation DNS (verifier avec dig auth.example.sn) avant de creer la ressource Coolify. Sans propagation, Let’s Encrypt echoue au challenge HTTP-01 et le HTTPS ne s’active jamais.
Etape 2 : Creer la ressource Authentik via le template Coolify
Coolify v4 inclut Authentik dans sa bibliotheque de templates One-Click. Dans l’interface, Resources puis New Resource puis Service puis taper authentik dans le filtre. Le template clone le docker-compose officiel et pre-remplit les variables sensibles. Attention : le template par defaut utilise Authentik 2024.02 obsolete. Verifiez la version dans Settings et passez a 2025.10.0 stable.
# Variables d'environnement a editer dans Coolify
AUTHENTIK_SECRET_KEY=$(openssl rand -base64 60 | tr -d '\n')
PG_PASS=$(openssl rand -base64 36 | tr -d '\n')
AUTHENTIK_BOOTSTRAP_PASSWORD=ChangeMeAprèsPremierLogin2026!
AUTHENTIK_BOOTSTRAP_TOKEN=$(openssl rand -hex 30)
AUTHENTIK_BOOTSTRAP_EMAIL=admin@example.sn
Sauvegardez ces 4 valeurs dans un gestionnaire de mots de passe (Bitwarden self-hosted ideal). Le AUTHENTIK_BOOTSTRAP_PASSWORD ne fonctionne qu’au premier demarrage : si vous l’oubliez, il faut reinitialiser via la commande akadm dans le container.
Etape 3 : Configurer le domaine et activer HTTPS Let’s Encrypt
Dans la fiche de la ressource Authentik, onglet Domains, ajoutez https://auth.example.sn. Coolify configure automatiquement Traefik (ou Caddy selon la version) pour generer le certificat Let’s Encrypt. Le challenge HTTP-01 utilise le port 80 qui doit etre libre et atteignable depuis l’exterieur (verifier le firewall Hetzner ou Contabo).
# Verifier la generation du certificat dans les logs
docker logs coolify-proxy 2>&1 | grep -i acme | tail -20
# Tester le HTTPS depuis l'exterieur
curl -vI https://auth.example.sn 2>&1 | grep -E 'subject|issuer|HTTP'
Le retour doit afficher issuer: CN=R10, O=Let's Encrypt et un HTTP/2 200. Si le certificat reste sur le selfsigned, c’est generalement le DNS qui ne pointe pas encore. Attendez 5 minutes et redemarrez la ressource pour relancer le challenge ACME.
Etape 4 : Premier login et durcissement du compte admin
Connectez-vous a https://auth.example.sn avec akadmin et le bootstrap password. Premier reflexe : changer le mot de passe via l’icone profil puis activer le 2FA TOTP avec une appli compatible (Aegis sur Android, Raivo sur iOS). Ensuite, creez un deuxieme compte admin de secours sur une cle materielle FIDO2 (YubiKey 5 a 50 EUR / 32 800 FCFA, Token2 a 25 EUR alternative).
# Activer le 2FA TOTP via API (alternative a l'UI)
curl -X POST https://auth.example.sn/api/v3/authenticators/totp/ \
-H "Authorization: Bearer $AUTHENTIK_BOOTSTRAP_TOKEN" \
-H "Content-Type: application/json"
Sans 2FA, un Authentik expose sur internet est une cible de choix : un seul compte admin compromis livre tous les services derriere. Le 2FA materiel evite aussi le phishing par faux portail SSO.
Etape 5 : Creer un Provider OIDC pour Nextcloud
OIDC (OpenID Connect) est le protocole standard pour SSO web moderne, plus simple que SAML. Dans Authentik, Applications puis Providers puis Create. Choisir OAuth2/OpenID Provider. Les parametres critiques : Client Type Confidential (genere un client secret), Redirect URIs https://cloud.example.sn/apps/user_oidc/code, Signing Key authentik Self-signed Certificate.
# Recuperer client_id et client_secret apres creation
client_id : 5a8X9YbC... (visible dans la fiche Provider)
client_secret : (clic sur Edit puis revele)
# Endpoints OIDC standards
Discovery URL : https://auth.example.sn/application/o/nextcloud/.well-known/openid-configuration
Creez ensuite l’Application liee qui rend le Provider visible dans le portail utilisateur. Slug nextcloud, Launch URL https://cloud.example.sn. Le signal de reussite : l’application apparait dans la grille du portail Authentik apres reconnexion.
Etape 6 : Cote Nextcloud, installer et configurer user_oidc
Sur Nextcloud (deja deploye sur Coolify ou ailleurs), installez l’app user_oidc depuis le store officiel. Ouvrez Parametres puis Authentification puis OpenID Connect. Cliquez Register new provider et collez les valeurs Authentik. Mappage : sub vers OIDC sub, email vers email, displayname vers name.
# Test rapide depuis CLI Nextcloud
sudo -u www-data php /var/www/html/occ user_oidc:provider authentik \
--clientid="5a8X9YbC..." \
--clientsecret="SECRET" \
--discoveryuri="https://auth.example.sn/application/o/nextcloud/.well-known/openid-configuration" \
--scope="openid email profile"
Deconnectez-vous, retournez sur la page de login Nextcloud : un bouton Login with authentik apparait. Cliquez, vous etes redirige vers Authentik, vous vous authentifiez, vous revenez logge dans Nextcloud. Le compte est cree automatiquement au premier login.
Etape 7 : Ajouter Gitea derriere le meme SSO Authentik
Gitea supporte OIDC nativement depuis la version 1.20. Sur Authentik, dupliquez la procedure Etape 5 avec un nouveau Provider gitea, redirect URI https://git.example.sn/user/oauth2/authentik/callback. Cote Gitea, Site Administration puis Authentication Sources puis Add Authentication Source. Type OAuth2, OAuth2 Provider OpenID Connect.
# Variables a renseigner cote Gitea
Name : authentik
Client ID : (du Provider Gitea Authentik)
Client Secret : (idem)
OpenID Connect Auto Discovery URL : https://auth.example.sn/application/o/gitea/.well-known/openid-configuration
Icon URL : https://auth.example.sn/static/dist/assets/icons/icon.png
Apres sauvegarde, le bouton Sign in with authentik apparait sur la page de login Gitea. Le mapping email permet a Gitea de retrouver les comptes existants : pas de duplication si l’email correspond.
Etape 8 : Restreindre l’acces par groupes Authentik
Tous les utilisateurs Authentik ne doivent pas acceder a tous les services. Dans Directory puis Groups, creez devs (acces Gitea + Nextcloud), comptables (acces Nextcloud uniquement), externes (rien par defaut). Sur chaque Application, onglet Policies, ajoutez une Group Membership Policy qui filtre.
# Creer un groupe via API
curl -X POST https://auth.example.sn/api/v3/core/groups/ \
-H "Authorization: Bearer TOKEN" \
-H "Content-Type: application/json" \
-d '{"name":"devs","is_superuser":false}'
Le test : un utilisateur du groupe comptables qui clique sur l’app Gitea dans le portail recoit un message Vous n’avez pas acces. Avec ce socle, ajoutez progressivement Vaultwarden, Outline, Grafana, n8n. Voir aussi notre guide Coolify general et notre comparatif SSO equipe distribuee.
Etape 9 : Sauvegarder Authentik et planifier la restauration
Authentik stocke ses donnees dans PostgreSQL (utilisateurs, groupes, providers, applications, policies) et Redis (sessions, file de jobs). Sans sauvegarde, une corruption disque ou une mauvaise migration efface des annees de configuration SSO. Coolify expose un onglet Backups qui pousse les dumps PostgreSQL toutes les six heures vers S3 ou MinIO. Sur Wasabi a 6,99 USD par To/mois (4 580 FCFA), un mois de retention coute moins d’un euro par instance.
# Verifier que les backups tournent
coolify backups list authentik-postgres
# Test de restauration mensuel
coolify backups restore authentik-postgres --to test-instance
# Documenter le RTO
Objectif : restaurer Authentik en moins de 30 minutes
Effectuez un test de restauration tous les mois sur une instance jetable. C’est la seule facon de detecter une corruption silencieuse du dump avant que vous en ayez besoin. Le cout de l’instance test : zero si vous la detruisez apres le test.
Etape 10 : Connecter Grafana, n8n et Vaultwarden au SSO
La valeur d’Authentik augmente exponentiellement avec le nombre d’applications branchees. Grafana supporte OIDC nativement (config dans grafana.ini), n8n via la variable N8N_USER_MANAGEMENT_AUTH_TYPE=oidc disponible depuis n8n 1.50, Vaultwarden via le module Premium SSO (necessite licence). Pour chaque app, repetez le pattern Etape 5 : creer un Provider OIDC, recuperer client_id et secret, configurer cote application, tester le login.
Une fois 5 a 10 applications branchees, les utilisateurs gagnent vraiment du temps : un seul mot de passe a retenir, une seule cle 2FA, une seule deconnexion globale via le portail Authentik. Sur un angle proche, voir notre comparatif SSO equipe distribuee et notre guide Coolify general.
Etape 9 : Sauvegarder Authentik et planifier la restauration
Authentik stocke ses donnees dans PostgreSQL (utilisateurs, groupes, providers, applications, policies) et Redis (sessions, file de jobs). Sans sauvegarde, une corruption disque ou une mauvaise migration efface des annees de configuration SSO. Coolify expose un onglet Backups qui pousse les dumps PostgreSQL toutes les six heures vers S3 ou MinIO. Sur Wasabi a 6,99 USD par To/mois (4 580 FCFA), un mois de retention coute moins d’un euro par instance Authentik.
# Verifier que les backups tournent
coolify backups list authentik-postgres
# Test de restauration mensuel
coolify backups restore authentik-postgres --to test-instance
# Documenter le RTO
Objectif : restaurer Authentik en moins de 30 minutes
Effectuez un test de restauration tous les mois sur une instance jetable. C’est la seule facon de detecter une corruption silencieuse du dump avant que vous en ayez besoin. Le cout de l’instance test : zero si vous la detruisez apres validation.
Etape 10 : Brancher Grafana, n8n et Vaultwarden au SSO
La valeur d’Authentik augmente exponentiellement avec le nombre d’applications branchees. Grafana supporte OIDC nativement (config dans grafana.ini), n8n via la variable N8N_USER_MANAGEMENT_AUTH_TYPE=oidc disponible depuis n8n 1.50, Vaultwarden via le module Premium SSO (necessite licence). Pour chaque app, repetez le pattern Etape 5 : creer un Provider OIDC, recuperer client_id et secret, configurer cote application, tester le login.
Une fois 5 a 10 applications branchees, les utilisateurs gagnent vraiment du temps : un seul mot de passe a retenir, une seule cle 2FA, une seule deconnexion globale via le portail Authentik. Voir notre comparatif SSO equipe distribuee et notre guide Coolify general.