Aller au contenu
Myrhex
English

Dossier de mission06 / 06

Searxly

Navigateur Mac2026Archivé

Un navigateur Mac qui embarquait son propre moteur de recherche et le faisait tourner sur votre propre machine.

Chercher sans entreprise au milieu

Searxly était un navigateur Mac natif, en SwiftUI sur WebKit, qui embarquait dans l’app un métamoteur SearXNG complet et le faisait tourner sur votre propre Mac. Vos requêtes allaient de votre machine aux moteurs de recherche et nulle part ailleurs : aucune entreprise de recherche entre les deux, aucun compte, aucune télémétrie. Tor était intégré pour tout le reste.

Exit Docker, place à Python

La première version avait besoin de Docker. Deux jours après la publication du code source, Docker avait disparu, remplacé par un Python 3.12 relocalisable et signé, avec SearXNG intégré à l’app, chaque bibliothèque native signée sous le hardened runtime, et un autotest qui servait une vraie recherche avant tout empaquetage. La compilation supprimait même les scripts de lancement de pip, parce que leurs chemins auraient emporté le nom d’utilisateur de la machine de compilation dans chaque copie.

En bac à sable, avec un auxiliaire tenu en laisse courte

L’app tournait dans l’App Sandbox. Lancer Python et Tor demandait un programme auxiliaire hors du bac à sable : celui-ci n’acceptait donc que les connexions venant de code signé par la même équipe, et ne pouvait toucher que deux dossiers, avec les liens symboliques résolus avant la vérification, pour que ni un ../ ni un lien piégé ne puisse s’en échapper.

Un quart de million de règles

Le blocage des publicités et des traqueurs compilait 256 816 règles issues de 14 listes dans le bloqueur de contenu de WebKit lui-même, découpées en lots de 40 000 pour rester dans les limites de WebKit : le blocage intervenait ainsi avant que la plupart des scripts de la page aient pu s’exécuter.

Une base de code, deux produits

Searxly Maximum, c’était le même code compilé en une seconde app, pour les gens qui partent du principe qu’ils sont surveillés : Tor toujours actif et impossible à désactiver, et un coupe-circuit qui restait fermé en cas d’échec, retenant le propre trafic de Searxly tant que la protection n’était pas vérifiée. Une bêta iPhone a suivi sur TestFlight. Elle n’est jamais arrivée sur l’App Store.

Terminé

Huit versions sont sorties en 22 jours, de la 0.9.5 le 6 juillet 2026 à la 1.4 le 28 juillet. Puis j’ai arrêté. Le code reste public pour qui veut lire comment c’était fait. Sa licence était PolyForm Noncommercial, ce qui en fait du code source consultable plutôt que de l’open source, et l’arborescence publique laisse de côté quelques parties : à elle seule, elle ne permet donc pas de compiler une app qui fonctionne.