Infrastructure

Nginx Proxy Manager sur un VPS : du HTTPS et des sous-domaines en quelques clics

Exposez toutes vos applications en HTTPS sur des sous-domaines propres, sans jamais éditer un fichier de config Nginx.

Remplace
la configuration manuelle de Nginx/Caddy
RAM conseillée
512 Mo
Docker
Oui
Budget VPS
≈ 0 € (sur un VPS déjà loué)
Difficulté
Accessible
En bref

Nginx Proxy Manager (NPM) est un reverse proxy avec interface graphique : il publie chacune de vos applications en HTTPS sur un sous-domaine propre (vault.mondomaine.fr, photos.mondomaine.fr…) et gère les certificats Let's Encrypt automatiquement, sans éditer un seul fichier de config. Très léger (~256 Mo de RAM), il s'installe sur le même VPS que vos autres services. Coût réel : 0 €, c'est gratuit et open source.

Nginx Proxy Manager — souvent abrégé NPM — est l’une de ces briques que l’on installe en premier sur un VPS, parce qu’elle conditionne toutes les autres. C’est un reverse proxy doté d’une interface graphique : son travail est de publier chacune de vos applications en HTTPS, sur un sous-domaine propre, sans que vous ayez à écrire la moindre ligne de configuration Nginx.

Concrètement, quand vous auto-hébergez plusieurs services sur un même VPS — un gestionnaire de mots de passe, une galerie photo, un cloud personnel — chacun écoute sur un port interne différent (8080, 2283, 3000…). Y accéder via http://IP_DU_VPS:8080 est laid, non chiffré et impraticable. NPM règle ce problème d’un coup : il dirige vault.mondomaine.fr vers le bon conteneur, photos.mondomaine.fr vers un autre, et colle un certificat Let’s Encrypt valide sur chacun. Le tout depuis une interface web, en cochant des cases. C’est la brique qui sécurise et publie toutes les autres.

À quoi sert un reverse proxy (et pourquoi NPM)

Pour comprendre l’intérêt de NPM, il faut d’abord saisir ce que fait un reverse proxy. Quand un visiteur tape https://photos.mondomaine.fr, sa requête arrive sur l’unique IP publique de votre VPS, sur le port 443 (HTTPS). Problème : sur cette même machine tournent peut-être cinq applications différentes, chacune sur son port interne. Comment savoir laquelle doit répondre ?

C’est exactement le rôle du reverse proxy. Il se place en façade, écoute sur les ports 80 et 443, lit le sous-domaine demandé, et aiguille la requête vers la bonne application en interne. photos.mondomaine.fr part vers le conteneur de la galerie photo sur son port 2283 ; vault.mondomaine.fr part vers le coffre de mots de passe sur son port 8080. Le visiteur, lui, ne voit qu’une URL propre en HTTPS — toute la mécanique de ports reste cachée.

Traditionnellement, ce travail se configure à la main, en écrivant des fichiers Nginx (les fameux server { ... }) ou Caddy. Ça fonctionne très bien, mais il faut connaître la syntaxe, éditer des fichiers en SSH, recharger le service à chaque changement et déboguer les erreurs de configuration. C’est précisément cette barrière que NPM fait tomber. Au lieu d’éditer du Nginx, vous remplissez un formulaire : un champ pour le domaine, un champ pour l’adresse interne, une case pour le SSL. NPM génère lui-même la configuration Nginx correspondante en coulisses. Vous obtenez la puissance de Nginx avec l’ergonomie d’un tableau de bord.

C’est ce qui en fait un excellent point d’entrée vers l’auto-hébergement : il rend accessible en clics une opération qui rebute beaucoup de débutants. Et il s’accorde parfaitement avec Portainer, qui apporte la même logique d’interface graphique pour gérer vos conteneurs Docker — les deux ensemble forment un socle d’administration très confortable.

Configuration requise : combien de RAM pour Nginx Proxy Manager ?

Configuration VPS requise
Processeur (CPU)1 vCPU
RAM minimale256 Mo
RAM conseillée512 Mo
Stockage2–5 Go SSD
DockerOui (image officielle)
Base de donnéesSQLite intégrée (MariaDB en option)
NiveauAccessible

Nginx Proxy Manager est extrêmement léger. L’application elle-même n’est qu’une couche d’administration au-dessus de Nginx, accompagnée d’une petite base SQLite intégrée qui stocke vos hôtes et vos certificats. Au repos, l’ensemble tourne autour de 256 Mo de RAM, et cette consommation ne bouge quasiment pas avec le nombre de sous-domaines : qu’il en gère trois ou trente, la charge reste minime, car Nginx est taillé pour encaisser le trafic sans effort.

Le palier 512 Mo offre un confort largement suffisant, en laissant de la marge pour cohabiter avec le système et les autres services. Côté stockage, 2 à 5 Go suffisent : la base SQLite est minuscule et les certificats Let’s Encrypt ne pèsent presque rien. Si vous attendez un trafic important ou souhaitez plus de robustesse, NPM peut s’appuyer sur une base MariaDB externe plutôt que sur SQLite, mais pour un usage personnel ou une petite structure, SQLite est parfaitement adapté et plus simple à maintenir.

Le CPU n’est jamais un facteur limitant : un seul vCPU traite sans peine le routage et le déchiffrement TLS pour des dizaines de services. Pour situer NPM parmi vos autres applications et dimensionner votre machine, ce guide donne les ordres de grandeur : combien de RAM pour s’auto-héberger.

HTTPS automatique avec Let’s Encrypt en quelques clics

C’est la fonction reine de NPM, et la raison pour laquelle on l’adopte. Obtenir un certificat HTTPS valide, l’installer correctement et le renouveler avant expiration est historiquement une corvée. NPM réduit tout cela à une poignée de clics.

Le déroulé est le suivant. Vous ouvrez l’interface, vous allez dans Hosts → Proxy Hosts, puis Add Proxy Host. Dans l’onglet Details, vous renseignez le domaine (photos.mondomaine.fr), le nom du conteneur ou l’IP interne de l’application cible, et son port (par exemple 2283). Vous passez ensuite dans l’onglet SSL, vous choisissez Request a new SSL Certificate, vous cochez Force SSL (pour rediriger automatiquement le HTTP vers le HTTPS), vous acceptez les conditions de Let’s Encrypt, et vous validez.

En quelques secondes, NPM contacte Let’s Encrypt, prouve que vous contrôlez bien le domaine (votre enregistrement DNS doit pointer vers le VPS), récupère un certificat gratuit et le met en place. Votre application est désormais accessible en https://photos.mondomaine.fr avec le cadenas. Et surtout : NPM se charge seul du renouvellement. Les certificats Let’s Encrypt expirent au bout de 90 jours ; NPM les renouvelle automatiquement en amont, vous n’avez plus jamais à y penser ni à craindre l’avertissement « certificat expiré ».

Pour les utilisateurs avancés, NPM sait aussi générer un certificat wildcard (*.mondomaine.fr, valable pour tous vos sous-domaines d’un coup) via un challenge DNS, à condition que votre registrar ou votre hébergeur DNS soit pris en charge. Mais pour démarrer, un certificat par sous-domaine fait très bien le travail.

Combien coûte Nginx Proxy Manager ?

Soyons direct : Nginx Proxy Manager est gratuit. C’est un projet open source sous licence MIT, sans édition payante ni abonnement caché. Vous le téléchargez, vous l’installez, vous l’utilisez sans limite — autant de Proxy Hosts et de certificats que vous voulez.

Le seul coût réel est donc celui du VPS qui l’héberge, et encore : NPM n’a pas vocation à occuper une machine à lui seul. Il s’installe sur le VPS que vous payez déjà pour vos applications, dont il consomme une fraction négligeable des ressources. Son coût marginal est, en pratique, de 0 €.

Faut-il pour autant absolument choisir NPM ? Honnêtement, non — c’est une question de préférence. Caddy rend le même service en deux lignes de fichier texte, avec HTTPS automatique, et plaira à ceux qui aiment versionner leur configuration. Traefik est redoutable dans les environnements Docker très dynamiques, où les conteneurs apparaissent et disparaissent. NPM, lui, se distingue par son interface graphique : il n’écrit rien, vous cliquez. Si l’idée d’éditer un fichier de config vous freine, c’est l’outil qui lèvera le plus sûrement cette appréhension. Les trois aboutissent au même résultat ; NPM est simplement le plus visuel.

Quel hébergeur choisir ?

Quel hébergeur choisir ?

NPM ne consomme presque rien : il s'installe sur le même VPS que vos applications pour leur fournir le HTTPS et des sous-domaines propres.

Hetzner

Le meilleur rapport puissance/prix

  • VPS CX22 : 2 vCPU, 4 Go RAM, 40 Go SSD
  • L'hébergeur favori de la communauté self-hosting
  • Datacenters en UE (conformité RGPD)
Config conseillée
2 vCPU / 4 Go / 40 Go SSD
Prix indicatif
≈ 4,50 €/mois
Docker
VPS complet — Docker à installer (ou image Coolify en 1 clic)
Voir les VPS Hetzner lien à brancher

Scaleway

Le déploiement Docker en 1 clic

  • Instances françaises, Docker InstantApp en 1 clic
  • Facturation à l'heure possible (tests)
  • Bon pour démarrer puis monter en puissance
Config conseillée
2 vCPU / 2–4 Go / 20+ Go
Prix indicatif
≈ 5–9 €/mois
Docker
Image Docker InstantApp en 1 clic
Voir les offres Scaleway lien à brancher

OVHcloud

L'option française, Docker préinstallé

  • Image VPS « Docker » préinstallée disponible
  • Datacenters en France (latence + RGPD)
  • Documentation francophone fournie
Config conseillée
2 vCPU / 4 Go / 80 Go SSD
Prix indicatif
≈ 6–8 €/mois
Docker
Image Docker préinstallée proposée au déploiement
Voir les VPS OVHcloud lien à brancher

Transparence : les liens ci-dessus sont des liens partenaires (affiliation). Si vous souscrivez via l'un d'eux, ce site touche une commission, sans surcoût pour vous. Cela n'influence pas nos recommandations : nous ne citons que des hébergeurs adaptés à cette application. En savoir plus.

NPM ne demande aucune machine particulière : n’importe quel VPS d’entrée de gamme capable de faire tourner Docker convient. Le seul point d’attention concerne le réseau : pour que le reverse proxy fasse son travail, votre hébergeur doit vous laisser ouvrir les ports 80 et 443 vers Internet (c’est le cas chez tous les acteurs ci-dessus) et vous fournir une IP publique sur laquelle faire pointer vos sous-domaines. Comme NPM cohabite avec vos autres services sur la même machine, choisissez votre VPS en fonction de l’ensemble de vos applications — NPM, lui, ne pèsera jamais dans la balance. Pour affiner ce choix, voyez quel VPS choisir pour s’auto-héberger.

Installer Nginx Proxy Manager sur un VPS avec Docker

L’installation est rapide et tient en un fichier. Avant tout, faites pointer vos sous-domaines vers le VPS : créez des enregistrements DNS de type A (vault, photos, etc.) vers l’IP publique de votre machine. C’est ce qui permettra ensuite à Let’s Encrypt de valider vos certificats.

Sur le VPS, avec Docker et le plugin Compose installés, créez un dossier puis un fichier docker-compose.yml :

services:
  app:
    image: jc21/nginx-proxy-manager:latest
    container_name: nginx-proxy-manager
    restart: unless-stopped
    ports:
      - "80:80"     # trafic HTTP public
      - "443:443"   # trafic HTTPS public
      - "81:81"     # interface d'administration
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt

Les trois ports sont la clé : 80 et 443 reçoivent le trafic public de vos visiteurs (HTTP et HTTPS), tandis que 81 sert uniquement au panneau d’administration de NPM. Les deux volumes assurent la persistance : ./data contient la base SQLite, votre configuration et vos Proxy Hosts ; ./letsencrypt stocke vos certificats. Tant que ces deux dossiers existent, vous pouvez détruire et recréer le conteneur sans rien perdre.

Lancez ensuite le conteneur :

docker compose up -d

Ouvrez http://IP_DU_VPS:81 dans votre navigateur pour accéder à l’interface d’administration. NPM crée au premier démarrage un compte par défaut qu’il faut changer immédiatement :

Email :    admin@example.com
Mot de passe : changeme

Dès la première connexion, NPM vous force à renseigner votre vrai e-mail et un mot de passe fort — ne sautez surtout pas cette étape, car ce port d’administration ne doit jamais rester accessible avec les identifiants par défaut. Une fois connecté, vous pouvez créer votre premier Proxy Host : indiquez un sous-domaine, le conteneur cible et son port interne, puis demandez un certificat Let’s Encrypt dans l’onglet SSL. Votre première application est en ligne, en HTTPS propre. Astuce : placez vos conteneurs et NPM sur le même réseau Docker, afin de pouvoir cibler chaque application par son nom de conteneur plutôt que par une IP, plus stable et plus lisible.


Avec NPM en place, chaque nouvelle application que vous installez se publie en HTTPS en deux minutes : c’est le socle qui rend l’auto-hébergement multi-services réellement confortable. Pour la suite, parcourez le guide général auto-héberger ses applications sur un VPS et complétez votre socle d’administration avec Portainer, l’interface graphique pour gérer vos conteneurs Docker.

Questions fréquentes

À quoi sert exactement Nginx Proxy Manager ?

C'est un reverse proxy piloté par une interface web. Son rôle : recevoir tout le trafic qui arrive sur les ports 80 et 443 de votre VPS, puis l'aiguiller vers la bonne application selon le sous-domaine demandé — et lui ajouter le HTTPS au passage. Concrètement, il transforme http://IP:8080 en https://photos.mondomaine.fr, en quelques clics au lieu d'un fichier Nginx écrit à la main.

Faut-il savoir configurer Nginx pour utiliser NPM ?

Non, c'est tout l'intérêt. NPM remplace l'édition manuelle des fichiers de configuration Nginx par des formulaires. Vous renseignez un sous-domaine, l'adresse interne de l'application (nom de conteneur + port) et vous cochez « SSL » : le reverse proxy et le certificat sont générés pour vous. Aucune ligne de config à écrire.

Le HTTPS et le renouvellement des certificats sont-ils automatiques ?

Oui. NPM demande un certificat Let's Encrypt gratuit lors de la création d'un Proxy Host, puis le renouvelle tout seul avant son expiration (les certificats Let's Encrypt durent 90 jours). Vous n'avez plus à y penser. Il sait aussi générer des certificats wildcard via un challenge DNS si votre registrar est pris en charge.

Nginx Proxy Manager est-il gratuit ?

Oui, totalement. NPM est un projet open source sous licence MIT, gratuit. Il n'y a ni édition payante, ni abonnement. Le seul coût est celui du VPS qui l'héberge — et comme il s'installe à côté de vos autres applications, son coût marginal est nul.

Faut-il un VPS dédié pour Nginx Proxy Manager ?

Non, surtout pas. NPM consomme très peu (~256 Mo) et a vocation à tourner sur le même VPS que les applications qu'il publie : c'est lui qui leur fournit le HTTPS et les sous-domaines. Lui donner sa propre machine n'aurait aucun sens — il doit être au plus près des services qu'il dessert.

Nginx Proxy Manager ou Caddy / Traefik ?

Les trois font le même travail de fond. Caddy est le plus simple en fichier texte (HTTPS auto en deux lignes), Traefik brille dans les environnements Docker dynamiques, et NPM mise sur une interface graphique. Si vous préférez tout gérer aux clics plutôt qu'en éditant un fichier, NPM est le choix le plus accessible pour débuter.