Les 404, c'est la plaie du web... J'en sais quelque chose, je fais la chasse à ça en permanence sur mon propre site. C'est vrai que c'est relou parce que vous bookmarkez un projet cool, vous y retournez trois mois après... et pouf, ça a disparu. Le dev n'a pas renouvelé son nom de domaine, l'hébergeur a fermé boutique, le contenu s'est évaporé ou que sais-je encore... En fait, sur le web, RIEN n'est permanent.
PinMe
prend le problème à l'envers en collant vos fichiers directement sur
IPFS
. En gros, au lieu de dépendre d'un serveur unique qui peut tomber n'importe quand, vos pages sont distribuées sur un réseau décentralisé et identifiées par un hash CID unique. Du coup, tant que le réseau tourne, votre contenu existe. Pas besoin de renouveler quoi que ce soit, pas besoin de payer un hébergeur... ça fonctionne tout seul.
L'installation se fait en une ligne :
npm install -g pinme
Pour déployer votre site statique, c'est hyper simple :
pinmeuploaddist/
L'outil détecte le dossier de build, ou plutôt il le devine tout seul selon votre framework : dist/ pour Vite et Vue, build/ pour Create React App, out/ pour Next.js en export statique. Ça évite d'avoir à se palucher de la config.
Côté limites, on est sur 200 Mo par fichier et 1 Go au total ce qui est largement suffisant pour une landing page ou une démo ! Et c'est GRATUIT. Pour ceux qui veulent un domaine lisible plutôt qu'un hash cryptique, y'a aussi des domaines ENS (les .eth sur Ethereum) ou des sous-domaines en .pinit.eth.limo. Après pour les domaines custom faudra un compte VIP par contre.
Le truc sympa c'est que vos fichiers restent accessibles via n'importe quelle passerelle IPFS, genre dweb.link ou w3s.link. Ainsi, si votre hébergeur ferme ou que votre domaine expire comme je le disais en intro, on s'en fiche ! Le contenu est toujours là, épinglé quelque part sur le réseau. C'est du stockage immuable, basé sur le contenu lui-même... du coup personne ne peut modifier ou supprimer ce que vous avez publié. (Et en fait vous non plus, faut le savoir.)
Et y'a aussi des commandes pour exporter en fichiers CAR et réimporter ailleurs, ce qui est pratique pour archiver ou migrer entre passerelles.
Voilà c'est gratuit pour 1 Go de stockage, c'est open source (licence MIT) et
c'est par là
. Merci à Lorenper pour la découverte !
MinIO, tout le monde ou presque connaît car c'est LE truc quand on veut du stockage objet S3-compatible auto-hébergé sous Linux. Sauf que voilà... la licence AGPL, ça pique pour pas mal de boîtes qui ne veulent pas se retrouver à devoir ouvrir leur code.
Du coup, y'a un nouveau projet qui débarque dans le tiek et qui devrait en intéresser plus d'un. C'est
RustFS
, codé en Rust (comme le nom le laisse deviner mes petits Sherlock) et 100% compatible S3. En gros, vous prenez votre stack MinIO existante, vous remplacez par ce truc, et en fait tout continue de fonctionner pareil... Vos buckets, vos applis, vos scripts Python, boto3... tout pareil !
La licence c'est de l'Apache 2.0 comme ça y'a pas de contrainte virale, vous faites ce que vous voulez avec. Et c'est d'ailleurs sûrement la raison numéro un pour laquelle le projet cartonne.
Côté perfs, les devs annoncent 2,3x plus rapide que MinIO sur des petits objets de 4 Ko (testé sur un modeste 2 coeurs Xeon avec 4 Go de RAM). Bon, c'est un benchmark maison, à prendre avec des pincettes hein... mais finalement Rust pour du I/O intensif, ça se tient comme argument, car y'a pas de garbage collector qui vient foutre le bazar.
Et voilà, l'API tourne sur le port 9000 et la console web sur le 9001 (identifiants par défaut : rustfsadmin/rustfsadmin, changez-les vite fait hein). Y'a aussi du Kubernetes via Helm, un script d'install one-click, du Nix, ou un bon vieux git clone pour compiler vous-même (attention, sur macOS faut un ulimit à 4096 sinon ça ne marche pas).
Le conteneur Docker tourne en non-root (UID 10001), donc c'est plutôt propre niveau sécu. Pensez juste à faire un petit chown -R 10001:10001 data logs sur vos répertoires avant de lancer, sinon ça casse au démarrage.
Petit bonus appréciable, y'a aussi de la détection de corruption intégrée, et même du versioning de buckets pour les plus méfiants côté intégrité des données. D'ailleurs, côté monitoring, c'est déjà câblé pour envoyer vos métriques dans Grafana, vos traces dans Jaeger et le reste dans Prometheus. Un petit docker compose --profile observability up -d et c'est plié.
Par contre, on est encore en alpha et le mode distribué et le KMS sont en phase de test. Donc c'est PAS le genre de truc que vous mettrez en prod demain matin pour vos données critiques... mais pour du dev, du lab, ou des tâches pas trop sensibles... ça tourne impecc !
Bref, si l'AGPL de MinIO vous gave et que vous cherchez une alternative S3-compatible, en Rust, sous licence + permissive, allez jeter un œil à RustFS.
I spent a lot of time in the contest chair this weekend. While the Olympics were on and on Sunday, the much-anticipated U.S. vs. Canada hockey matchup sparked sports fever in our house, but it belongs to my wife, not me. For me, it was all about ...
Aujourd'hui j'aimerais vous parler un peu de bidouille et plus particulièrement de
domotique
. Hé oui, si comme moi, vous en avez marre que tous vos objets connectés passent par des serveurs chinois (souvent à la sécurité douteuse) ou américains (souvent directement connecté à la NSA) pour vous dire qu'il fait 22°C dans votre salon, on va voir comment ensemble créer ses propres capteurs 100% locaux avec ESPHome.
ESPHome, c'est un framework open source qui transforme n'importe quel ESP32 ou ESP8266 en appareil connecté intelligent sans vous prendre la tête. Vous écrivez un petit fichier YAML, vous flashez la puce, et hop, vous avez un capteur qui cause directement avec Home Assistant. Comme ça y'a pas de cloud et encore moins de données qui partent on ne sait où.
Et c'est hyper accessible... Suffit de savoir remplir un fichier texte avec quelques indentations (le fameux YAML), et voilà vous savez utiliser ESPHome.
ESPHome fait partie de l'Open Home Foundation (
Source
)
Ce qu'il vous faut
Un ESP32 (genre un Wemos D1 Mini ou un NodeMCU)
Un capteur DHT22 (température et humidité)
Quelques fils Dupont
Temps estimé : 30 minutes
Niveau branchement, c'est pas sorcier. Le DHT22 a 3 broches utiles : VCC sur le 3.3V de l'ESP, GND sur GND, et DATA sur un GPIO de votre choix (le GPIO4 marche nickel). Pensez aussi à ajouter une résistance de 4.7kΩ entre DATA et VCC si vous voulez des lectures béton (beaucoup de modules l'ont déjà intégrée, mais vérifiez bien).
Hé voilà ! Ce fichier suffit à tout configurer. Ensuite, pour flasher, branchez votre ESP en USB et lancez la commande :
esphome run capteur_salon.yaml
La première fois, ça compile tout le firmware et ça flashe. Une fois que c'est fait, l'ESP apparaît automatiquement dans
Home Assistant
si vous avez activé l'intégration. Et le top du top, c'est que les prochaines mises à jour se feront en WiFi (OTA), ce qui est super pratique quand le truc est planqué derrière un meuble.
C’est l’un des projets les plus ambitieux de la carrière de Sting : la comédie musicale The Last Ship, à retrouver pour quelques jours seulement, débarque du 18 février au 8 mars 2026 à la Seine Musicale de Paris, après avoir été présenté à Broadway en 2014 ainsi que dans plusieurs villes en Angleterre en 2018.
Le musical — baptisé en hommage au 11e album studio de l’ex-membre de The Police — a été composé et mis en musique par Sting lui-même (qui joue également sur scène) et s’inspire de son enfance autour des chantiers navals au nord-est du Royaume-Uni, proche de Newcastle. En abordant la situation de la classe ouvrière en Angleterre à une époque où le gouvernement de Margaret Thatcher menace de les privatiser, The Last Ship s’impose comme une œuvre sociale et engagée qui rend hommage à la famille de l’artiste.
Pendant des années Sting a travaillé sur The Last Ship et a fait évoluer son musical pour qu’il corresponde de plus en plus à son envie initiale. La pièce reprend plusieurs pistes de l’album The Last Ship, mais contient aussi des morceaux inédits. D’ailleurs, l’opus tiré du musical est disponible depuis décembre 2025.
Après Paris, The Last Ship fera escale dans d’autres villes européennes, avant de retrouver New York et le Metropolitan Opera en juin prochain pour cinq performances seulement. La billetterie pour The Last Ship est disponible ici.
Pourquoi The Last Ship semble incontournable ?
Lors de la première présentation du musical à Broadway (dans lequel Sting ne tenait pas encore de rôle), The Last Ship a surpris le public avec son approche sombre et mélancolique, dans un décor tout en métallurgie rappelant les chantiers navals de Manchester. Le musical obtient néanmoins deux nominations aux Tony Awards (l’équivalent des Oscars pour le théâtre), dans les catégories meilleure bande-originale et meilleure orchestration.
À la surprise générale, la pièce ne reste à l’affiche que trois mois, avant que Sting ne la réinvente et parte la présenter en Angleterre — où l’œuvre, profondément ancrée dans le paysage britannique trouve son public bien plus qu’aux États-Unis, comme le précise à l’époque The Guardian — puis au Canada.
Désormais à Paris (et avant le retour aux US), The Last Ship correspond à une version plus définitive, portée par Sting lui-même, bénéficiant d’une mise en scène réinventée. Sans perdre son propos politique et social, et tout en enchaînant les morceaux entraînants (aux sonorités anglaises et folk irlandaise, comme sur l’album The Last Ship), le musical est une nouvelle consécration pour l’artiste.
Sting a constamment challengé sa carrière. On se souvient de ses nombreuses collaborations internationales ou françaises ou de son apparition dans Kaamelott : premier volet d’Alexandre Astier. The Last Ship s’inscrit pleinement dans ce renouvellement artistique constant.
Vous connaissez tous
Kali Linux
,
Metasploit
et compagnie… Mais est-ce que vous avez déjà vu une IA faire un pentest toute seule ? Genre, VRAIMENT toute seule.
Shannon
, c'est un framework open source qui lâche un agent IA sur votre code, et qui enchaîne recon, analyse de vulns, et exploitation, tout ça sans intervention humaine.
En gros, vous lui filez une URL cible et l'accès à votre code source (faut que le repo soit accessible, c'est la base), et l'agent se débrouille. Il commence alors par analyser le code en statique… puis lance des attaques dynamiques sur l'app en live. Pour cela, il déploie plusieurs sous-agents spécialisés qui bossent en parallèle via Temporal, un moteur de workflow.
Un agent pour la reconnaissance, un pour chercher les injections SQL, un autre pour les XSS, un pour les SSRF, un pour les problèmes d'authentification… Bref, chacun fait son taf et tout remonte dans un rapport final au format JSON.
Le truc, c'est que Shannon ne se contente pas de scanner bêtement comme un Nessus ou un Burp. L'agent COMPREND votre code. Il lit les routes, les middlewares, les requêtes SQL, et il construit ses attaques en fonction. Du coup, il trouve des trucs que les scanners classiques loupent complètement, genre une injection NoSQL planquée dans un endpoint obscur ou un bypass d'auth via un cookie mal valide. Attention par contre, si votre app utilise un framework un peu exotique ou du code obfusqué, y'a des chances que l'agent passe à côté… comme tout scanner, hein.
Pour ceux qui se demandent combien coute un
test d'intrusion
classique, ça va de 3 000 € à plusieurs dizaines de milliers d'euros. Shannon, c'est open source et ça tourne sur Docker, par contre, faudra compter environ 50 dollars en tokens API Anthropic par run… c'est pas gratuit mais c'est quand même 60 fois moins cher qu'un audit humain.
Cote installation, c'est Docker + Docker Compose, un fichier .env avec votre cle API Anthropic (la variable ANTHROPIC_API_KEY, classique), et hop, un docker compose up pour lancer le tout. Le workflow complet prend entre 1 h et 1 h 30 selon la taille de votre base de code. Vous pouvez suivre la progression en temps réel via l'interface web Temporal sur localhost:8233. (perso, j'aime bien voir les agents bosser en parallèle, ça a un côté satisfaisant).
Et attention, Shannon exécute de VRAIES attaques. C'est mutatif. Ça veut dire que si l'agent trouve une injection SQL, il va l'exploiter pour de vrai pour prouver que ça marche. Du coup, on le lance sur du code à soi, en local ou sur un environnement de test. Mais jamais en prod. JAMAIS !!!
Bon, sauf si vous aimez vivre dangereusement et que votre boss est en vacances… ^^
Les agents d'exploitation (Auth, SSRF, XSS, AuthZ) en parallèle sur la timeline Temporal
Pour en avoir le cœur net, je l'ai lancé sur une app Node.js/Express maison avec 27 endpoints d'API. 2 heures de scan, 287 transitions d'état, 7 agents qui ont bossé en parallèle… et une facture Anthropic qui pique un peu. Parce que oui, chaque agent consomme des tokens Claude à chaque étape d'analyse et d'exploitation, et ça s'additionne vite. Comptez une cinquantaine de dollars pour un run complet. Bref, c'est pas gratuit de se faire hacker par une IA.
Cote résultats par contre, plutôt parlant. Zero injection SQL exploitable, les 23 paramètres utilisateur ont été tracés jusqu'aux requêtes et Shannon a confirmé que tout était paramétré correctement. Bien joué. Par contre, il a détecté 6 failles SSRF liées à des contournements IPv6, des XSS stockées via innerHTML sans aucun échappement dans le frontend, et surtout… ZERO authentification sur les 27 endpoints. Genre, n'importe qui peut purger ma base ou cramer vos crédits API Claude sans se connecter. Bon après, c'est un outil que je me suis dev, qui est un proto local, donc c'est pas exposé sur internet.
Le rapport final est plutôt bien foutu, je trouve. Pour chaque vuln trouvée, vous avez la sévérité CVSS (critique, haute, moyenne), le vecteur d'attaque utilisé, une preuve d'exploitation avec les payloads, et surtout des recommandations de correction. Shannon va jusqu'à vous montrer la ligne de code fautive, expliquer pourquoi le bypass fonctionne, et proposer le fix. Si vous utilisez déjà des outils comme
Sploitus
pour votre veille secu, Shannon c'est le complément parfait pour passer de la théorie à la pratique sur votre propre code.
Le projet est encore jeune, c'est vrai, mais l'approche est intéressante. Plutôt que d'automatiser bêtement des scans, on a donc un agent qui raisonne sur le code et adapte sa stratégie. Ça change des outils qui balancent des milliers de requêtes à l'aveugle et qui vous noient sous les faux positifs.
Alors après, je vous vois venir, vous allez me dire : est-ce que ça vaut un vrai pentester qui connait votre infra par cœur et qui sait où chercher les trucs tordus ?
Pas vraiment, mais pour un premier audit à moindre coût, ça fait le taf.
Coolify, c'est un PaaS open source que vous installez sur vos propres serveurs pour déployer vos apps, vos bases de données et vos services... sans vous farcir Docker à la main. En gros, un Heroku ou un Vercel, mais en version self-hosted sans
enfermement propriétaire
comme on pourrait dire en bon français.
La version auto-hébergée est donc TOTALEMENT gratuite. Pas de limite sur le nombre de serveurs, pas de restriction sur les features, pas de "ah pour les teams faut upgrader". Y'a R comme disait mon grand-père... Vous avez SSH sur une machine ? Ça suffit. VPS, Raspberry Pi, dédié, vieux laptop qui traîne dans un coin... Hop, une seule commande et c'est installé.
Côté déploiement, Coolify détecte automatiquement votre stack via Nixpacks (c'est-à-dire qu'il devine le langage et génère le build tout seul). Mais vous pouvez aussi balancer un Dockerfile, un Docker Compose ou un simple site statique. Du coup, que vous bossiez en Next.js, Django, Laravel, Rails, Phoenix ou SvelteKit, ça passe sans config particulière.
Pour les bases de données, c'est pas mal non plus : PostgreSQL, MySQL, MariaDB, MongoDB, Redis, ClickHouse... tout se déploie en quelques clics. Et au total, le catalogue compte plus de 280 services one-click (Plausible, Gitea, Minio, n8n, et j'en passe). Y'a de quoi monter une infra complète avant même d'ouvrir un terminal.
Le workflow Git est solide puisque c'est du push-to-deploy avec GitHub, GitLab, Bitbucket ou Gitea, avec en prime des déploiements de preview par pull request. Pratique pour tester une branche avant de tout péter en prod (ouais, je vous connais...). Vous avez aussi les webhooks, une API REST documentée, et un terminal temps réel directement dans le navigateur.
Côté ops, les certificats SSL sont automatiques via Let's Encrypt, les backups de vos bases partent vers du
stockage S3 compatible
, et vous avez du monitoring intégré avec alertes Discord, Telegram ou email. Ça permet de dormir tranquille le vendredi soir. Pour le multi-serveur, Coolify supporte aussi Docker Swarm, donc vous pouvez répartir la charge sur plusieurs machines sans trop de prise de tête.
Si vous voulez pas gérer l'instance Coolify vous-même, y'a Coolify Cloud à 5$/mois (2 serveurs inclus, +3$ par serveur supplémentaire). Vos apps tournent toujours sur VOS machines et c'est juste le dashboard qui est hébergé chez eux. Pour les allergiques à l'admin système, ça peut valoir le coup.
Prise en main rapide
Pour installer Coolify, il vous faut un serveur Linux (Ubuntu LTS recommandé, mais Debian, CentOS, Fedora, Alpine ou même Raspberry Pi OS 64-bit passent aussi), avec au minimum 2 coeurs, 2 Go de RAM et 30 Go de stockage. Un accès SSH root est requis.
Le script pose Docker, configure les clés SSH, crée les répertoires dans /data/coolify et démarre le tout. À la fin, il vous affiche l'URL de votre dashboard, généralement http://VOTRE_IP:8000. Premier réflexe : créez votre compte admin TOUT DE SUITE (car le premier qui tombe sur la page d'inscription prend le contrôle du serveur...).
Une fois connecté, la logique est simple. Vous créez un Projet (le conteneur logique de votre app), puis un Environnement dedans (dev, staging, prod...). Ensuite, vous ajoutez une Ressource, c'est-à-dire votre app, votre base de données ou un des 280 services one-click.
Pour déployer un repo Git, vous branchez votre compte GitHub, GitLab ou Gitea, vous sélectionnez le repo et la branche, et Coolify détecte le build pack adapté (Nixpacks, Dockerfile ou Compose). Vous configurez votre domaine, le reverse proxy (Traefik ou Caddy au choix) gère le SSL automatiquement, et hop... git push, c'est déployé.
Si vous voulez ajouter des serveurs distants, même principe : clé SSH, connexion root, et Coolify valide que tout est OK. Chaque serveur a son propre proxy, donc le trafic va directement dessus sans passer par le serveur principal. Pensez juste à pointer vos DNS vers le bon serveur.
Pour ceux qui explorent les alternatives,
Dokploy
est plus minimaliste (et plus récent), et
Tipi
reste centré sur les applis grand public type Nextcloud ou Plex. Coolify, c'est plutôt le couteau suisse du dev qui veut TOUT contrôler sur son infra.
Bref, si Docker Compose c'est plus votre truc,
Coolify
mérite clairement un petit test.
Vous faites des sauvegardes régulières de vos données ? Non ?
Bon, je ne vais pas vous faire la morale, mais le jour où votre disque dur décidera de rendre l'âme ou que votre serveur VPS partira en fumée, vous allez vraiment regretter de ne pas avoir investi dix minutes dans un système de backup sérieux.
Alors, ouiiii, c'est vrai, on a souvent la flemme parce que c'est chiant à configurer. Entre les scripts bash qui plantent sans prévenir et les crontabs illisibles, y’a de quoi s'arracher les cheveux. C'est là qu'intervient Zerobyte, un projet open source qui veut réconcilier les allergiques du terminal avec la sécurité de leurs données.
Zerobyte est donc une plateforme d'automatisation de sauvegarde auto-hébergée qui vient poser une interface web moderne et ultra propre par-dessus le moteur Restic. Si vous avez déjà lu mon guide sur les
backups avec Restic
, vous savez que c'est du solide. Ça fait du chiffrement côté client, de la déduplication et de la compression. En gros, vos données sont blindées avant même de quitter votre machine et seules les modifs sont envoyées, ce qui est parfait pour ne pas exploser son forfait data ou son stockage cloud.
L'interface web permet surtout de tout piloter sans jamais toucher à une ligne de commande. Vous définissez vos "volumes" (ce qu'il faut sauver), vos "repositories" (où stocker tout ça) et vos "jobs" (quand lancer les opérations).
Pour les sources, l'outil est hyper flexible puisqu'il supporte aussi bien les dossiers locaux que les partages réseau via NFS, SMB, WebDAV ou SFTP et côté destination, c'est carrément Byzance puisque vous pouvez envoyer vos snapshots vers du S3 (AWS, MinIO, Wasabi), du Google Cloud, de l'Azure ou utiliser l'intégration rclone qui ouvre la porte à plus de 70 fournisseurs différents. C’est l’outil idéal pour mettre en place une véritable
stratégie 3-2-1
sans se prendre la tête.
Pour l'installation, pas de surprise, ça se passe via Docker Compose. C'est léger, ça s'isole bien et ça tourne en deux minutes. Un petit bémol quand même le projet est encore jeune donc ça peut encore bouger pas mal au niveau de l'architecture. Mais pour du monitoring et de la gestion simplifiée de snapshots Restic, c'est déjà redoutable. Vous pouvez explorer vos sauvegardes directement depuis le dashboard et restaurer un fichier précis en trois clics.
Et pour ne rien gâcher, le projet est sous licence libre, ce qui colle parfaitement à l'esprit qu'on aime ici !
Bref, si vous cherchez une solution pour centraliser la gestion de vos sauvegardes sans finir en PLS devant un terminal,
Zerobyte
mérite clairement que vous y jetiez un œil.
J'ai souvent des tas d'idées à la con, mais comme vous le savez, pris par le tourbillon de la vie, on ne pense pas forcément à les noter et encore moins à les exploiter plus tard.
Il y a plein d'outils pour prendre des notes comme le célèbre Notion ou tout simplement l'app Notes d'Apple ou ce genre de trucs. Mais si vous êtes amateur de logiciel libre et inquiet par votre vie privée, le mieux c'est encore d'auto-héberger un outil comme
Memos
.
Voici le tutoriel que j'ai réalisé pour les patréons :
Memos est un outil développé en Go + React.js, qui peut tourner dans un Docker et qui permet en quelques secondes de noter votre prochaine idée de startup ou l'idée repas que vous venez d'avoir pour ce soir. Au niveau de son fonctionnement, l'interface de Memos ressemble un peu à Twitter et permet comme ça de prendre des notes aussi longues que vous voulez en markdown et d'y joindre des fichiers, des tags...etc.
Ici, pas de tracking ni de télémétrie louche selon les développeurs, le projet mise à fond sur la vie privée. Vous installez ça sur votre serveur, votre Raspberry Pi 4 ou 5, ou même un vieux PC qui traîne, et hop, vous avez votre propre carnet de bord numérique. Si vous configurez un petit reverse proxy (genre Nginx ou Caddy) ou un VPN, c'est accessible de partout.
Vous pouvez l'utiliser uniquement pour vous ou créer des comptes également pour vos collègues et amis et après il y a plus qu'à faire des recherches dans tout ça pour retrouver vos meilleurs punchlines ou idées à la con.
Perso, j'ai choisi Docker pour l'installation parce que c'est quand même plus simple à mettre à jour et ça évite de polluer le système avec 50 dépendances. J'ai d'ailleurs passé 5 minutes à chercher le port par défaut avant de réaliser que c'était le 5230, comme écrit en gros dans la doc... la honte ! Bon, attention quand même avec la persistance des données : n'oubliez pas de bien monter votre volume (le -v dans la commande), sinon au premier redémarrage du conteneur, pffff, plus de notes !
Pour l'installation sur Linux ou macOS, ça se règle en une seule commande :
Tout est stocké dans une base SQLite (ou MySQL/PostgreSQL si vous préférez), vous pouvez le passer en langue française, en thème sombre si vous avez mal à vos petits yeux, et il y a même des APIs REST et gRPC pour connecter Memos à vos propres outils. D'ailleurs, si vous avez déjà testé
Poznote
, vous allez retrouver cet esprit "légèreté avant tout". Sauf que Memos pousse le bouchon un peu plus loin sur l'aspect communautaire.
Bref, c'est libre, c'est léger et ça fait le job sans chichis.
L'autre jour, je voulais juste exposer un petit service tournant sur mon NAS pour y accéder à distance quand je suis en déplacement. Alors je me suis dit "Allez, je vais faire ça propre avec Traefik" mais bon, debugger du fichier YAML parce qu'on oublie des indentations à un moment ça casse la tête. J'ai +40 balais et pas que ça à foutre.
Si vous hébergez vos propres services à la maison (self-hosting powaaaah !) et que vous êtes un peu bordélique comme moi, vous installez un truc, puis un autre, et vous finissez avec une collection de ports impossible à mémoriser du genre monip:8080, monip:32400, monip:9000… Aarrgh, l'enfer !!!
Et ne me lancez pas sur la gestion des certificats SSL !! Si vous voulez faire ça bien, faut générer des certificats Let's Encrypt à la main pour chaque service, modifier les fichiers de conf Nginx en priant pour ne pas oublier un point-virgule… et j'en passe et des pas mûres… Alors je sais, oui ça nous occupe et pendant ce temps là, on n'est pas dehors en train de voler des voitures mais j'sais pas vous, moi j'ai mieux à faire.
Hé bien, figurez-vous les copains, qu'il existe un outil qui transforme ce cauchemar en promenade de santé. Ça s'appelle Nginx Proxy Manager, et une fois que vous aurez lu mon article et testé vous penserez : "Mais pourquoi je me suis emmerdé la vie pendant tout ce temps, mortecouille ?!".
Nginx Proxy Manager, c'est quoi ce truc ?
En gros, c'est une interface graphique super propre pour gérer Nginx. Au lieu de taper des lignes de commandes et d'éditer des fichiers de config obscurs, vous avez un beau tableau de bord pour :
Rediriger vos domaines (ex: plex.mondomaine.fr) vers vos conteneurs Docker.
Gérer vos certificats SSL (HTTPS) automatiquement.
Sécuriser l'accès à certains services avec un mot de passe.
Mais en vrai, c'est plus riche que ça. Dans la barre du haut, vous avez tout ce qu'il faut pour piloter votre reverse proxy comme un adulte responsable : des hosts (proxy, redirections, streams, 404), des certificats (Let's Encrypt ou certifs locaux), des utilisateurs, des règles d'accès (Access Lists), et même des logs d'audit pour savoir qui a fait quoi (au cas où un de vos potes "teste un truc vite fait" et casse tout).
C'est le reverse proxy pour ceux qui veulent que ça marche, tout de suite, sans devenir ingénieur réseau bac+12 ou devoir se taper 2h d'explications IRL d'un barbu qui pue de la gueule ^^.
Installation en 3 minutes chrono (avec Docker)
Bon, on ne va pas y passer la nuit. La méthode la plus propre, c'est évidemment Docker Compose. Si vous ne l'avez pas, installez-le (allez, un petit apt install docker-compose et on n'en parle plus).
Créez un dossier nginx-proxy-manager et collez-y ce fichier docker-compose.yml :
version:'3.8'services:app:image:'jc21/nginx-proxy-manager:latest'restart:unless-stoppedports:-'8080:80'# Port HTTP public-'8181:81'# Port d'administration (à garder pour vous)-'8443:443'# Port HTTPS publicvolumes:-./data:/data-./letsencrypt:/etc/letsencryptdb:image:'jc21/mariadb-aria:latest'restart:unless-stoppedenvironment:MYSQL_ROOT_PASSWORD:'npm'MYSQL_DATABASE:'npm'MYSQL_USER:'npm'MYSQL_PASSWORD:'npm'volumes:-./mysql:/var/lib/mysql
Petit piège à éviter : Faites gaffe si vous avez déjà un serveur web (Apache ou Nginx) qui tourne sur la machine hôte. Il va falloir couper le service ou changer les ports, sinon Docker va vous jeter une erreur parce que le port 80 est déjà pris. Du coup, vérifiez bien avec un petit netstat -tulpn | grep 80 avant de lancer la sauce.
Ah oui, et si vous utilisez un pare-feu comme UFW (ce que je vous recommande chaudement), n'oubliez pas d'ouvrir le port 81 : ufw allow 81. Sinon, vous allez pleurer devant une page blanche et vous demander pourquoi ça marche pas.
Ensuite, lancez la bête :
docker-compose up -d
Et voilà ! C'est tout. Votre serveur tourne. Si vous avez des erreurs, c'est probablement parce que vos ports sont déjà utilisés. Ou que les dossiers data, Let's Encrypt et MySQL n'existent pas encore. Moi j'ai ça sur mon NAS :
La configuration que même ma grand-mère pourrait le faire
Ouvrez votre navigateur et allez sur http://votre-ip:8181 et créez vous un compte.
Une fois dedans, pour exposer un service, c'est ridicule tellement c'est easyyyy
Cliquez sur "Add Proxy Host".
Entrez votre nom de domaine (ex: nextcloud.mondomaine.fr).
Indiquez l'IP de la machine et le port du service (ex: 8080).
Allez dans l'onglet "SSL", cochez "Request a new SSL Certificate" et "Force SSL".
Sauvegardez.
En fait, le seul truc qui peut coincer, c'est la propagation DNS. Si vous venez d'acheter votre nom de domaine il y a 5 minutes, pas de panique si Let's Encrypt refuse de générer le certificat. Attendez une petite heure et réessayez. C'est classique.
Et hop, fini. Votre service est accessible en HTTPS, avec le petit cadenas vert qui va bien. Nginx Proxy Manager s'occupe de discuter avec Let's Encrypt et de renouveler le certificat tout seul. C'est carrément magique.
Tour d'horizon des fonctionnalités qui sauvent des week-ends
Parce que oui, Nginx Proxy Manager ne fait pas "juste" proxy + "cadenas". Dans le menu Hosts, vous avez plusieurs types de trucs à créer, et chacun sert à un usage bien précis. Et côté Certificats et sécurité, il y a de quoi faire sans sortir le marteau-piqueur.
Certificats Let's Encrypt (HTTP et DNS) + certifs locaux
On va commencer par le sujet qui donne des boutons : les certificats. Dans l'onglet Certificates, vous pouvez gérer tout ça au même endroit :
Let's Encrypt en HTTP-01 : le classique. NPM ouvre la voie, répond au challenge, et basta. Pratique pour un service.mondomaine.fr exposé "normalement".
Let's Encrypt en DNS-01 : là, c'est le mode "j'ai compris la vie". Vous pouvez valider le certificat via votre DNS (donc sans dépendre d'un port 80 accessible), et surtout ça permet les wildcards du style *.mondomaine.fr. Donc un seul certif et roule ma poule, même si vous ajoutez 12 sous-domaines demain à 3h du mat.
Certificats locaux : vous pouvez aussi importer un certificat existant (genre un certif de votre boîte, un truc interne, un CA maison, ou même un self-signed si vous aimez vivre dangereusement). Ça évite de dépendre de Let's Encrypt si vous êtes en mode "tout en local, rien sur Internet".
Et le meilleur c'est que NPM gère le renouvellement automatique. Donc plus de rappel calendrier "renouveler les certifs" tous les 2 mois, sinon c'est le drame et tout le monde vous écrit "ça marche plus ton truc".
Plusieurs comptes, parce que tout le monde n'est pas "admin"
Dans Users, vous pouvez créer plusieurs comptes pour accéder à l'interface. Typiquement :
un compte admin pour vous, le chef, le patron, le seigneur des reverse proxies.
un compte "moins dangereux" pour quelqu'un qui doit juste consulter ou bidouiller un truc sans toucher à toute l'infra.
Et ça, couplé aux Audit Logs (j'y reviens juste après), c'est très pratique quand plusieurs personnes mettent les mains dedans. Parce que "c'est pas moi, j'ai rien touché" est une phrase universelle, on la retrouve dans toutes les cultures.
Access Lists, le videur à l'entrée
Alors ça, c'est une des fonctions les plus sous-cotées. Les Access Lists permettent de mettre en place des règles d'accès et de les réutiliser partout :
Basic Auth (login/mot de passe) : parfait pour protéger une appli pas prévue pour être publique, ou un petit outil d'admin que vous ne voulez pas exposer "en clair".
Allow/Deny par IP : le top pour dire "seulement depuis mon IP / mon VPN / mon réseau". Et là, même si quelqu'un devine votre URL, il se prend un mur.
Vous créez une Access List une fois, et ensuite vous l'appliquez à vos Proxy Hosts. Du coup, pas besoin de refaire 50 fois la même conf. C'est propre, c'est net, c'est carré.
Les redirections propres (HTTP -> HTTPS, domaine A -> domaine B, etc.)
Besoin de rediriger un vieux domaine vers un nouveau ? Ou de faire un joli http:// qui part systématiquement en https:// ? Les Redirection Hosts servent exactement à ça. C'est bête mais ça évite d'aller trifouiller des règles Nginx à la main.
Streams - Quand ce n'est pas du HTTP mais que vous voulez quand même un reverse proxy
Le web, c'est bien, mais tout n'est pas en HTTP. Certaines applis parlent en TCP/UDP (bases de données, services réseau, protocoles chelous, etc.). C'est là que Streams entrent en jeu. Cette fonctionnalité vous permet de proxyfier des flux réseau, genre "ce port externe pointe vers ce port interne".
Alors oui, c'est plus "brut" que les Proxy Hosts, mais ça dépanne vraiment quand vous avez un service qui n'a rien à faire derrière un vhost HTTP. Et ça se configure aussi en 2 clics, sans incantations démoniaques.
404 Hosts - La sortie de secours
Les 404 Hosts, c'est la petite finition qui fait plaisir (non, rien à voir avec votre salon de massage préféré). Vous pouvez définir un "host poubelle" qui répond proprement quand quelqu'un tape un domaine qui n'existe pas chez vous, ou quand un bot scanne votre serveur en espérant trouver /phpmyadmin par magie.
Au lieu de laisser traîner une réponse moche ou ambiguë, vous renvoyez une 404 nette, propre, assumée. C'est pas de la sécurité absolue, mais c'est une bonne hygiène, et ça évite de donner trop d'infos aux curieux.
Audit Logs
Dans Audit Logs, vous avez l'historique des actions effectuées dans l'interface : création/modif de hosts, changements de certifs, etc. C'est le genre de truc dont on se fout… jusqu'au jour où on en a besoin. Et là, vous êtes content de pouvoir remonter le film de l'horreur.
Et enfin, mon bonus : Le mode "je sais ce que je fais" (les options avancées Nginx)
Et si un jour vous voulez aller un cran plus loin, NPM permet aussi d'ajouter des réglages plus "Nginx pur jus" par host (headers, règles, conf custom). Donc vous commencez en mode clic-clic, et si vous devenez un peu psycho sur l'optimisation, vous pouvez aussi affiner. Sans tout casser, normalement.
2/3 conseils de daron pour éviter les boulettes
Ne laissez pas l'admin ouvert au monde : le port 8181 (ou votre port d'admin) c'est "pour vous". Si possible, limitez-le via pare-feu / VPN / IP autorisées. C'est le panneau de commande de votre château, pas un distributeur de bonbons.
Utilisez les Access Lists pour tout ce qui est sensible : dashboards, outils d'admin, services pas prévus pour Internet, etc.
Pensez au DNS-01 si vous voulez des wildcards ou si vous n'avez pas envie d'exposer le port 80.
Et par rapport aux autres ?
Je vous vois venir les puristes : "Oui mais Traefik c'est mieux car c'est dynamique". C'est vrai. J'ai testé Traefik, et c'est une tuerie pour les environnements qui bougent tout le temps. Mais sa config en YAML peut vite devenir une usine à gaz si vous débutez. Caddy est top aussi (un seul fichier de conf), mais il faut quand même mettre les mains dans le cambouis.
Perso, je pense que Nginx Proxy Manager est un excellent choix pour un homelab par exemple. C'est un peu le choix du confort, celui des grosses feignasses comme moi parce que c'est visuel, c'est du clic-bouton clic clic, et pour un petit serveur perso, c'est franchement imbattable.
Bref, si vous galérez encore avec vos vhosts Nginx, arrêtez de vous faire du mal. Installez ça, et profitez de la vie (et de vos week-ends).
Ce matin, je discutais avec Emmanuel (un lecteur fidèle) sur mon
Linkedin Korben
et il m'a partagé une ressource vraiment chouette. Si comme moi vous jouez un peu parfois avec un serveur Proxmox qui tourne à la maison pour vos expérimentations ou votre domotique, vous savez que configurer chaque VM ou conteneur LXC peut vite devenir chronophage. On copie-colle des commandes, on installe des dépendances, on se plante, on recommence... La routine quoi sauf que cette routine peut vite devenir reloue.
Hé bien, fini la galère !!!! Le projet dont je veux vous parler aujourd'hui s'appelle Proxmox VE Helper-Scripts et c'est une collection communautaire de scripts (plusieurs centaines !) qui permet d'installer et de configurer tout un tas de services en une seule ligne de commande.
En gros, c'est une immense boîte à outils pour votre hyperviseur. Vous avez besoin d'une instance Home Assistant pour gérer des ampoules connectées ? Hop, vous lancez le script et ça vous crée le conteneur LXC tout propre. Vous voulez monter un serveur média avec Plex ou Jellyfin ? Pareil, c'est généralement plié en quelques minutes (selon votre connexion évidemment).
Vous allez sur le site, vous cherchez l'outil qui vous intéresse, vous copiez la commande bash fournie (du style bash -c "...") et vous la collez dans le shell de votre nœud Proxmox. Et hop, l'assistant se lance. Il vous pose quelques questions (IP statique ou DHCP, espace disque, RAM... ce genre de trucs classiques) et puis tente de s'occuper de tout le reste (si les planètes sont bien alignées et que votre karma est au top !).
Je trouve ça génial parce que non seulement ça gère l'installation, mais ça s'occupe aussi des mises à jour. Mais bon, attention quand même parce qu'une mise à jour upstream peut parfois casser le script, donc prudence. C'est d'ailleurs super utile si vous utilisez
Proxmox sur un Raspberry Pi
(via Pimox), même si l'architecture ARM peut poser souci avec certains scripts. D'ailleurs, bonne nouvelle pour les utilisateurs de Pimox : il existe Pimox-Scripts, un portage de ces mêmes Helper Scripts mais adaptés spécifiquement pour ARM/Raspberry Pi. Tous les scripts ne sont pas encore dispos (moins de contributeurs), mais y'a déjà de quoi faire !
Parmi les scripts disponibles, on retrouve les classiques Docker, AdGuard Home, Pi-hole, mais aussi des trucs plus pointus pour le monitoring ou la sécurité. C'est vraiment très complet, y compris si vous êtes dans une optique de
création de lab de cybersécurité
.
Après, je dois quand même vous faire une petite mise en garde de circonstance. Car comme d'habitude, exécuter des scripts bash trouvés sur le net direct en root... comment dire... c'est jamais sans risque. Le code est open source et maintenu par une communauté active, ça facilite l'audit, mais ce n'est pas une garantie de sécurité absolue. Sauf si vous aimez vivre dangereusement, jetez toujours un œil au code avant de valider. La confiance n'exclut pas le contrôle !!
Un grand merci à Emmanuel pour le tuyau initial et à Karl pour l'info sur Pimox-Scripts !
Tim Berners-Lee, le papa du Web,
tape du poing sur la table
. Dans cette interview accordée au Guardian aujourd'hui, il explique en gros qu'il est grand temps de "reprendre Internet" aux géants qui l'ont transformé en machine à fric.
Il était temps que ça sorte !
Parce lui parle carrément d'une "bataille pour l'âme du web". Rien que ça ! Selon lui, le web actuel est devenu un truc "optimisé pour la méchanceté" et la surveillance de masse. Je ne peux pas le contredire sur la méchanceté et en effet, la centralisation excessive et le modèle actuel ont largement perverti sa vision d'origine.
Sa solution, vous en avez peut-être déjà entendu parler, c'est le projet Solid (porté notamment par sa startup
Inrupt
) qui propose de stocker ses données dans des "pods" personnels. L'idée c'est de découpler les données des applications. Vous gardez vos infos dans votre pod (hébergé chez vous ou chez un fournisseur de confiance) et vous donnez accès aux apps au cas par cas. Comme ça on peut reprendre (un peu) le contrôle de notre vie en ligne.
Il s'inquiète aussi pour l'IA et réclame un "CERN de l'IA" pour éviter que la technologie ne nous échappe totalement. C'est mal barré ça je pense, même si je suis d'accord avec lui.
Perso en ce qui me concerne, j'ai jamais changé mon fusil d'épaule et vous le savez, puisque depuis toujours j'invite tout le monde dès que j'en ai l'occasion à créer son site, à créer son forum, à créer sa plateforme et à en finir avec ces conneries de plateformes centralisée.
Alors peut-être que ça ne marchera pas, ou peut-être que son appel sera entendu et que ça marchera. Mais en tout cas, si à un moment, vous voulez publier des trucs sur le web, essayez un tout petit peu d'héberger vos propres trucs vous-même. Attentio, je ne vous dis pas de monter un cluster Kubernetes dans votre salon (sauf si vous kiffez ça) ou de switcher en mode auto-hébergement pur et dur sur un Raspberry Pi (bien que ce soit très cool avec
Yunohost
)... Non, vous pouvez simplement prendre un hébergeur comme O2Switch par exemple. C'est pas très cher.
Je crois que quand on a une passion, on peut mettre un petit peu d'argent dedans pour se faire plaisir. Puis ça peut marcher dans l'autre sens aussi... À l'époque, moi je me souviens, il y avait un pote qui ouvrait son serveur pour qu'on puisse y mettre des pages web et ce genre de truc via un petit FTP. Donc ceux qui savent gérer des serveurs web, vous pouvez peut-être aussi envisager de créer un espace non pas accessible à la Terre entière, mais au moins accessible à vos amis, à des connaissances, gratuitement. Un truc un peu facile à utiliser, à l'ancienne...
Voilà, je trouverai ça vraiment cool que ça revienne un petit peu à la mode et que le web se repeuple. Qu'on sorte un peu des GAFAM et des algos toxiques...
Quelques pages statiques et c'est suffisant pour s'exprimer sans se prendre le chou avec la technique. J'en suis la preuve vivante ! Le site sur lequel vous êtes est 100% statique. On n'a pas besoin de monter une startup à chaque fois qu'on veut faire un site.
Je ne sais pas si les fournisseurs d'accès internet offrent toujours un petit bout d'espace web, mais si vous avez ça qui traîne, profitez-en aussi.
Bref, écoutez Papi Tim et Tonton Korben et ensemble, reprenons le contrôle, un serveur à la fois.
Si vous en avez marre de confier vos notes perso à Notion ou Evernote et que vous voulez reprendre le contrôle de vos données,
Alexandrie va vous plaire
! C'est une app open source française qui permet de prendre des notes en Markdown au travers d'une interface plutôt moderne, tout en gardant vos données là où vous voulez qu'elles soient : Chez vous.
Alexandrie, c'est avant tout un éditeur Markdown amélioré qui vous permet d'organiser vos notes par workspaces, catégories et tags. L'interface est clean, la recherche instantanée, et vous pouvez exporter vos notes en PDF ou Markdown !
Ce qui est cool, c'est que l'app fonctionne aussi hors ligne grâce à la technologie PWA. Vous pouvez donc bosser sur vos notes dans le train ou l'avion, et tout se synchronise dès que vous avez du réseau. Et si vous voulez partager des notes avec d'autres personnes, y'a un système de permissions pour gérer qui peut voir et modifier quoi.
Côté technique, Alexandrie tourne sur Vue/Nuxt pour le frontend et Go pour le backend, avec une base MySQL et un stockage compatible S3 et comme d'hab, tout ça se déploie avec un simple "docker compose up".
La grosse différence avec Notion ou Obsidian, c'est que vous contrôlez tout. Vos données restent sur votre serveur ou votre machine, rien ne transite par des serveurs américains. C'est donc de l'auto-hébergé, 100% hors ligne si vous voulez, et c'est compatible avec plein d'autres apps Markdown si vous souhaitez migrer plus tard.
C'est bien de voir une app française qui mise sur la souveraineté des données plutôt que sur le cloud américain ! C'est en train de devenir quelque chose de très recherché en ce moment. Bon après, faut être prêt à gérer soi-même l'hébergement, mais avec Docker c'est pas la mer à boire non plus.
Et si vous appréciez ce genre de découvertes, vous pouvez me soutenir sur
le Patreon de Korben
.
Voilà, si vous cherchez une alternative open source à Notion qui respecte votre vie privée, c'est
par ici
.
"Merde, le port 8080 est squatté par quoi encore???"
Si vous touchez un peu à l'auto-hébergement ou que vous gérez plus de trois services sur un serveur, vous avez forcément déjà hurlé cette phrase devant votre terminal. C'est le grand classique... on lance un nouveau conteneur, ça plante, et on finit par passer 20 minutes à faire des netstat ou des lsof pour comprendre qui fait la loi sur le réseau. Bref, c'est le bordel, et c'est exactement là que Portracker entre en scène pour nous sauver la mise.
Développé par Mostafa Wahied, Portracker n'est pas un énième scanner de ports réseau agressif façon Nmap, mais plutôt une vigie interne pour vos machines. C'est un outil auto-hébergé qui va scanner son propre hôte pour cartographier en temps réel (enfin, avec un rafraîchissement périodique réglable, généralement toutes les minutes) tous les services qui tournent et les ports qu'ils occupent. L'idée, c'est d'avoir une vue propre et centralisée pour dégager ce vieux tableur Excel que vous oubliez de mettre à jour une fois sur deux.
Le truc est super bien foutu, surtout pour les fans de Docker. Pour ceux qui se demandent comment ça se passe sous le capot, l'outil fait intelligemment la distinction entre les ports internes d'un conteneur et ceux qui sont réellement exposés sur l'hôte.
Alors oui, ça marche comment pour mapper tout ça ? En gros, ça utilise les API natives pour voir que votre instance Ghost est sur le 2368 en interne mais ressort sur le 8080 à l'extérieur. C'est le genre de truc qui évite bien des migraines quand on commence à empiler 50 conteneurs. Il y a même un support aux petits oignons pour TrueNAS pour les amateurs de NAS costauds.
Côté dashboard, c'est du propre puisqu'on est sur une interface moderne avec React, Tailwind et Shadcn UI, avec un mode sombre (évidemment) et des filtres en live qui répondent au quart de tour.
Mais la vraie force de Portracker, c'est sa capacité à bosser en meute. Vous pouvez connecter plusieurs instances entre elles via un système de "Peers" (en peer-to-peer donc) pour tout centraliser sur un seul tableau de bord. Pratique si vous avez un serveur chez vous, un VPS chez OVH et une vieille machine qui traîne dans un placard. Vous pouvez même organiser ça avec une hiérarchie parent-enfant pour mapper vos machines virtuelles sous leurs hôtes physiques respectifs.
Techniquement, c'est du solide mais ça reste léger : du Node.js avec Express et des WebSockets pour le backend, et une base SQLite (via better-sqlite3) embarquée pour ne pas avoir à se fader la conf d'une base externe. Pour le déploiement, ça se passe via Docker et pour les paranos de la sécurité (je vous vois ^^), sachez que l'outil supporte désormais l'utilisation d'un Docker Socket Proxy (genre celui de Tecnativa). Ça permet d'éviter de filer les droits root sur votre socket Docker à n'importe qui. Et depuis la version 1.2.0, vous pouvez même verrouiller l'accès avec une vraie authentification.
Notez que pour fonctionner correctement et aller fouiller dans les entrailles du système, l'outil a besoin de certaines permissions (les fameuses capabilities Linux). Il lui faudra généralement SYS_PTRACE, et éventuellement SYS_ADMIN si vous le faites tourner sur Docker Desktop ou macOS. C'est le prix à payer pour avoir une visibilité totale sur ce qui se passe dans les tuyaux.
Le projet cartonne pas mal sur GitHub et la communauté est super active donc si vous en avez marre de jouer à cache-cache avec vos ports, c'est clairement l'outil qu'il vous faut pour reprendre le contrôle de vos déploiements sans finir en PLS à chaque conflit de port 80. Et si jamais vous stressez sur la sécurité de vos ports Docker, n'oubliez pas qu'on peut aussi jouer avec les règles iptables pour blinder tout ça, mais ça, c'est une autre histoire !
I was very disappointed, but I wanted to err on the side of caution. This weekend was the running of the RAC Winter contest, which is very well attended. I get a lot of practice running in this contest, and it is a great help in my contesting jou...