Vue normale

Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.
À partir d’avant-hierKorben
  • ✇Korben
  • Holeberry - Le Pi-hole dans la barre de menus du Mac
    Si vous avez un serveur Pi-hole à la maison, il a dû vous arriver qu'un site déconne, qu'une image ne charge pas, ou qu'un simple bouton ne réponde plus. Alors pour remédier à ça, vous ouvrez un onglet vers l'admin Pi-hole, vous fouillez dans les requêtes bloquées, vous whitelistez au jugé, puis vous rechargez pour voir si ça marche. Ça prend 30 secondes à chaque fois, ça casse les couilles et ça arrive plus souvent que ce qu'on aimerait... Mais heureusement, Holeberry met tout ça dans la barre

Holeberry - Le Pi-hole dans la barre de menus du Mac

Par : Korben ✨
15 août 2026 à 19:13

Si vous avez un serveur Pi-hole à la maison, il a dû vous arriver qu'un site déconne, qu'une image ne charge pas, ou qu'un simple bouton ne réponde plus. Alors pour remédier à ça, vous ouvrez un onglet vers l'admin Pi-hole, vous fouillez dans les requêtes bloquées, vous whitelistez au jugé, puis vous rechargez pour voir si ça marche. Ça prend 30 secondes à chaque fois, ça casse les couilles et ça arrive plus souvent que ce qu'on aimerait...

Mais heureusement, Holeberry met tout ça dans la barre de menus de macOS pour vous faire gagner grave de temps

L'app détecte l'onglet actif de Safari, Chrome ou Firefox et débloque le domaine correspondant en un clic. Comme ça, plus besoin de deviner lequel des quarante domaines bloqués casse la page. Elle affiche aussi les derniers blocages en direct, et permet de couper le filtrage pour une durée choisie, le temps de finir un achat en ligne qui n'aime pas les bloqueurs.

Elle peut aussi gérer deux instances Pi-hole en parallèle avec synchronisation, pratique quand on a un Pi principal et un secondaire qui prend le relais. Les identifiants partent dans la Keychain macOS et pas dans un fichier de conf qui traîne comme ça c'est sécurisé. Et surtout, ça supporte Pi-hole v5 et v6 aussi bien en local qu'à distance.

Si ça vous branche, notez que l'app n'est pas notarisée, donc Gatekeeper va faire la gueule. La commande pour passer outre est indiquée dans le README :

xattr -cr /Applications/Holeberry.app

Mais vous pouvez aussi utiliser Sentinel pour faire ça.

À récupérer sur GitHub pour ceux qui veulent !

  • ✇Korben
  • Un demi-million de domaines anti-pub stockés dans 50 Ko de RAM
    Pi-hole sur un Raspberry Pi, c'est cool, mais ça vous coûte quand même quelques dizaines d'euros (lien affilié) et ça squatte une prise en permanence. C'est pourquoi M-Abozaid a fait tenir la même chose dans une clé ESP32-C3 à pas cher (lien affilié). Son firmware bloque ainsi 537 000 domaines de pub en utilisant à peine 50 Ko de RAM, et est capable de répondre à une requête bloquée en 10 millisecondes. Maintenant que j'ai toute votre attention, je vais vous expliqu

Un demi-million de domaines anti-pub stockés dans 50 Ko de RAM

Par : Korben ✨
20 juillet 2026 à 08:13

Pi-hole sur un Raspberry Pi, c'est cool, mais ça vous coûte quand même quelques dizaines d'euros (lien affilié) et ça squatte une prise en permanence. C'est pourquoi M-Abozaid a fait tenir la même chose dans une clé ESP32-C3 à pas cher (lien affilié). Son firmware bloque ainsi 537 000 domaines de pub en utilisant à peine 50 Ko de RAM, et est capable de répondre à une requête bloquée en 10 millisecondes.

Maintenant que j'ai toute votre attention, je vais vous expliquer comment ça marche. En fait, un Pi-hole classique charge toute sa liste de blocage en RAM, sauf que l'ESP32 lui, comme il n'a que quelques centaines de Ko de mémoire vive et pas de PSRAM, il est donc techniquement impossible d'y caser un demi-million de domaines comme ça simplement. Du coup notre cher développeur a dû ruser en hashant chacun des domaines bloqués à max 5 octets chacun (40 bits max).

Tous ces hashes sont ensuite triés une fois pour toutes, puis gravés directement dans la flash de la puce (4 Mo suffisent). Puis quand une requête DNS arrive, le firmware hashe le domaine demandé et fait une recherche par dichotomie dans la flash. Environ 18 lectures suffisent pour trancher parmi les 537 000 entrées, d'où les fameux 10 ms. Et la RAM ne sert jamais à stocker la liste, mais juste à faire tourner le bazar réseau.

Et là où c'est vraiment malin, c'est que 40 bits de hash restent quasi sans collision. Il n'en a eu aucune jusqu'à 141 000 domaines, et une seule à 537 000 donc autant dire rien du tout !

Voir cette vidéo sur YouTube

Après il y a peu de chances que ça remplace Pihole, en tout cas pour le moment, parce qu'il n'y a pas de serveur DHCP. Et activer les mises à jour OTA du firmware demande d'avoir deux partitions, du coup la capacité de l'ESP 32 tombe à 250 000 domaines.

Après le dashboard est plutôt sympa, ça tourne en mDNS sur l'adresse c3adblock.local, avec des compteurs de blocage par client, le bannissement d'un appareil et la possibilité d'ajouter vos propres noms de domaines à bloquer.

Voilà moi je vois vraiment ça comme un espèce de résolveur de secours plutôt qu'un vrai remplaçant pour Pi-hole. Vous le placez derrière votre serveur DNS principal et le jour où celui-ci est en panne, la petite clé prendra le relais pour pas cher. En plus comme on le voit dans la vidéo, ça peut s'alimenter sur le port USB de n'importe quel routeur, donc c'est pratique.

C'est totalement open source sous licence MIT et c'est livré avec un script python qui permet de construire la table des hashes à partir des listes StevenBlack et Hagezi. Pour plus tard, le développeur prévoit un Bloomfilter en mémoire RAM pour zapper la lecture flash sur les 99 % des requêtes qui ne matchent aucun domaine et puis le serveur DHCP dont je vous parlais.

Si les DNS auto-hébergés vous parlent, je vous ai déjà présenté Technitium qui remplace carrément Pi-hole, Unbound et BIND . Et pour les bidouilles ESP32 à quelques euros, y'en a plein, genre celle qui remplace le Touch ID d'Apple .

Bref, un demi-million de domaines de pub bloqués par une puce plus petite qu'une clé USB c'est bien joué !! Le repo est sur GitHub si ça vous tente.

Source

❌
❌