Guide de déploiement

Héberger Logto sur un VPS : l'authentification chez vous

Déployer sur un VPS Cloud →

Développement5 min de lecture

Héberger Logto sur un VPS : l'authentification chez vous

Les services d'authentification hébergés facturent à l'utilisateur actif mensuel, et gardent les données de connexion de vos utilisateurs sur leurs serveurs. Logto est l'alternative open source : une plateforme d'authentification OIDC/OAuth 2.0 complète que vous déployez sur votre propre VPS et que vous maîtrisez de bout en bout. Un fichier Docker Compose, deux conteneurs (Logto et PostgreSQL 17), et vos applications disposent d'une authentification de production — inscription, connexion sociale, MFA, contrôle d'accès par rôles — sans coût par utilisateur.

Ce qu'est Logto — et ce qu'il n'est pas

Logto est une plateforme d'authentification livrée comme un SDK : vous l'intégrez au code de votre application en une quinzaine de lignes, et elle prend en charge tout le cycle de vie des comptes, sur votre propre serveur. C'est différent des deux autres outils d'authentification du catalogue ServOrbit : - Authelia ajoute MFA et authentification unique *devant* des applications existantes, par délégation, sans toucher à leur code — il protège des applications qui n'ont pas d'écran de connexion du tout. - Authentik est un fournisseur d'identité complet, pour centraliser l'authentification unique de vos outils auto-hébergés (Grafana, Gitea, Nextcloud). - Logto remplace un service d'authentification hébergé : vous appelez son SDK depuis votre application React, Python ou Go, et il gère comptes, sessions, connecteurs sociaux et jetons. Si vous construisez un produit où les utilisateurs créent un compte, Logto est l'outil adapté.

Prérequis

Il vous faut un VPS ServOrbit doté d'au moins 2 Go de RAM : Logto (Node.js) et PostgreSQL 17 partagent la même instance. Docker et Docker Compose sont préinstallés sur toutes les offres VPS ServOrbit. Il vous faut également un nom de domaine, ou un sous-domaine, pointé vers votre VPS : Logto inscrit le domaine public dans chaque jeton OIDC qu'il émet. Le domaine doit donc être arrêté avant le premier déploiement, et il ne peut pas être changé sans réinitialiser toutes les données utilisateur.

Comment Logto fonctionne en production

Logto démarre deux conteneurs : db (PostgreSQL 17 pour les utilisateurs, les applications, les sessions et le journal d'audit) et logto (Node.js, qui sert le point d'accès OIDC sur le port 3001 et la console d'administration sur le port 3002). Le proxy inverse nginx de votre VPS transmet le trafic HTTPS de votre domaine vers le port 3001 — c'est le point d'accès auprès duquel vos applications s'authentifient. Le port 3002 n'est lié qu'à la boucle locale et n'est joignable que par un tunnel SSH, ce qui garde l'administration de votre base d'utilisateurs hors de l'internet public.

Ce que Logto apporte dès l'installation

  • Des jetons conformes OIDC/OAuth 2.0 — des JWT signés que n'importe quelle bibliothèque standard (passport.js, python-jose, go-oidc) vérifie sans code spécifique.
  • Des connecteurs de connexion sociale — activez Google, GitHub, Apple, Microsoft, Discord et une trentaine d'autres fournisseurs depuis la console, en un clic ; chacun demande une déclaration OAuth de quelques minutes côté fournisseur.
  • L'authentification sans mot de passe — liens magiques par courriel ou codes à usage unique par SMS (Twilio, SendGrid, Mailgun), sans maintenir un service de notification séparé.
  • La double authentification — TOTP (Google Authenticator, Authy), clés matérielles WebAuthn/FIDO2 et codes de secours, imposés par politique depuis la console.
  • Le contrôle d'accès par rôles — définissez rôles et permissions dans la console, recevez-les comme revendications scope du JWT, et appliquez-les dans votre API en une ligne d'intergiciel.
  • Des SDK pour plus de 20 cadres — React, Next.js, Vue, Angular, React Native, Flutter, Python, FastAPI, Go, PHP, Laravel, .NET, Java, Spring Boot et d'autres.

Déploiement en un clic avec ServOrbit

Depuis votre espace ServOrbit : Marketplace → Sécurité → Logto → Déployer. Choisissez la taille du VPS (2 Go de RAM au minimum), affectez un domaine, puis lancez le déploiement. ServOrbit provisionne le VPS, configure le vhost nginx de votre domaine, génère les identifiants de base de données et la clé SECRET_VAULT_KEK (AES-256, pour le stockage chiffré des champs sensibles), et démarre la pile de deux conteneurs. Le document de découverte OIDC répond sur https://votre-domaine/.well-known/openid-configuration en moins d'une minute.

Première administration par tunnel SSH

La console d'administration écoute sur le port 3002, lié à la boucle locale pour des raisons de sécurité. Ouvrez un tunnel SSH depuis votre poste avec ssh -L 3002:127.0.0.1:3002 root@ip-de-votre-vps. Ouvrez ensuite http://localhost:3002/console dans votre navigateur. L'assistant de premier démarrage demande l'adresse et le mot de passe de l'administrateur, puis vous conduit au tableau de bord. C'est une opération unique : ensuite, vous n'ouvrirez le tunnel que pour gérer vos applications ou vos utilisateurs.

Intégrer Logto dans une application Next.js

Installez le SDK avec npm install @logto/next, puis créez un logto.ts qui exporte un new LogtoClient({ … }) configuré avec endpoint (l'URL de votre instance Logto), appId et appSecret (relevés dans la console Logto), baseUrl (l'URL de votre application), cookieSecret et cookieSecure. Pour protéger une route, appelez getLogtoContext({ getAccessToken: true }) importé de @logto/next/server-component : il rend isAuthenticated et les claims de l'utilisateur. Si isAuthenticated est faux, redirigez vers /api/logto/sign-in ; sinon, servez la page en vous appuyant sur les revendications reçues. C'est toute l'intégration : une quinzaine de lignes de configuration, un import, une garde.

Activer la connexion Google

Dans la console Google Cloud, créez un identifiant client OAuth 2.0 de type application web. Renseignez l'URI de redirection autorisée https://votre-domaine-logto.com/callback/google, puis copiez l'identifiant et le secret client. Dans la console Logto → Connecteurs → Connecteurs sociaux → Google → Activer. Collez l'identifiant et le secret, puis enregistrez. Google apparaît dès lors comme une option de connexion sur votre page Logto, sans aucune modification de code dans votre application.

Stratégie de sauvegarde

Logto conserve tout son état dans le volume PostgreSQL logto_db. Sauvegardez-le par une tâche planifiée pg_dump, ou montez le volume dans une instance Backrest (également au catalogue ServOrbit) pour des sauvegardes automatisées, dédupliquées et chiffrées vers S3, Backblaze B2 ou SFTP. Perdre le volume logto_db, c'est perdre tous les comptes utilisateur, la configuration des applications et le journal d'audit — sauvegardez-le avant toute migration de VPS.

Se connecter la première fois

01

Se connecter la première fois

La console d'administration n'est pas publiée sur Internet : ouvrez d'abord un tunnel SSH (ssh -L 3002:127.0.0.1:3002 root@<IP>), puis rendez-vous sur http://localhost:3002. Cliquez sur « Create account » — il n'existe aucun identifiant par défaut.

Votre couche d'authentification, sur votre VPS

Déployez Logto sur un VPS ServOrbit : gardez les données d'authentification de vos utilisateurs, sortez de la facturation par utilisateur, et intégrez les SDK React, Next.js, Python, Go, Flutter et bien d'autres.

Besoin d'aide ?

Parcourez notre centre d'aide et notre FAQ, ou écrivez à notre équipe — support en français, anglais et arabe.