Vue normale

Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.
À partir d’avant-hierFlux principal

Slim - HTTPS local et tunnels publics, tout en un

Par : Korben ✨
30 avril 2026 à 09:26

Monter un serveur HTTPS local pour bosser sur du Next.js ou du Vite, ça reste étrangement chiant. Faut mkcert pour générer les certifs, faut éditer le /etc/hosts à la mimine, installer caddy ou nginx en reverse proxy par-dessus... bref, vous voyez le diiiiliiiire ! Heureusement, Kamran Ahmed , le mec derrière roadmap.sh, vient de balancer Slim , un binaire Go standalone qui fait tout ça d'un coup.

Et tant qu'à faire, il rajoute aussi des tunnels publics à la ngrok au cas où vous voudriez présenter votre travail de dev payé au lance pierre, à un client pressé.

L'idée c'est donc de taper : slim start myapp --port 3000 et hop, votre app tourne OKLM en local sur le port 3000 et devient accessible via https://myapp.test avec un certif totalement valide reconnu à 100% par votre navigateur.

Ça permet d'esquiver tout config manuelle, puisque le binaire crée une autorité de certification locale (CA) dès le premier lancement, signe ensuite les certifs par domaine, et met à jour /etc/hosts tout seul, sans oublier de rediriger les ports 80/443 sur 10080/10443 sans même avoir besoin de root.

Et cette CA est ajoutée au trousseau du système, donc votre Chrome, Safari ou Firefox (ze best !!) la considèrent immédiatement comme légitime, sans alerte de sécurité. Du tout-en-un comme je l'aime quoi !

L'install se fait en une ligne (pensez à regarder comme d'hab le contenu du fichier .sh avant de le lancer, je ne le répéterais jamais assez) :

curl -sL https://slim.sh/install.sh | sh

Ensuite, pour les domaines, vous avez le choix entre .test (par défaut), .loc ou .dev. Notez que Kamran a explicitement banni le .local parce que ce TLD est réservé à mDNS et que ça fout en l'air toute la résolution DNS sur macOS et Linux. Ouf !

Le routing par chemin est aussi de la partie. Si vous bossez sur une app Next.js qui tourne sur le port 3000 et une API séparée sur le 8080, vous pouvez tout router en 1 seule commande :

slim start myapp --port 3000 --route /api=8080 --route /ws=9000

Tout tape alors sur https://myapp.test, et c'est slim qui fait le découpage. Et si vous avez plusieurs services à orchestrer, un fichier .slim.yaml à la racine du projet permet de tout déclarer d'un coup et de lancer le bouzin avec slim up.

WebSocket et HMR sont également gérés nativement, donc ça marche direct avec Vite et Next.

Maintenant, l'autre moitié de l'outil c'est slim share --port 3000 --subdomain demo qui vous délivre une URL publique sur slim.show pour exposer votre localhost sur le net. Vous pouvez ainsi ajouter un mot de passe, un TTL d'expiration, voir les logs en direct... bref, c'est du ngrok-like classique mais déjà inclus dans le même binaire ce qui évite d'aller vous créer un compte séparé. Suffit de lancer un slim login pour activer le partage public.

Alors Slim c'est cool mais y'a pas de support Windows officiel pour l'instant... ce sera donc macOS ou Linux uniquement.

Et si vous êtes sur des stacks où vous avez déjà investi dans Tunnelto pour son dashboard d'introspection HTTP ou dans Tunnl.gg pour son approche zéro-client, slim n'apportera pas forcément de quoi migrer. Mais si vous galérez à empiler mkcert + caddy + ngrok à chaque nouveau projet, c'est pil poil ce qu'il vous faut.

Le code est sur GitHub et un grand merci à Philobois pour le partage !

Pangolin - Proxy, VPN et auth enfin réunis

Par : Korben
30 mars 2026 à 10:09

Si vous auto-hébergez vos propres services parce que VOUS AVEZ DU TEMPS GRÂCE A VOTRE BULLSHIT JOB SURPAYÉ, vous connaissez la chanson... il vous faut un reverse proxy type Nginx Proxy Manager pour router le trafic, un tunnel Cloudflare ou WireGuard pour exposer vos services sans ouvrir de ports, et un truc genre Authentik pour l'auth. Donc 3 outils, 3 configs différentes, et surtout 3 trucs qui peuvent vous péter à la gueule à tout moment, surtout quand vous êtes en vacances ou en train de jouer avec vos enfants.

Mais heureusement, j'arrive à la rescousse avec Pangolin , un projet open source qui colle tout ça dans un seul paquet : Proxy inversé, tunnels WireGuard chiffrés, authentification zero-trust, le tout orchestré par Docker. Une commande de grosse feignasse dans le terminal et c'est installé !!

curl -fsSL https://static.pangolin.net/get-installer.sh | bash

Le truc peut tourner sur n'importe quel VPS avec une IP publique (Ubuntu 20.04+ ou Debian 11+, AMD64 ou ARM64). L'installeur pose Docker, Traefik et les conteneurs en 2-3 minutes chrono et ensuite vos services à la maison se connectent via des tunnels WireGuard... sans ouvrir le moindre port sur votre box ! Comme ça, que ce soit votre Jellyfin de cyberpirate, votre Nextcloud ou votre Gitea... tous deviennent accessibles depuis n'importe où, avec les certificats Let's Encrypt automatiques derrière qui vont bien.

Sous le capot, c'est du NAT traversal intelligent. Même derrière un CGNAT Orange ou un firewall restrictif de chez Free, les tunnels WireGuard trouvent, comme la vie dans Jurassic Park, toujours leur chemin via UDP. Pas besoin de DDNS, pas besoin de supplier votre FAI pour une IP fixe. Par contre, si vous avez déjà galéré avec du port forwarding sur une Livebox 5, vous savez à quel point c'est appréciable !

D'ailleurs, côté sécurité c'est carrément différent d'un VPN mesh classique type Tailscale . Au lieu de filer l'accès à tout un réseau (et prier pour que personne ne fasse n'importe quoi), Pangolin fonctionne en zero-trust : Chaque utilisateur n'accède qu'aux ressources que vous avez explicitement définies. SSH, RDP, bases de données, apps web... vous choisissez qui voit quoi et y'a même du MFA, du geo-blocking, voire du blocage par ASN si le cœur vous en dit.

Côté architecture, c'est un petit zoo : Pangolin (le serveur en TypeScript), Gerbil (le tunneling WireGuard), Newt (le connecteur réseau local) et Traefik comme reverse proxy. Oui, y'a un genre de thème "animaux fouisseurs"... à vrai dire c'est assez mignon tant que ça trimballe pas des virus. Et des clients natifs existent pour Mac, Windows, Linux, iOS et Android, pas forcément courant pour un projet de cette taille.

Pour l'auth, ça supporte Azure AD, Google, ou n'importe quel provider OAuth2/OIDC. Du coup, si vous utilisez déjà Pocket ID pour votre SSO passkey, ça s'emboîte bien (qui a dit "comme papa" ??). Pangolin c'est donc le top pour disposer d'un accès public à vos services (là où Tailscale gère le mesh privé).

Attention quand même, y'a 4 ports à ouvrir sur votre VPS : 80 et 443 en TCP (classique), plus 51820 et 21820 en UDP pour les tunnels WireGuard. Oubliez pas le 21820 sinon les clients ne se connecteront pas. La licence est dual : AGPL-3 pour la Community Edition (gratuite), et une licence commerciale pour l'Enterprise (gratuite aussi pour un usage perso et les boîtes sous 100K$ de CA). Si vous ne voulez pas gérer l'infra, y'a aussi une offre cloud managée et un installer one-click sur DigitalOcean.

CrowdSec , que j'adore, est même intégrable en option pour ajouter une couche de sécurité collaborative, et si vous utilisiez Nginx Proxy Manager avant, la migration vaut le coup d'être envisagée.

Bref, si votre stack self-hosted ressemble à un millefeuille de conteneurs, Pangolin mérite clairement un essai poussé. Et un grand merci à Tom Nook pour le partage !

❌
❌