Vue normale

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

ShadowBroker - Une salle de crise OSINT mondiale chez vous

Par : Korben ✨
19 mai 2026 à 10:13

Les avions en vol, les cargos, les satellites espions, les zones de brouillage GPS... Imaginez tout ce bordel, à l'échelle de la planète, visible sur une seule carte sombre directement chez vous. Ce serait fou non ? Hé bien c'est ce que nous propose BigBodyCobain qui a sorti ShadowBroker , un tableau de bord OSINT gratuit et open source qui agrège plus de 60 flux de renseignement public, rafraîchis en continu.

Pour l'installer, un git clone, et on entre dans le dossier. Suffit ensuite de lancer un docker compose up (faut juste Docker, et ça tourne sous Linux, Mac ou Windows), vous ouvrez localhost:3000 et la carte se remplit toute seule ! Ça marche même sur un Raspberry Pi 5. C'est donc largement plus simple que la moitié des trucs que je vous présente ici en général.

Y'a qu'une seule clé API qui est vraiment obligatoire, c'est celle d'aisstream.io pour le trafic des bateaux, et c'est une inscription gratuite. Le reste tourne sans rien, sauf qu'une clé OpenSky (gratuite aussi) est chaudement recommandée pour une couverture aérienne correcte, + quelques couches secondaires qui acceptent leur propre clé pour avoir de la meilleure info.

L'interface principale de ShadowBroker : une carte du globe qui empile en temps réel avions, navires et satellites, chat MESH à gauche et fil Global Threat Intercept à droite

Pour ceux qui débarquent, l'OSINT c'est le renseignement à partir de sources ouvertes, c'est à dire toutes ces données déjà publiques que personne ne prend le temps d'aller croiser. Donc cet agrégateur ne pirate rien... il ramasse juste ce qui traîne déjà en accès libre.

Et là, vous vous demandez ce qu'il y a dedans en détails ?

Hé bien accrochez-vous parce qu'on y retrouve les avions civils via OpenSky, les militaires via adsb.lol, l'ADS-B étant le signal que tout avion crache en vol, avec Air Force One bien visible dès le décollage. Et les bateaux sont suivis en AIS, l'équivalent radio côté maritime.

Y'a aussi les satellites dont la trajectoire est calculée depuis leurs paramètres orbitaux, les séismes de l'USGS, les feux repérés par la NASA, les conflits agrégés depuis GDELT, la ligne de front ukrainienne via DeepState et même un tracker pour suivre les porte-avions américains (c'est une position estimée à partir de l'actu publique, et pas du temps réel).

Du coup ça va loin ! Les zones de brouillage GPS probable sont même déduites quand le signal de navigation des avions se dégrade et on y retrouve aussi plus de 11 000 caméras de circulation aussi, de Londres à Singapour en passant par les États-Unis et l'Espagne.

Le panneau Data Layers (séismes, satellites, brouillage GPS, lignes de front) ouvert sur une zone de conflit, avec le détail des reports terrain

Il y a même un tuner d'ondes courtes intégré, branché sur des centaines de récepteurs radio partagés par des amateurs (les SDR, des radios pilotées par logiciel). Et les scanners de la police américaine sont aussi en écoute directe.

Et en faisant un clic droit n'importe où sur le globe, ce radar mondial vous sortira un dossier du pays, avec le type de gouvernement, le chef d'État tiré de Wikidata, un résumé Wikipédia et la dernière image satellite Sentinel-2 disponible.

Côté bidouille, vous pouvez aussi brancher votre propre dongle RTL-SDR, une clé radio à pas cher, en plus du flux distant pour choper les bateaux à portée de votre antenne. Et avec une clé Shodan, un overlay optionnel ajoute les objets connectés visibles depuis Internet, tels que les caméras, les systèmes industriels, les bases de données et j'en passe.

Ça rejoint ce bon vieux moteur de recherche d'objets connectés dont je vous parlais il y a quelques années. Et si l'OSINT vous gratte vraiment, y'a aussi de quoi vous entraîner sérieusement avec ce site aussi.

La légende de cet outil veut que l'idée soit partie d'une envie de pister les déplacements d'Elon Musk avec une interface cyberpunk. Le nom, lui, vient du Shadow Broker de Mass Effect (rien à voir avec le groupe de hacker Shadow Brokers ). D'après le créateur, GitHub aurait même fait retirer le dépôt d'origine à cause de ce nom, d'où un petit détour par GitLab avant de revenir à Github.

Bref, ce truc agrège une quantité hallucinante de données publiques mondiales...

Après, au niveau du code, tout n'est pas non plus très clair car même si l'OSINT c'est légal, le code du scrapeur d'une carte de guerre contourne volontairement la protection Cloudflare Turnstile, ce qui pose une vraie question légale côté CFAA, la loi américaine contre l'intrusion informatique. C'est une zone grise...

Et y'a aussi des failles puisque plusieurs endpoints ne sont pas authentifiés, dont un qui laisse n'importe qui envoyer des messages APRS (le réseau de positionnement des radioamateurs) sous n'importe quel indicatif, ce qui est une infraction pure et simple aux règles radio.

Quant à la messagerie soi-disant chiffrée ne l'est pas de bout en bout, mais juste obfusquée donc ne faites rien transiter de sensible dessus.

Voilà si je vous dis tout ça, c'est pour que vous gardiez cet outil bien au chaud en local et que vous ne l'exposiez pas sur le net.

Zoom sur la côte de Floride : chaque marqueur est un avion suivi en direct via l'ADS-B, façon radar ( Source : GIGAZINE )

Mais bon, ça fait une belle salle de crise gratuite, open source sous licence AGPL, installable par exemple sur un Raspberry Pi. Grâce à ça, le monde n'a jamais été aussi "lisible" depuis votre canapé !

Un grand merci François pour le lien !

GridTV, le guide TV open source pour votre setup IPTV

Par : Korben ✨
7 mai 2026 à 10:30

Bon, maintenant que vous avez vos chaînes IPTV qui tournent via Tunarr ou xTeVe, votre flux XMLTV est super propre. Mais il vous manque un seul truc : Un guide de programme potable.

Hé bien GridTV développé par l'ami JohnnyBeGood est là pour ça !

GridTV c'est une interface web en PHP/JS/CSS qui transforme toute source XMLTV compatible en guide TV façon grille horizontale, avec l'indicateur "maintenant" visible en permanence, une barre de progression du programme en cours, et les émissions passées qui se retrouvent automatiquement grisées. C'est exactement ce à quoi ressemble le guide TV de votre box opérateur, mais en mieux, et pour votre propre contenu !

Pour le déploiement, Docker est le chemin recommandé plutôt que de tout configurer à la main : git clone, cd GridTV, docker compose up -d, et hop, vous ouvrez localhost:8080.

Un assistant de setup vous demandera alors votre source EPG obligatoire et une playlist M3U si notamment vous voulez utiliser le player intégré, et une fois validé, vous retombez directement sur la grille.

Ça se met en place en moins de 5 min mais si vous préférez installer sans Docker, ou plutôt sans la couche conteneur, il y a également sur le Github des exemples de config pour Apache et Nginx dans la doc. Caddy fonctionnera aussi et la doc concernant Traefik, c'est pour le cas où GridTV tourne en Docker mais derrière un reverse proxy.

Côté fonctionnalités, le player HLS s'ouvre en PiP (Picture in Picture) dans un coin en cliquant sur une chaîne et le multi-EPG vous permettra de configurer plusieurs sources avec un petit switch. GridTV propose aussi des rappels de programme via notifications navigateur, 15 minutes avant la diffusion. Mais pour en profiter, l'onglet du browser doit rester ouvert et les notifs autorisées.

Et il y a aussi possibilité de générer un export PDF/PNG du guide sur 24h. C'est pas indispensable mais ça permet pour ceux qui veulent d'imprimer le programme de la soirée.

Chaque visiteur de l'instance peut aussi utiliser / paramétrer ses propres URLs XMLTV/M3U, car rien n'est stocké côté serveur. Hé oui, tout passe par le localStorage du navigateur donc vous pouvez partager votre instance avec autant de monde que vous voulez, ça n'a pas d'impact.

La version Steampunk

Et il y a même des thèmes genre cyberpunk, steampunk, magazine ou le thème par défaut. Et la page de monitoring admin expose également une sonde accessible via un endpoint compatible Uptime Kuma qui renvoie le code HTTP 200 si tout va bien. Sinon, ce sera du code 503. Bref, ça vous connaissez...

Bref, l'outil est jeune mais bien construit et une démo live tourne ici guide.demo.johnnybegood.fr . À suivre donc....

Et si vous cherchez juste des listes de chaînes IPTV gratuites , c'est par là !

ffmpeg-over-ip - Le transcodage GPU distant pour Jellyfin

Par : Korben ✨
4 mai 2026 à 16:15

Jellyfin sans GPU, c'est la croix et la bannière dès que quelqu'un lance un film en 4K. Mais c'était sans compter sur ffmpeg-over-ip qui est capable de transformer un serveur équipé d'un GPU en endpoint de transcoding distant, accessible via un simple binaire qui se fait passer pour ffmpeg. Y'a pas de passthrough GPU, ni besoin de vous lancer dans la config de point de montage réseau exotique.

Le principe c'est que le client reçoit les commandes ffmpeg de Jellyfin (ou Emby), les sérialise et les envoie ensuite via TCP (port 5050) vers un serveur qui lui dispose d'un bon GPU. Et côté Jellyfin, rien ne change puisque le binaire répond exactement comme ffmpeg le ferait (et je vous rassure, y'a un peu d'authentification pour éviter de vous faire squatter votre serveur de transcoding à l'insu de votre plein gré).

Alors imaginons un peu dans quelle situation ça peut être utile... Par exemple, vous pourriez avoir un NUC ou mini-PC tout neuf qui fait tourner Jellyfin dans Docker, et à côté une vieille tour avec une GTX qui traîne dans un coin pour le transcodage. L'avantage c'est que plusieurs clients peuvent ainsi partager le même serveur GPU en parallèle, donc ffmpeg-over-ip peut valoir le coup si vous avez du matériel qui dort dans un coin.

L'outil est signé Anees Iqbal (steelbrain) et voici comment l'installer (pensez à vérifier le contenu du .sh avant) :

curl -fsSL https://ffmpeg-over-ip.com/install-client.sh | sh

Windows a aussi droit à son équivalent PowerShell si vous voulez.

Pour brancher ça sur Jellyfin ensuite, c'est direction Dashboard → Playback → chemin ffmpeg → et faites pointer vers ffmpeg-over-ip-client. Notez que ffprobe doit aussi être redirigé car Jellyfin l'appelle séparément pour les métadonnées. Vous pouvez faire un lien symbolique pour être tranquille :

ln -s ffmpeg-over-ip-client ffprobe

Et ensuite, pour vérifier, cette commande : ./ffmpeg-over-ip-client -version devrait vous retourner les infos de l'instance ffmpeg distante. Si ça répond, c'est que c'est bon !

Notez que la config permet de passer par des variables d'environnement du genre FFMPEG_OVER_IP_CLIENT_ADDRESS pour l'adresse du serveur, FFMPEG_OVER_IP_CLIENT_AUTH_SECRET pour la clé HMAC. Et pour tout ce qui est paramètres avancés, disons que les remappings de filtres complexes qu'on peut faire avec ffmpeg nécessitent encore un fichier .jsonc à créer et paramétrer.

Côté serveur, les accélérations supportées sont : NVENC (NVIDIA), QSV (Intel), VAAPI (Linux), AMF (AMD), VideoToolbox (macOS). Et comme c'est basé sur jellyfin-ffmpeg, du coup y'a toutes les accélérations habituelles sans avoir à recompiler.

Par contre, attention si le serveur GPU tombe, y'aura aucun fallback automatique vers le CPU local. Et si votre réseau interne est en 100Mbps et que vous transcodez du 4K HEVC, le goulot d'étranglement sera le transit réseau, pas le GPU. Donc optez pour un réseau en gigabit minimum dans ce cas.

Bref, c'est simple, propre, et très bien pensé par exemple pour les setups Docker qui n'ont pas d'accès direct au matériel.

OAuth2 Proxy - L'authentification OIDC en reverse proxy

Par : Korben ✨
4 mai 2026 à 11:32

Vous avez un service qui tourne sur le port 8080, mais aucune authentification native dessus et vous voulez ajouter OAuth2 sans avoir à toucher au code ? Vous êtes vraiment exigeant dans la vie !

Mais comme vos désirs sont des ordres, je vous présente oauth2-proxy dont c'est EXACTEMENT le boulot !

Le principe avec cet outil c'est qu'il se glisse entre l'utilisateur et votre application. Ainsi, si la personne n'est pas connectée, elle est alors redirigée vers son provider OAuth2 ou OIDC. Et une fois le token validé, popopop, la requête repart vers son point d'origine avec les infos utilisateur dans les headers HTTP. Et voilà comme votre app reçoit le nom, l'email, et les groupes associés à l'utilisateur ! Plus besoin de gérer l'auth dans votre code c'est que du bonheur !

Et la liste des providers supportés par oauth2-proxy est longue : Google (c'est celui par défaut), GitHub, GitLab, Microsoft Entra ID, Keycloak, Gitea / Forgejo, NextCloud, DigitalOcean, LinkedIn, Bitbucket, Cisco Duo... et un bon vieux client OIDC générique pour tout ce qui expose un accès standardisé. Comme ça si votre SSO interne parle OIDC, vous êtes déjà couvert !

Côté déploiement, c'est un simple binaire en Go et c'est également disponible en image Docker sur quay.io/oauth2-proxy/oauth2-proxy, pour AMD64, ARM64, ARMv6/v7, et quelques architectures plus exotiques du genre ppc64le, s390x pour les bandeurs de mainframes ^^.

Ensuite, l'outil peut fonctionner de 2 façons : Soit en proxy autonome devant votre service, ou en middleware intégré dans un reverse proxy existant comme nginx via le mécanisme auth_request. Dans ce second mode, oauth2-proxy ne fait en réalité que vérifier la session et répondre du code 202 ou 401. C'est nginx qui gère le routage et le proxy lui se contente d'authentifier les gens.

Et voilà, si vous cherchez à minimiser la surface d'attaque, c'est la config à privilégier. Tout est là : github.com/oauth2-proxy/oauth2-proxy , avec la doc complète. Et si vous cherchez quelque chose de plus intégré, avec tunnel et gestion des tunnels VPN en prime, il y a aussi Pangolin dont je vous ai parlé. Et pour du plus simple en contexte Docker, TinyAuth fera également très bien le taf.

Merci à Mathieu Passenaud pour le lien !

Tunarr - Recréer la télévision qu'on aime zapper dans Plex

Par : Korben ✨
1 mai 2026 à 09:08

Vous vous souvenez de l'époque où on s'écroulait comme des merdes dans notre canapé après une grosse journée de boulot et où on regardait juste ce que la télé nous balançait ? Pas de choix à faire sur Netflix, ni de recommandation sur l'Apple TV. On zappait juste en mode no-brain jusqu'à ce qu'on tombe sur une connerie qui réveille notre cerveau reptilien.

Eh bah le dev Chris Benincasa a créé Tunarr , un soft open source qui ressuscite ce truc-là en transformant votre Plex ou Jellyfin en chaîne de TV en continue.

Grâce à Tunarr, vous configurez vos chaînes dans une interface web (en glisser-déposer...), le soft émule un tuner HDHomeRun (le standard de la TV réseau aux US), que Plex, Jellyfin ou Emby reconnaissent ensuite comme une vraie source TV. Et voilà comment vous avez maintenant votre propre antenne maison.

Ou alors vous exportez en M3U pour des players IPTV comme Tivimate ou UHF, le tout avec un EPG intégré (c'est le guide des programmes), des bumpers (vous savez ces petites séquences Tchii Tchaaa ou M6 Mhmmmh des chaînes TV), des pubs vintage entre les programmes et même des clips musicaux pour faire authentique.

Bref, du déjà-vu, mais avec votre catalogue d'émissions à vous.

L'histoire de ce projet est d'ailleurs assez marrante car c'est un fork de dizqueTV (de vexorian), lui-même fork de pseudotv-plex (de DEFENDORe) et chacun de ces devs contribuent à Tunarr. 3 générations de mainteneurs qui collaborent sur le même projet, ça fait plaisir à voir car dans l'open source et la tech en général, ce genre de filiation c'est souvent rare tant les egos sont groooos.

Et côté fonctionnalités, c'est plutôt pas mal. Vous programmez vos chaînes par créneaux horaires (comme une vraie grille TV), par shuffle aléatoire ou par blocs cycliques. Vous balancez alors du contenu de remplissage entre les épisodes, vous personnalisez les profils de transcodage par chaîne, et vous regardez ça directement dans votre navigateur web ou via votre client Plex préféré.

De son côté, le hardware transcoding gère NVENC, VAAPI, Intel QuickSync et VideoToolbox sur macOS, donc votre GPU ne bosse pas pour rien.

Pour ma part, je me ferais bien une ambiance "C'est dimanche" qui balance des séries TV + vidéo gag et des docs sur la nature toute la journée, ou une "chaîne minuit" uniquement pour les vieux films d'horreur et les clips MTV de ma jeunesse ^^. Aaaah, nostalgie quand tu nous tiens ! Et je mettrais des vrais bumpers vintage entre les programmes, comme ça, ça donnerait l'illusion qu'on est sur une vraie programmation TF1 des années 90. Ce serait chouette non ?

Pour faire tourner ça, un Docker compose suffit (port 8000), avec un FFmpeg 6.1 minimum (7.1.1 recommandé). Vous lancez simplement :

docker run -d -p 8000:8000 -v ./tunarr-data:/config/tunarr chrisbenincasa/tunarr:latest

et c'est en ligne !

Maintenant sauf si votre Pi 3 a 2 Go de RAM, le transcoding 4K ne marchera pas mais sur du x86 récent ou un Pi 5, ça envoie carrément bien.

Et si vous préférez la méthode à l'ancienne, y'a également des binaires Linux, macOS, Windows, et même une image ARM pour Raspberry Pi . Le code est en TypeScript à 99,6%, sous license zlib (très permissive) et y'a des nouvelles releases régulières.

Voilà, ce projet n'a aucun sens dans le monde du streaming à la demande et c'est précisément pour ça que je vous en parle ! Si vous voulez retrouver l'ambiance zapping, c'est par ici ou sur le GitHub .

Et un GRAND merci à Johnny pour l'info !!

Kavita, la bibliothèque auto-hébergée pour vos ebooks, comics et manga

Par : Korben ✨
30 avril 2026 à 13:56

Depuis qu'Amazon a coupé le téléchargement USB de nos ebooks Kindle (sniiiif), héberger sa propre bibliothèque est passé du statut de bricolage du dimanche aprem au geste héroïque de préservation de notre souveraineté !

Alors si vous voulez vous lancer, sachez que Kavita , le serveur de lecture auto-hébergé développé depuis 2020, est l'un des candidats les plus solides du moment. C'est un lecteur web qui gère EPUB, PDF, comics CBZ/CBR et manga avec mode de lecture droite-à-gauche pour les aficionados et grâce lui, nos ebooks peuvent reprendre leur indépendance.

Ce truc, ça se déploie en Docker ou via Scoop pour Windows en 4 lignes de PowerShell.

De mon côté, j'ai installé Kavita sur mon NAS Synology alors voici la marche à suivre si vous voulez faire pareil.

Installation sur NAS Synology (Container Manager)

Testé sur DSM 7.2 avec Container Manager. Pour QNAP via Container Station ou TrueNAS, la logique est la même puisque c'est du Docker standard.

Étape 1 - Préparer les dossiers

Sur votre NAS, créez deux dossiers via Panneau de configuration > Dossier partagé :

  • docker/kavita/config pour la config et la base SQLite de Kavita
  • data/library/books pour votre bibliothèque (pointez où vous stockez déjà vos EPUB et CBZ)

Étape 2 - Le docker-compose.yml

Ouvrez ensuite Container Manager > Projet > Créer, donnez-lui le nom kavita, et collez ce docker-compose :

services:
 kavita:
 image: jvmilazz0/kavita:latest
 container_name: kavita
 restart: unless-stopped
 ports:
 - "5000:5000"
 environment:
 - TZ=Europe/Paris
 volumes:
 - /volume1/docker/kavita/config:/kavita/config
 - /volume1/data/library/books:/manga

L'image jvmilazz0/kavita:latest est celle référencée dans la doc officielle. Côté container, les chemins sont /kavita/config et /manga (peu importe que ce soit du manga ou des romans, c'est juste le nom historique du point de montage).

Étape 3 - Lancer le conteneur

Validez le projet. L'image se télécharge (environ 200 Mo), puis le conteneur démarre. Si le port 5000 est déjà pris sur votre NAS, changez le mapping en 5001:5000 par exemple.

Étape 4 - Premier lancement

Dans votre navigateur, allez sur http://IP-DU-NAS:5000. L'écran d'accueil vous demande alors de vous créer un compte admin.

Validez, puis allez dans les préférences pour passer l'interface en français et rafraichissez la page.

Ensuite, dans les paramètres du serveur > Bibliothèques, ajoutez une bibliothèque : Type "Livre" pour les EPUB/PDF ou "Manga"/"Comic" selon le contenu, le choix du dossier pointant vers /manga. Le scan démarre automatiquement.

Étape 5 - Organisation des dossiers

Attention, Kavita est sensible à la structure des dossiers donc pour qu'il identifie correctement les séries, organisez vos dossiers comme ça :

/manga
├── Asterix/
│ ├── Asterix - Tome 01.cbz
│ └── Asterix - Tome 02.cbz
├── Stephen King/
│ ├── Ça.epub
│ └── Shining.epub

Un sous-dossier par série ou par auteur, pas tout en vrac dans un dossier unique.

Étape 6 - Accès distant (optionnel)

Maintenant, pour accéder à Kavita depuis l'extérieur, le plus propre c'est un reverse proxy avec HTTPS. Sur Synology, soit via DSM > Portail web > Proxy inversé, soit via Nginx Proxy Manager . Pointez votre sous-domaine sur IP-NAS:5000 et activez Let's Encrypt.

Ou alors, moi ce que j'aime bien faire aussi, c'est rien du tout et passer par Tailscale !

Côté fonctionnalités

Côté ergonomie, franchement ils n'ont pas chômé puisqu'on y retrouve le lecteur intégré avec modes single page, double page, webtoon ou même mode immersif plein écran. Des thèmes light, dark, sepia, + un mode personnalisé en CSS si vous voulez.

Y'a aussi de la synchro de progression de lecture entre tous vos appareils, du coup vous pouvez commencer un chapitre sur le laptop pendant votre pause café et le finir sur le téléphone dans le métro. C'est appréciable au quotidien.

Y'a aussi de la gestion multi-utilisateur avec authentification OIDC pour ceux qui aiment faire les choses bien (et ratings + listes individuels par compte, donc votre meilleur pote peut lire ses romans de Tom Clancy à côté de votre collection de docs techniques sans qu'on les mélange).

Il y a également une surveillance automatique des dossiers pour tout ce qui est import auto et de la recherche full-text avec filtres par métadonnées (titre, auteur, série, genre, langue).

Et si vous avez des enfants, il est possible de mettre en place des restrictions par classification d'âge pour éviter qu'ils ne fouillent dans vos comics de Manara. Et le clou du spectacle spécial barbu, c'est l'export d'annotations vers Obsidian via le plugin officiel pour les nerds du second cerveau.

Kavita propose même une fonction "Send to Kindle" pour balancer un EPUB vers votre liseuse Amazon. Sur Windows, vous pouvez aussi le transformer en service système avec Shawl pour qu'il démarre tout seul au boot, et côté Linux, un docker-compose suffira largement.

Voilà, dans cette jungle bordélique des outils ebooks auto-hébergeables, Kavita se positionne comme une option moderne et stable. Je préfère Kavita à Calibre car l'interface web est carrément plus moderne et hyper fluide à l'usage.

Vous l'aurez compris, côté concurrence, Kavita est historiquement plus orientée mixte ebooks-comics que Komga (qui supporte aussi les EPUB et PDF mais reste très ancré culture comics). Alors si vous hésitez entre les outils du moment, mon tour d'horizon des outils ebooks self-hosted devrait vous éclairer (avec notamment le drame Booklore !!).

Ah et y'a aussi Kavita+, la version premium à 4 $ par mois (2 $ le premier mois avec le code FIRSTTIME) qui ajoutera la sync AniList, des recommandations personnalisées, des collections intelligentes et l'enrichissement de métadonnées automatique. Après, perso, pour un usage classique, je trouve que la version gratuite fait déjà largement le job, mais si vous gérez +50 000 fichiers et que vous voulez pas passer la soirée à taguer des séries entières, là ça peut carrément valoir le coup.

Source

Shelfmark - La relève de Readarr pour vos ebooks

Par : Korben ✨
29 avril 2026 à 08:32

Readarr a malheureusement fermé boutique en juin dernier et depuis, le créneau Sonarr-pour-bouquins était orphelin. Mais voili que voilà Shelfmark qui débarque pour combler ce trou, et c'est signé calibrain. Cet outil c'est l'évolution directe de Calibre-Web-Automated-Book-Downloader (CWA-BD pour les intimes), renommé en début d'année !

Niveau interface, ça se présente comme une seule barre de recherche, façon Spotlight mais pour vos sources de livres, qui sait chercher et télécharger des ebooks (et des audiobooks) depuis toutes vos sources configurées : Web, torrent, usenet, IRC, tout passe par la même barre de recherche.

Comme ça, vous tapez le titre, ça interroge Hardcover, Open Library ou Google Books pour les métadonnées, ça agrège les résultats des sources, et vous cliquez sur le format qui vous arrange. Si le dossier de destination pointe vers l'ingest folder de Calibre-Web-Automated, Grimmory ou Audiobookshelf, l'import est alors automatique ce qui fait que vous n'avez aucun script maison à entretenir.

Côté sources, c'est la souplesse maximale. Prowlarr en backend pour les indexers torrent/usenet, IRC pour les vieilles méthodes qui marchent toujours, et même Cloudflare handling intégré pour les sites protégés.

Pour le contournement Cloudflare, Shelfmark embarque son propre bypasser (un FlareSolverr-like maison). Du coup vous avez 2 variantes Docker au choix : la Standard avec navigateur intégré, et la Lite (sans browser) si vous avez déjà un FlareSolverr ailleurs ou si vos sources n'en ont pas besoin. L'image est dispo sur ghcr.io, et utilise le port 8084 par défaut. Bref, c'est du docker compose up -d classique, j'vais rien vous apprendre à ce sujet.

Ce qui est sympa avec ce logiciel, c'est surtout le système multi-utilisateur avec son système de requêtes, ce qui vous permet de monter votre propre instance, puis de l'ouvrir à votre famille ou à vos potes ces gros noobz ^^ pour qu'ils cherchent leurs bouquins. Et vous, vous validez (ou pas) leurs requêtes en tant qu'admin.

Côté auth ça peut se faire en login basique jusqu'au SSO entreprise via OIDC (Authelia, Authentik, Keycloak), + proxy auth si vous avez un reverse proxy qui vous authentifie en frontal, ou alors faire réutilisation directe de la base utilisateurs de Calibre-Web (Suffit de monter son app.db en read-only et c'est plié).

Les amoureux de Tor peuvent également activer le routage via Tor si ça vous amuse. Shelfmark est donc plus un outil de recherche et de téléchargement qu'un outil de gestion de bibliothèque. Donc c'est plus minimaliste, contrairement à Readarr qui voulait tout faire et s'est cassé les dents sur les métadonnées.

Maintenant, si vous voulez la gestion de bibliothèque, c'est Calibre-Web ou Audiobookshelf qui fera bien le job (Mon dossier sur l'écosystème ebooks self-hosted peut vous aider à monter votre stack complète).

Bref, Readarr a fermé, Shelfmark a ouvert et vos étagères de livres numériques vous remercieront !

Technitium - Le DNS qui remplace Pi-hole, Unbound, BIND

Par : Korben ✨
28 avril 2026 à 08:43

Et si vous aviez UN seul soft qui bloque les pubs comme Pi-hole, qui parle DoH/DoT/DoQ comme AdGuard Home, ET qui sait faire du serveur DNS faisant autorité pour vos zones perso ?

Hé bien c'est exactement ce que fait Technitium DNS Server , un projet open source sous licence GPLv3 maintenu par TechnitiumSoftware. Concrètement, avec ce truc, vous obtenez un résolveur récursif, un sinkhole avec blocklists, et un serveur de zones (Primary, Secondary, Stub) dans le même process. Du coup, pour un homelab type, fini d'empiler Pi-hole + Unbound + BIND, tout est dans la même console web !

Pour démarrer sur Linux ou Raspberry Pi, l'installeur officiel fait tout en moins d'une minute :

curl -sSL https://download.technitium.com/dns/install.sh | sudo bash

Sinon Docker marche aussi avec docker pull technitium/dns-server:latest. Vous tapez ensuite http://localhost:5380/ dans le navigateur, login admin/admin (à changer dare-dare !), et hop, vous êtes dans la console web. Le serveur tourne direct, faudra juste pointer votre routeur ou vos clients dessus pour qu'il filtre tout le réseau.

La console web Technitium - tableau de bord principal

Côté blocage, la console propose un Quick Add pour piocher direct dans les block lists populaires (du style Hagezi). Les listes se mettent à jour quotidiennement, et l'app interne Advanced Blocking gère même des regex et des listes différentes par IP ou sous-réseau client. Pratique, non ?

Genre du blocage strict pour la tablette du salon, plus permissif sur votre ordi, et un mode safe-search obligatoire pour la chambre des gosses. Notez quand même que certaines Smart TV Samsung ou apps gaming hardcodent leur DNS, du coup faudra ajouter une règle de routage sur le firewall de la box pour vraiment forcer Technitium.

L'écran d'ajout des block lists, avec le bouton Quick Add

Niveau protocoles, c'est du costaud : DNS-over-TLS, DNS-over-HTTPS (HTTP/1.1, HTTP/2, HTTP/3), DNS-over-QUIC, plus le DNS-over-PROXY-protocol pour les load balancers. Y'a aussi le DNSSEC complet (RSA, ECDSA, EdDSA, NSEC/NSEC3, DANE TLSA), les transferts de zones AXFR/IXFR, le routage Tor pour les forwarders, et le support du Cloudflare hidden DNS resolver. Soit le set qu'on attend chez un FAI sérieux.

Côté perfs, le serveur encaisse plus de 100 000 requêtes/seconde sur du Gigabit Ethernet d'après les benchs officiels. Sur un Raspberry Pi 4 avec 2 Go de RAM, ça tourne peinard pour une famille de 4 (genre 200 à 300 Mo de RAM en charge avec Hagezi Pro et ses 750 000 entrées, donc carrément de la marge).

Et y'a aussi un DHCP multi-réseaux, du clustering, du SSO via OpenID Connect, du 2FA TOTP, plus des apps internes pour DNS64 (clients IPv6-only), DNS Rebinding Protection, et Advanced Forwarding. Tout ça pour un soft destiné à tourner chez vous.

Côté zones, on peut monter du Primary (zone classique gérée localement), du Secondary (réplique d'une autre zone), du Stub, ou du Conditional Forwarder, plus du Catalog Zones pour ceux qui automatisent à grande échelle. Pratique pour gérer un domaine perso, un homelab entier, ou un split-horizon entre réseau interne et externe. Pas mal pour un soft "maison".

À noter quand même quelques pièges. À part sur Linux et Raspberry Pi où ça tourne nickel, sous Windows 10/11 c'est plus chaotique : Internet Connection Sharing, Hyper-V, Docker Desktop et Defender Application Guard squattent tous le port 53, donc faudra changer le port d'écoute si vous tournez sur un poste de travail. Y'a même des cas tordus où Hyper-V garde le port après désinstallation, et le seul fix c'est un net stop hns ou un reboot complet.

Si vous chargez beaucoup de blocklists volumineuses, la RAM grimpe vite (les pros conseillent de consolider sur une seule liste comme Hagezi Pro). Le cache est aussi froid au premier démarrage, donc les premières requêtes prennent leur temps avant que tout se fluidifie (genre 30 secondes à 1 minute pour redevenir réactif, donc évitez de rebooter en pleine visio).

Mais avec tout ça, vous gagnez un truc rare : un seul outil pour filtrer pubs et trackers à l'échelle du réseau (utile à l'heure où certains pays parlent de criminaliser les bloqueurs côté navigateur ), résoudre vos requêtes en récursif, et héberger vos propres zones DNS. Tout ça avec une UI web qui supporte le dark mode (oui, ça compte aussi ^^).

Bref, franchement à tester si vous voulez la main complète sur votre infrastructure DNS sans bricoler 3 softs en parallèle. Sur un Pi à 35 balles posé derrière la box, ça dépote sa race. Le projet est sur GitHub, le site officiel est ici, et merci à Axala sur Discord pour le tuyau !

Source

smolvm - Des microVMs qui se lancent en moins de 200ms

Par : Korben ✨
27 avril 2026 à 15:57

Docker Desktop bouffe la RAM comme vous le saucisson à l'apéro. Et même quand vous n'utilisez pas cette RAM, d'autres outils comme Lima ou Colima prennent aussi de la RAM.

Mais c'était sans compter sur smolvm , le projet de BinSquare et de l'équipe smol-machines, qui s'attaque au problème par un autre angle, à savoir utiliser des microVMs hardware-isolées qui bootent en moins de 200 millisecondes, qu'on configure en TOML, et qu'on peut packer dans un seul binaire .smolmachine qui tournera sur n'importe quel Mac ou Linux compatible.

Pas de daemon ni de service à lancer en background, non, c'est juste un bon vieil outil CLI codé en Rust qui boote une VM par workload et s'éteint quand c'est fini !

Ainsi, quand vous tapez :

smolvm machine run --image alpine -- sh -c "ma commande"

ça vous sort un noyau Linux complet avec son propre kernel, isolé via Hypervisor.framework sur Mac ou KVM sur Linux et tout ça en moins de temps qu'il n'en faut à Docker Desktop pour afficher sa fenêtre de démarrage. LOL

Le réseau est désactivé par défaut, mais si vous voulez l'activer, vous pouvez whitelister uniquement les domaines autorisés. Cette approche "deny by default" est rare dans l'écosystème conteneur, où en général on ouvre le réseau d'abord et on filtre après.

La fonctionnalité qui sort vraiment du lot, c'est surtout le packing en format .smolmachine. Concrètement, vous prenez votre image Docker (Python 3.12, Postgres, ce que vous voulez...), vous lancez :

smolvm pack create --image python:3.12-alpine -o ./python312

Et hop, magie magie, vous avez un exécutable totalement autonome avec tout ce qu'il faut dedans : kernel, rootfs, dépendances et tutti quanti comme disent les Allemands !

Plus besoin comme ça, d'installer quoi que ce soit du côté du destinataire de votre app. Vous balancez simplement votre binaire à un collègue, il le lance, et ça marche. Il est content, vous aussi, c'est trop bien, y'a plus qu'à aller boire ce truc dégeu qu'on appelle dans le sud, "un petit jaune" pour célébrer ça !!

Sous le capot, le moteur de virtualisation s'appuie sur libkrun , une bibliothèque VMM développée par Red Hat dans le cadre de l'initiative rust-vmm. Pour les noobzzzz, rust-vmm est un effort communautaire qui partage des composants Rust de virtualisation entre plusieurs projets : Firecracker (AWS), Cloud Hypervisor (Intel), crosvm (Google), libkrun (Red Hat) et donc smolvm.

Du coup les améliorations sur la mémoire ou la sécurité bénéficient à tous en parallèle. Côté kernel, smolvm embarque libkrunfw, un noyau custom optimisé pour démarrer hyper vite. J'ai testé, ça tient sa promesse < 200 ms !

La mémoire est élastique via virtio balloon ce qui fait que le host n'engage que ce que le guest utilise vraiment et récupère le reste automatiquement. Et les vCPUs dorment dans l'hyperviseur quand ils sont idle (en attente), ce qui permet d'over-provisionner sans payer le prix.

Côté sécu, y'a des détails qui sont cools aussi comme le SSH agent forwarding du host qui est exposé au guest sans jamais que les clés privées n'entrent dans la VM. En effet, c'est l'hyperviseur qui fait barrière donc vous pouvez cloner un repo privé depuis une VM jetable, comme un cochon, sans risquer d'exfiltrer vos identifiants si le code que vous lancez est foireux.

Et chaque workload a son propre kernel, donc une faille dans le kernel guest reste cantonnée à cette VM. Top hein ? Comparé à un conteneur Docker classique où une CVE kernel touche tout le host, c'est un autre niveau d'isolation.

Au niveau des concurrents, Firecracker (AWS) tourne uniquement sous Linux et vise les workloads serverless du cloud, mais pas le poste dev. Kata Containers de son côté fait du microVM mais boot en environ 500ms et nécessite une stack containerd lourde.

QEMU est puissant c'est sûr, mais boot en 15 à 30 secondes selon la config, donc oubliez, la vie est trop courte ! Quant à OrbStack dont je vous parle tout le temps puisque c'est l'alternative à Docker Desktop sur Mac qui est la plus aboutie aujourd'hui, ça reste quand même un outil proprio qui se repose sur Docker.

smolvm lui, boxe dans une autre catégorie puisque c'est une lib SDK embarquable, et pas juste un CLI, et son format .smolmachine n'a pas d'équivalent direct. C'est donc plus proche de l'esprit de Nix ou des binaires statiques Go, mais avec une isolation hardware réelle.

Sachez-le, en 2026, environ 42% des commits GitHub viennent de code généré ou assisté par IA. Je sais, ça en défrise pas mal mais c'est la nouvelle réalité.

Sauf qu'à chaque fois que vous lancez un script Python ou un paquet npm non relu, codé par une IA, vous prenez potentiellement un risque. En effet, à chaque fois, que vous donnez à du code potentiellement malveillant un accès direct à vos credentials, votre système de fichier ou encore votre réseau, vous vous exposez.

Ce bon vieux chmod +x && ./run.sh servi avec du café et beaucoup d'espoir, c'est terminé ! smolvm vous propose de basculer vers un modèle où l'isolation est l'état par défaut, et où ouvrir le réseau ou votre système de fichiers est une décision vraiment explicite. Donc parfait pour laisser des agents IA faire leur vie sur vos projets sans prendre de risques.

Notez que le support GPU est dans une branche séparée, et pas encore mergé. Et le projet est principalement piloté par BinSquare avec un Discord modeste derrière, et pas une fondation booster aux milliards d'Amazon ou de Google. Du coup ne déployez pas ça en prod sans backup... Mais pour du dev, de la sandbox d'agents IA, ou tout simplement pour distribuer votre binaire, c'est déjà très solide.

Et comme ça bouffe moins de RAM que Docker Desktop, sur un MacBook avec 16 Go, la différence se sent immédiatement.

Pour l'installer, ça passe par curl :

curl -sSL https://smolmachines.com/install.sh | bash

ou un download manuel depuis les releases GitHub.

Lancez ensuite

smolvm --help

ou ce hello world :

smolvm machine run --net --image alpine -- sh -c "echo 'Hello world from a microVM' && uname -a"

Et à vous de jouer !

Mocker - Le clone Docker natif pour Mac Apple Silicon

Par : Korben ✨
24 avril 2026 à 09:27

Si vous bossez sur Mac et que Docker Desktop commence à vous prendre la tête, les amis, y'a une alternative super cool qui vient de débarquer. Ça s'appelle Mocker , c'est écrit en Swift, c'est sous licence AGPL-3.0, et le principe c'est de remplacer la CLI de Docker à l'identique : mêmes flags, mêmes formats de sortie, même syntaxe pour Compose. mocker run, mocker ps, mocker compose up (...bref, le README annonce 111 commandes et sous-commandes couvertes avec les flags qui matchent).

Pour l'installer, un brew tap us/tap && brew install mocker et c'est plié !

La plupart des images Docker Hub standards (format OCI) se pullent pareil, et votre fichier docker-compose.yml tourne le plus souvent sans rien retoucher. Attention quand même, si vous avez encore Docker Desktop qui tourne en parallèle, coupez-le avant de jouer avec mocker sinon vos ports vont faire la bagarre !

De plus, certaines features Docker très spécifiques (options de runtime exotiques, images qui tapent dans des sockets Linux particuliers) peuvent planter ou produire un avertissement côté Apple Containerization. Mais sur du stack web classique (nginx, postgres, redis, node), par contre, ça passe crème.

Mais alors, pourquoi ça fonctionne aussi bien ?

Hé bien parce que Mocker ne réinvente pas la roue, il l'enrobe. Rien de plus, rien de moins. En fait, sous le capot, c'est le framework Apple Container qui fait tout le boulot.

Pour rappel, c'est ce truc qu'Apple a sorti à la WWDC 2025 et qui permet ainsi de lancer une petite VM Linux dédiée par conteneur (au lieu de la grosse VM partagée à la Docker Desktop). Mocker délègue alors tout au binaire container d'Apple pour run, stop, exec et logs, tape directement dans le Containerization.ImageStore pour les pulls et les tags, et gère les ports via un petit proxy TCP userspace.

L'état des conteneurs, images, réseaux et volumes est alors stocké en JSON dans le dossier ~/.mocker/ sur votre Mac. Comme y'a rien de magique, vous pouvez tout inspecter à la main, ce qui est plutôt chouette !

Côté perfs, il y a quand même un coût. Selon les benchmarks publiés par le dev sur sa machine Apple Silicon, au démarrage d'un container Docker Desktop tourne à 320 ms, le CLI container d'Apple à 1030 ms, et Mocker à 1153 ms (3,6× plus lent que Docker, ~120 ms d'overhead sur Apple).

Dans la vraie vie, 800 ms de plus au boot c'est transparent si vous relancez 5 containers par jour en dev, mais ça devient clairement pénible si vous faites du CI local intensif avec 50 runs à la chaîne. Sur ces mêmes benchmarks, une fois que le container est up, CPU et mémoire s'en sortent ensuite pareil. Autrement dit, la VM par conteneur coûte au boot, mais pas au runtime. En tout cas, sur cette config de test pour les benchmarks.

Si vous voulez une alternative plus mature et commerciale, OrbStack reste encore une fois la référence sur Mac, mais c'est du freemium. Mocker, lui, est gratuit et open source du début à la fin.

Voilà les amis, si vous êtes sur Mac Apple Silicon et que Docker Desktop vous saoule, ça vaut grave le coup de tester !! Au pire vous revenez à Docker, au mieux vous gardez Mocker et vous arrêtez de payer la licence Business...

LinuxServer - Les images Docker que votre homelab mérite

Par : Korben ✨
22 avril 2026 à 08:37

Monter un Jellyfin dans Docker, ça prend 3 minutes. Mais retrouver dans 18 mois une image encore maintenue, c'est plus le même kung fu ! En effet, beaucoup d'images populaires sur Docker Hub ont déjà pris 2 ou 3 ans de retard sur leur app upstream, et quand c'est un mainteneur solo qui a lâché l'affaire à cause d'un burn out, vous vous retrouvez rapidement avec un putain de Dockerfile cassé à débugger un dimanche à 23h. Chouette programme de vie hein ?

LinuxServer.io , c'est le collectif qui résout ce problème. 17 bénévoles répartis sur différents fuseaux horaires, maintenant 313 dépôts publics sur GitHub, et des images Docker standardisées qui alimentent un paquet de homelabs à travers le monde. Plex, Jellyfin, Sonarr, Radarr, WireGuard, SWAG, Home Assistant, Nextcloud... leur catalogue couvre à peu près tout ce qu'un self-hoster peut demander.

Ce qu'ils proposent c'est une véritable standardisation puisque la plupart de leurs images partagent la même base (Alpine ou Ubuntu le plus souvent, parfois Debian ou Arch selon le cas), utilisent s6-overlay (v3 désormais) pour gérer les processus sur Linux, et exposent le même système PUID/PGID avec un volume /config pour la persistance.

Si vous avez déjà galéré avec des fichiers créés en root dans vos volumes Docker, vous voyez de quoi je cause. Là, 2 variables d'environnement et c'est plié :

environment:
 - PUID=1000 # votre UID, récupéré via id $user
 - PGID=1000 # votre GID, pareil

Faites moi confiance, vous allez voir, le jour où vous avez 15 conteneurs qui tournent en simultannée, c'est tout simplement un vrai soulagement.

Un id $user dans le terminal pour récupérer vos identifiants réels, vous les collez dans le docker-compose, et vos fichiers appartiennent alors bien à votre propre utilisateur. Terminées les galères de permissions à rattraper à coups de sudo chown.

Côté registry, leurs images se récupèrent via ce genre d'URL lscr.io/linuxserver/jellyfin (par exemple), qui redirige vers GHCR avec Docker Hub en miroir.

Côté architectures, leurs images ciblent x86_64 et arm64 en standard, avec du RISC-V 64-bit sur les baseimages Alpine récentes. Ils ont tiré un trait sur l'ARM 32-bit en 2024 donc les Pi 2 ou Pi 3 en mode 32-bit ne sont plus éligibles. Certaines images très spécifiques (Chrome, par exemple) restent amd64-only, mais la grande majorité du catalogue couvre les deux archis principales sans problème.

Et dans leur catalogue, y'a des pépites. Je pense par exemple à leur SWAG qui remplace carrément toute la tambouille Nginx + Certbot + fail2ban que vous vous tapez à la main. C'est super pratique. Après Pangolin reste une alternative intéressante si vous voulez proxy, tunnels et auth intégrés dans le même stack... mais SWAG est un classique éprouvé.

Leur WireGuard est balèze aussi, parfait pour monter un VPN maison en quelques lignes de YAML. Et si vous voulez mettre vos conteneurs en veille entre deux usages, ContainerNursery se marie bien avec.

Faut savoir que pour réussir à maintenir tout ce bordel, ils ont entièrement automatisé leur pipeline de build. Ainsi, quand une app upstream ou ses dépendances changent, l'image est reconstruite et poussée vers GHCR et Docker Hub dans la foulée. Comme ça les mises à jour de la base OS tombent chaque semaine sur leurs 313 repos, et tout ça sans qu'aucun mainteneur n'ait à cliquer sur un bouton. Bien fichu non ?

Du coup, un petit docker-compose pull && docker-compose up -d de temps en temps et votre stack reste à jour sans stress.

Après vous voulez pinner une version précise en prod, c'est possible mais faudra aller checker les tags dispos sur Docker Hub avant de déployer, sinon un pull un peu trop agressif cassera tout.

Le modèle économique est 100% bénévole et l'équipe est financée par des dons via Open Collective, avec notamment DigitalOcean comme partenaire infrastructure principal, des supporters institutionnels genre Pine64, QNAP, Synology ou Unraid, et une cinquantaine de sponsors individuels actifs sur GitHub Sponsors.

Pas d'investisseur à rassurer donc ni de version Pro à la con qui planque de bonnes fonctionnalités derrière un paywall (je déteste les paywalls !!). Ce sont des passionnés qui construisent tout simplement pour le plaisir de bien faire et qui partagent tout en open source.

Voilà, si vous en avez marre des images Docker qui lâchent au bout de 18 mois, ça vaut clairement le coup d'aller faire un tour chez LinuxServer.io . Des gens bons (vous l'avez ?) qui font du bon boulot depuis des années ! Merci à eux et merci à Maxime pour le tuyau !

TriliumNext Notes - Vos notes, votre serveur, zéro cloud

Par : Korben
9 avril 2026 à 17:30

Entre Notion qui vous enferme dans son cloud, Obsidian qui facture la synchro dans son cloud 48 dollars par an et Evernote qui est devenu l'ombre de lui-même... trouver un outil de notes qui tourne chez vous sans dépendre de personne, c'est devenu la quête du Graal. Mais heureusement, TriliumNext Notes coche à peu près toutes les cases.

C'est une appli de prise de notes hiérarchique, open source (AGPL-3.0), qui tourne en local ou sur votre serveur. Imaginez une arborescence de dossiers, sauf qu'au lieu de copier un fichier dans 3 endroits différents, vous le clonez. C'est juste un lien ce qui fait que votre doc "Setup Proxmox" existe à la fois dans "Homelab" et dans "Tutos Linux" sans bouffer un octet de plus.

L'interface de TriliumNext Notes avec son arborescence de notes

Côté fonctionnalités, accrochez-vous puisque ça embarque un éditeur WYSIWYG avec support Markdown, des notes de code avec coloration syntaxique, un canvas Excalidraw pour griffonner des schémas, des diagrammes Mermaid, mind maps, et même des cartes géo avec traces GPX ! Y'a aussi un calendrier, un Kanban, des tableaux, un Web Clipper pour capturer des pages web d'un clic, et un moteur de recherche full-text qui fouille dans toutes vos notes. Franchement, pour un truc gratuit, vous en avez pour votre argent (euuh ?).

Le premier réflexe, ce serait de se dire "encore un clone de Notion". Sauf que que nenni les rabats joie ! Car LE truc qui fait vraiment la diff par rapport à un Anytype ou un Notion, c'est la synchronisation maison. Vous posez une instance serveur sur votre NAS, votre Proxmox, ou même un Raspberry Pi (ça tourne dessus sans broncher), et hop, toutes vos machines se synchronisent via votre réseau.

Pour l'installer, vous avez l'embarras du choix. En desktop classique, un brew install --cask trilium-notes sur Mac, un winget install TriliumNext.Notes sur Windows, ou un Flatpak / .deb / .rpm sur Linux et c'est plié.

Mais le vrai kif, c'est de le poser sur un serveur pour synchroniser toutes vos machines. Avec Docker, ça donne :

docker run -d -p 8080:8080 -v ~/trilium-data:/home/node/trilium-data triliumnext/trilium

Le -v c'est important : ça persiste vos notes en dehors du conteneur. Sans ça, un docker rm et tout disparaît. Une fois lancé, vous allez sur http://votre-ip:8080, vous créez votre mot de passe, et c'est parti. Sur le desktop, vous ajoutez l'adresse du serveur dans les réglages de synchro et toutes vos notes se retrouvent partout. Et si vous voulez y accéder depuis l'extérieur, un petit Tailscale par-dessus et c'est réglé.

Sous le capot, une base SQLite, soit un seul fichier document.db dans ~/.local/share/trilium-data/, qu'on peut copier sur une clé USB en 2 secondes. Pas de PostgreSQL à configurer, pas de Redis à maintenir. La doc officielle annonce 100 000 notes sans problème de perf (ils utilisent better-sqlite3, le driver synchrone le plus rapide de Node.js).

Par contre, attention : les pièces jointes en synchro sont limitées à 1 Go par fichier. Au-delà, ça passe pas. Les notes sensibles, elles, peuvent être chiffrées individuellement en AES-128 avec une session protégée par mot de passe.

Et pour les bidouilleurs, y'a aussi une API REST sur le port 37740 et un système de scripting côté serveur. Vous pouvez créer des widgets custom, automatiser des exports, ou même vous bricoler un mini-dashboard de démarrage. Par contre, faut pas avoir peur de mettre les mains dans le JavaScript.

Et si vous comptez migrer depuis Joplin ou Evernote, y'a également un import natif ENEX + Markdown, donc pas besoin de convertisseur tiers.

Voilà et j'en profite pour vous raconter un peu l'histoire de ce logiciel... Pour votre confiture générale ^^. En fait Trilium a été créé en 2017 par un dev solo et quand il a décidé de raccrocher les gants, la communauté a repris le flambeau sous le nom TriliumNext en publiant des releases régulières mais aussi une traduction dans une dizaine de langues dont le français, et du support OpenID + TOTP pour sécuriser les accès. C'est beau le pouvoir de la communauté !!

Côté mobile par contre, pas d'app officielle. C'est dommage mais TriliumDroid fait bien le job sur Android (dispo sur IzzyOnDroid) et l'interface web passe aussi en PWA (Progressive Web App, tu connais...). Attention quand même, la synchro entre TriliumDroid et le serveur impose que les deux soient sur la même version. Si vous mettez à jour l'un sans l'autre, ça coince comme mon dos en ce moment.

Non, vraiment le seul vrai bémol, comme souvent avec les logiciels libres, c'est que l'interface a un petit côté 2015. C'est pas Notion niveau polish, je ne vais pas vous mentir. Donc si vous êtes du genre à juger un outil à sa typo et ses animations, passez votre chemin. Mais pour un truc gratuit qui gère aussi bien les notes que les mind maps, les Kanban et le scripting... ça se pardonne vite. D'ailleurs si vous aimez les applis de notes self-hosted, je vous avais aussi parlé de Blinko à l'époque qui rajoute de l'IA par-dessus vos notes. Pensez-y !

Bref, allez voir ça, c'est le genre de projet qui mérite le détour.

Et big merci à Rudy pour le lien !

❌
❌