Tinyauth đĄïž : l'authentification pour vos conteneurs avec Nginx Proxy Manager en 5 minutes
Introduction
Section intitulĂ©e « Introduction »Aujourdâhui, petite prĂ©sentation de Tinyauth comme une couche dâauthentification lĂ©gĂšre devant Nginx Proxy Manager (NPM) pour protĂ©ger des services web que vous souhaitez exposer en public.
Dit-moi Jamy comment fonctionne Tinyauth đ€ ? TinyAuth va venir sâintercaler entre votre proxy (dans mon cas NPM) et votre application pour rajouter une couche dâauthentification :

Câest utile pour ajouter un login simple pour vos applications qui nâont pas dâauthentification en amont.
Pourquoi Tinyauth ? Je voulais un client lĂ©ger compatible TOTP et Nginx Proxy Manager. Jâavais penser Ă Authelia mais la configuration sâest complexifiĂ© au fil des Ă©volutions. Authentik est trop overkill pour mon besoin, je nâavais pas envie de configurer une DB pour ça et PocketID est top mais incompatible avec Nginx Proxy Manager ( Note : on peut ajouter PocketID comme OIDC avec Tinyauth). Jâaime les choses simples et qui fonctionnent tout de suite, Tinyauth est parfait pour moi.

Installation
Section intitulĂ©e « Installation »Installation via Docker Compose đł avec Nginx Proxy Manager
Section intitulĂ©e « Installation via Docker Compose đł avec Nginx Proxy Manager »TinyAuth est conçu pour agir comme un soft dâauthentification devant dâautres services. Pour quâil remplisse sa fonction de protection, il doit gĂ©nĂ©ralement ĂȘtre intĂ©grĂ© Ă un reverse proxy comme Apache, traefik ou comme dans notre exemple prĂ©cĂ©dent, Nginx Proxy Manager (NPM).
Si vous voulez configurer Tinyauth avec un Nginx Proxy Manager voici la configuration sur un docker-compose.yml disponible sur la documentation de Tinyauth :
services: npm: container_name: npm image: jc21/nginx-proxy-manager:2 restart: unless-stopped ports: - 80:80 - 443:443 - 81:81 volumes: - npm-data:/data - npm-letsencrypt:/etc/letsencrypt
nginx: container_name: nginx image: nginx:latest restart: unless-stopped
tinyauth: container_name: tinyauth image: ghcr.io/steveiliop56/tinyauth:v4 restart: unless-stopped environment: - APP_URL=http://tinyauth.example.com - USERS=user:$$2a$$10$$UdLYoJ5lgPsC0RKqYH/jMua7zIn0g9kPqWmhYayJYLaZQ/FTmH2/u # Voir ci-dessous pour comprendre comment créer un utilisateur sur TinyAuth
volumes: npm-data: npm-letsencrypt:Installation via Unraid
Section intitulée « Installation via Unraid »Je pars du principe que vous avez déjà créé votre instance NPM sur votre serveur Unraid (je ferai sûrement un article dédié plus tard).
- Ătape 1 : AccĂ©dez Ă la section APPS, recherchez et installez le modĂšle TinyAuth par steveiliop56.

- Ătape 2 : Selon votre prĂ©fĂ©rence, choisissez un autre port ou une autre carte rĂ©seau virtuel (pour ma part, jâai choisi un autre port que le port 80.)

- Web UI Port : ajoutez votre port pour vous connecter Ă la WebUI.
- Root URL : lâURL de base de votre domaine (Ex: mondomaine.com).
- App URL : le sous-domaine de tinyauth (Ex: tinyauth.mondomaine.com).
- Traefik - Enable & Traefik - RULE : Comme je nâutilise pas Traefik, mais NPM ces variables ne me servent pas, je dois tout de mĂȘme entrer la variable Traefik enable Ă false dans le cas prĂ©sent.
- (Facultatif) APP_TILTE : ajoutez la variable dâenvironnement APP_TITLE pour modifier le nom de votre portail.
Cliquer ensuite sur APPLY. Puis rendez-vous sur [http://IP_SERVER_UNRAID:8124], Ă modifier par rapport au port que vous avez mis et lâIP de votre serveur Unraid.
Configuration avec Nginx Proxy Manager
Section intitulĂ©e « Configuration avec Nginx Proxy Manager »{/* @todo correction arrĂȘter ici */} Je pars du principe que vous avez dĂ©jĂ créé un compte sur votre NPM que vous avez un nom de domaine et que vous faites la redirection sur votre IP puis sur votre box vers votre serveur qui Ă NPM (ce sera lâoccasion dâun autre tutoriel.).
Sur NPM vous pouvez créer un nouvel hÎte :

Sur cette hÎte renseigner le sous-domaine que vous réserver à tinyauth (Ex : tinyauth.mondomaine.fr) :

Une fois, ceci fait nâoublier pas de sĂ©lectionner votre certificat SSL :

Voila votre tinyauth est prĂȘt, vous pouvez maintenant lâappliquer en amont des applications que vous cherchez Ă protĂ©ger, exemple dans mon cas un conteneur contenant un dashboard, pour cela rendez-vous dans la partie âadvancedâ de votre hĂŽte :

Ensuite dans advanced, vous allez rentrer la configuration qui va rediriger la connexion vers tinyauth avant dâautoriser celle-ci vers lâapplication :

Configuration :
# Vérif d'authlocation / { proxy_pass $forward_scheme://$server:$port;
auth_request /tinyauth; error_page 401 = @tinyauth_login;}
# Sous-requĂȘte vers Tinyauthlocation = /tinyauth { internal; proxy_pass http://IP_DE_VOTRE_CONTAINER:PORT/api/auth/nginx;
proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Host $http_host; proxy_set_header X-Forwarded-Uri $request_uri;}
# Redirection vers l'UI Tinyauthlocation @tinyauth_login { return 302 https://tinyauth.mondomaine.fr/login?redirect_uri=$scheme://$http_host$request_uri; // a modifier}Entrer lâurl de votre conteneur et vous aurez un joli portail dâauthentification sur votre conteneur.
Configurer un utilisateur
Section intitulĂ©e « Configurer un utilisateur »Ok, câest cool maintenant comment on crĂ©e un utilisateur avec Tinyauth ?
Pour ceci, on utilisera la variable docker USER :
USER=mon_utilisateur:password_hashbcryptPour faciliter ceci Tinyauth à crée une cli avec docker :
docker run -i -t --rm ghcr.io/steveiliop56/tinyauth:v4 user create --interactiveRemplissez username et mot de passe hash vous obtenez alors la variable docker Ă ajouter sur votre Tinyauth :
2025-10-22T11:28:25Z INF cmd/create.go:85 > Creating user username=Tintin2025-10-22T11:28:25Z INF cmd/create.go:98 > User created user=Tintin:$2a$10$N6OEgcLMW5v4fnYAlCpEp.YfiJ5oG9YkmPaADJc6QZt9IFwOBR2IuIl vous suffit de rajouter la variable a votre docker-compose ou a votre configuration dâapplication Unraid -> user=Tintin:$2a$10$N6OEgcLMW5v4fnYAlCpEp.YfiJ5oG9YkmPaADJc6QZt9IFwOBR2Iu.
Vous pouvez également renforcer la sécurité en rajoutant un TOTP ? Rien de plus simple !
Pour cela utiliser la commande :
docker run -i -t --rm ghcr.io/steveiliop56/tinyauth:v4 totp generate --interactiveComme ceci :

Vous pouvez alors rajouter le QR code dans votre authentificator préférée. Ensuite vous obtenez une variable avec votre utilisateur, son mot de passe et un code TOTP -> user=Tintin:$2a$10$N6OEgcLMW5v4fnYAlCpEp.YfiJ5oG9YkmPaADJc6QZt9IFwOBR2Iu:TGUSOUC2VPOBY6GTZ442OXQB4KYFIK3B.

Pour ajouter plusieurs utilisateurs, il suffit de les ajouter les un a la suite des autre en séparant pas une virgule :
utilisateur1:$2a$10$UnHachage...,utilisateur2:$2a$10$UnAutreHachage...Conclusion
Section intitulĂ©e « Conclusion »Tinyauth apporte une couche dâauth simple et efficace devant NPM, idĂ©ale pour sĂ©curiser rapidement des services auto-hĂ©bergĂ©s sans trop vous prendre la tĂȘte. Vous pouvez aller plus loin en mettant en place une authentification unique via google, github ou autre.