Vue normale

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

Portracker - Fini le bordel des ports qui plantent vos déploiements

Par : Korben
26 janvier 2026 à 09:00

"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 !

Merci à AeroStream972 pour la découverte !

Bichon - L'archiveur Rust pour garder une trace de vos emails

Par : Korben
21 janvier 2026 à 10:00

Vous avez 15 ans d'emails répartis sur 4 comptes différents et vous aimeriez bien pouvoir chercher dedans sans devenir complétement fou ? Bichon est fait pour vous . C'est un archiveur d'emails open source écrit en Rust qui synchronise vos boîtes mail et vous permet de tout fouiller via une interface web ultra léchée.

Le truc c'est que Bichon n'est pas un client mail. Vous ne pouvez pas envoyer ou recevoir de messages avec. C'est vraiment un outil d'archivage pur qui se connecte à vos serveurs IMAP, aspire tous vos emails, les compresse, les déduplique et les indexe pour que vous puissiez faire des recherches full-text dessus pour par exemple retrouver ce mail de 2012 où votre ex vous expliquait sa recette secrète du tiramisu.

L'interface web est plutôt propre, codée en React avec ShadCN UI. Vous pouvez filtrer par compte, par dossier, par expéditeur, par nom de pièce jointe, par taille, par date... Y'a même un dashboard avec des stats sur vos emails si vous aimez les graphiques. Et bonne nouvelle, le WebUI est disponible en 18 langues, donc le français est de la partie !

Côté authentification, ça gère le mot de passe IMAP classique mais aussi OAuth2 avec refresh automatique du token. C'est hyper pratique pour Gmail ou Outlook qui aiment bien compliquer les choses. Y'a aussi un support proxy si vous êtes derrière un firewall capricieux et une découverte automatique des serveurs IMAP. Hop, on branche et ça synchronise !

La stack technique envoie du bois également puisque le backend est en Rust basé sur le framework Poem, et le moteur de recherche/stockage utilise Tantivy. C'est un moteur de recherche full-text codé lui aussi en Rust, l'équivalent de Lucene mais sans la lourdeur de la JVM. Pour les métadonnées et la config, le projet utilise Native_DB et le tout est packagé en binaires pour Linux, macOS et Windows, ou en image Docker si vous préférez le self-hosted sans prise de tête.

Un truc important depuis la version 0.2.0 c'est que le modèle d'authentification a changé. L'ancien compte "root/root" a sauté au profit d'un compte admin par défaut (identifiants : "admin" / "admin@bichon"). Pensez donc à changer le mot de passe immédiatement, sinon ce sera la fête du slip dans vos archives. Et notez bien que le mot de passe de chiffrement que vous définissez au premier lancement ne peut pas être changé ensuite, donc choisissez-le bien, genre "KorbenCestLePlusBeau123".

Et si vous avez déjà des tonnes de vieux mails qui traînent en local, sachez que depuis la v0.3.0, y'a également un outil en ligne de commande qui s'appelle bichonctl. Ça permet d'importer vos archives au format EML ou MBOX directement dans le bouzin. C'est nickel pour centraliser tout votre passé exporté par ailleurs.

Bref, si vous cherchez un moyen propre d'archiver vos mails sans que ça bouffe toute votre RAM comme un client Java des années 2000, Bichon fait grave le taff. C'est léger, c'est rapide, et c'est en Rust. Ensuite, vous pourrez dormir tranquille !

Merci à Lorenper pour l'info et si vous cherchez d'autres outils cools pour vos mails, jetez aussi un œil à Mailspring ou si vous kiffez le stockage en Rust, Garage est une pépite.

SHM - La télémétrie qui respecte vos utilisateurs

Par : Korben
9 janvier 2026 à 09:00

Si vous développez un logiciel open source auto-hébergé, vous connaissez sûrement ce dilemme qui est de comment savoir si votre projet est réellement utilisé sans devenir l'affreux Big Brother que vous combattez ? Soit vous ne mesurez rien et vous codez dans le vide, soit vous collez du Google Analytics ou assimilé et vous trahissez l'esprit même du self-hosting.

Benjamin Touchard (que certains d'entre vous connaissent peut-être via son projet Ackify ) a décidé de résoudre ce problème avec SHM, pour Self-Hosted Metrics . Son idée c'est de proposer une télémétrie respectueuse de la vie privée, où chaque instance génère sa propre identité cryptographique dès le premier démarrage.

Concrètement, quand vous intégrez le SDK dans votre application (dispo en Go et Node.js 22+), chaque installation génère une paire de clés Ed25519, un peu comme quand vous générez vos clés SSH pour la première fois. Tous les échanges avec votre serveur SHM sont ensuite signés cryptographiquement, ce qui garantit l'intégrité des requêtes et leur origine. L'instance a une identité persistante (pseudonyme), mais ça n'identifie pas l'utilisateur final.

Côté données collectées, ensuite c'est vous qui décidez. Votre app envoie périodiquement un JSON avec les métriques que vous avez définies, et le dashboard s'adapte dynamiquement. Y'a pas de schéma imposé, pas de PII (données personnellement identifiables) et par défaut, le SDK collecte aussi des infos système (OS, CPU, RAM), mais c'est désactivable.

Pour ceux qui veulent héberger le bouzin, c'est du Docker classique... Vous créez un fichier compose.yml, vous configurez le DSN PostgreSQL, vous récupérez les migrations SQL, et hop un docker compose up -d. Le dashboard est alors accessible par défaut sur le port 8080 et affiche automatiquement vos métriques métier, la distribution des versions, le nombre d'instances actives, etc.

Et pour les utilisateurs finaux qui ne veulent vraiment pas participer, un simple DO_NOT_TRACK=true dans les variables d'environnement désactive complètement la télémétrie.

Le code du serveur est sous licence AGPL (les SDKs ont leur propre licence, vérifiez sur le dépôt) et y'a aussi des badges SVG à coller dans vos pages README pour afficher fièrement le nombre d'instances de votre app qui tournent.

Bref, si vous distribuez un logiciel auto-hébergé et que vous voulez savoir combien d'instances sont actives sans compromettre la vie privée des utilisateurs, c'est le top !

Merci à Benjamin pour le partage !

❌
❌