Vue normale

Par où commencer Kubernetes ?

Par : Seboss666
21 août 2025 à 18:32

Réflexion issue d’une discussion sur le Discord de Cuistops concernant le fait que Talos pourrait ne pas être le meilleur point de départ pour s’attaquer à cette technologie d’infrastructure qui a balayé le monde de l’orchestration de containers en une petite dizaine d’années. Pour illustrer pourquoi il n’y a pas de réponse absolue à cette question, je me suis dit que vous décrire mon parcours concernant l’univers des containers et Kubernetes en particulier (aussi bien au niveau perso que pro) serait éclairant sur certains points.

Aux origines : Docker

Le moins qu’on puisse dire, c’est que mon entrée dans l’univers des containers, en particulier via docker, n’était pas brillante. Je conserve avec malice le premier billet que j’ai consacré à ce sujet en 2016 pour illustrer à quel point je me trompais sur la technologie, que je n’avais jusque là pas vraiment vu, encore moins au niveau professionnel. J’ai heureusement rattrapé cette erreur depuis, aussi bien à la faveur de formations au travail (merci Thomas Perelle 🙂 ) qu’au niveau perso, où mes propres expérimentations m’ont conduit à partager ma découverte et mon utilisation de Docker Swarm. J’ai bien rattrapé le coup, hein ?

D’ailleurs, Swarm a été pour moi la découverte de la notion d’orchestration. Que j’ai pu creuser cette fois au niveau pro en 2018 après un premier tout petit pas vers l’univers Kubernetes par la porte OpenShift à la faveur d’un workshop de deux jours par un collègue qui sera réellement un mentor pour les années suivantes, Julien Francoz. Je n’ai malheureusement pas gardé grand chose de ce workshop, étant donné que je n’avais aucune plateforme de ce type dans mon pôle client, encore moins de Kubernetes. Tout juste on commençait à avoir des clients qui cherchaient à déployer leurs applis en mode container sur des serveurs classiques, avec Docker. Sans pratique, la théorie s’efface vite, d’autant qu’en 2018, les usages « domestiques » n’étaient pas légion, donc les articles de blog non plus, encore moins autour d’Openshift. C’est en 2019 que tout change.

2019 : La découverte de Kube, de la containerisation d’applications, d’Azure, de terraform (tout en même temps)

Je vous passe le contexte de comment j’en suis arrivé à cette situation intense qui aura duré 5 mois, mais oui, j’ai découvert Kubernetes d’une façon un peu particulière : service cloud managé, sur Azure, el famoso « AKS« , à devoir migrer des applications précédemment hébergées sur des serveurs virtuels Debian dépassés, avec un cluster déployé manuellement qu’on a tenté de « terraformer » après-coup, avec toute la « qualité » de l’API d’Azure d’alors. Et je remercie encore Julien d’avoir pris autant de temps à me soutenir dans cet apprentissage express (la notion de mentor n’était pas galvaudée, clairement).

Moi pendant la migration du client sur Kubernetes

Service cloud Managé veut dire qu’on ne gère pas certains aspects importants de la vie d’un cluster : tout le control plane est masqué, vous ne voyez que les nœuds, vous ne vous occupez pas trop de certains aspects comme la rotation des certificats, les mises à jour sont automatisées (vous indiquez une version cible, le service s’occupe de la montée de version du control plane, puis des nœuds un par un), et vous bénéficiez d’intégrations avec le reste de l’infra du fournisseur, au niveau du réseau, du stockage, des capacités comme l’autoscaling (vous augmentez et réduisez automatiquement le nombre de nœuds en fonction de la charge ou des réservations de ressources des pods à déployer). L’installation se fait en trois/quatre clics via l’interface web, une ligne de commande avec l’utilitaire maison, ou un peu plus de lignes de code si on le fait via un outil d’infrastructure as code.

Bref, c’est cool, ça permet de se concentrer sur les aspects opérationnels des applications déployées, mais même comme ça, je vous avoue que AKS tel que Microsoft le proposait n’était pas toujours une sinécure. Azure lui-même était pénible, avec des VMs qui mettaient plusieurs minutes à démarrer (quand les concurrents tournaient autour de la minute). Et comme on ne gère pas le control plane, on rate tout un pan de l’architecture et de la gestion de Kubernetes et de ses composants sous-jacents. En plus à l’époque, l’image de l’OS utilisé pour les nœuds était basée sur Ubuntu, pas le plus léger et le « gaspillage » de ressources était réel, au-delà de Kubernetes lui-même.

J’aurais l’occasion de passer encore quelques années, pratiquement trois, à déployer d’autres projets AKS pour d’autres clients, ce qui m’a permis de constater, il faut savoir aussi le reconnaitre, comment Microsoft a cravaché pour amener un niveau de qualité sur le service bien plus en phase avec ce qu’on attend d’un tel fournisseur. Rotation automatique des certificats via les mises à jour (c’était pas le cas, la commande de rotation était à lancer à la main), amélioration générale d’Azure sur les temps de démarrage des nœuds, efficacité des mises à jour, intégrations avancées au niveau réseau (Calico, Istio, etc)… Ce qui n’empêche pas certains pains avec entre autres une API qui accepte certaines valeurs pourtant non supportées et qui m’ont forcé à redéployer des clusters from scratch parce que la communication entre les nœuds étaient devenue impossible (réponse du support : « on va mettre à jour la doc pour indiquer les valeurs supportées »; bravo…). Par la suite, j’ai découvert et encore plus adoré exploiter et déployer du GKE, le service équivalent de Google Cloud; il m’aura permis au passage d’apprendre comment fonctionnait ce fournisseur et tout ce qu’il fait de mieux que Microsoft (et parfois d’AWS). Au point de passer la certification « Professional Architect » au bout de 4 mois seulement de pratiques.

Kube à la maison

Cette expérience en particulier avec Azure ne m’aura pas empêché pas de tomber amoureux de la technologie, au point de remiser Docker Swarm, et de migrer sur K3S. Là aussi un choix particulier, conçu pour les machines très légères, puisque ciblant les Raspberry Pi, j’ai malgré tout fait le déploiement du flemmard, même si j’ai privilégié un déploiement semi-automatisé avec un playbook/role Ansible, et un seul nœud comme control plane (qui était le seul mode de déploiement supporté alors).

Particularité de k3s, regrouper tous les composants « core » de Kubernetes dans un seul binaire, une petite prouesse à la base de son empreinte mémoire réduite, mais pas que : un des éléments les plus critiques d’un cluster, la base de données ETCD, la « mémoire » du cluster, est remplacée par SQlite, bien plus léger, mais évidemment limité à une seul nœud, et moins enclin aux problèmes des bases de données plus complexe. Bien que le mode « multi-master » ait été implémenté par la suite, au passage à mes Raspberry Pi 4, j’ai quand même conservé le même mode de fonctionnement. J’ai eu l’occasion de détailler pas mal de choses concernant K3S sur ce blog, je ne vais donc pas m’étendre beaucoup plus.

Reste qu’à l’occasion d’une volonté de refonte, accélérée par la mort successive des cartes SD des Raspi après 4 ans de bons et loyaux services, j’ai décidé de revenir à un Kubernetes un peu moins simplifié, en partant sur un autre choix particulier, Talos Linux, qui aura fini en machine virtuelle suite à une déconvenue de matériel et de limitations électriques, que je me suis pris en pleine poire en plein live Twitch. Talos propose un déploiement Kubernetes beaucoup plus standardisé dans ses composants de base, mais dont la gestion des nœuds est très particulière : pas d’OS à proprement parler, juste le noyau et une API qui permet de pratiquer toutes les opérations sur la gestion de ces nœuds : pas de SSH, pas de CLI directe, l’utilitaire talosctl est là pour configurer les nœuds à l’envi, permettant de les ajouter/retirer d’un cluster en un clin d’œil, un aspect très important dans une gestion d’infrastructure au sens large (comprendre, en entreprise). Toute la configuration de base se fait au travers de fichiers de configuration YAML, à l’instar de Kubernetes lui-même, permettant une approche « intégration continue » et un versionnement via git.

Actuellement, je me débats avec certains paramétrages par défaut orientés sécurité entre autres qui peuvent limiter/bloquer certains usages sans attention particulière. Il est vrai que par défaut, Kubernetes est une plateforme particulièrement ouverte avec peu de gardes-fous, et c’est à chacun d’adapter cet aspect en fonction de son propre contexte, ce qui amène à devoir exploiter nombre d’extensions et contrôleurs additionnels pour y parvenir. Et comme souvent, la sécurité à un prix…

Et la question de départ ?

On le voit, au final je n’ai que peu choisi comment j’ai découvert et abordé la technologie et son déploiement « dans le monde réel », et j’ai démarré par certaines abstractions qui font que si je m’étais retrouvé face à un cluster « vanilla » (kubeadm, kubespray), et un problème lié au control plane, j’aurais été plus en peine que quelqu’un ayant directement attaqué « the hard way » (z’avez la ref ?). Et d’un certain côté c’est certainement encore le cas encore aujourd’hui, ce qui me vaudrait d’être recalé au recrutement chez Lucca ou Enix. Le livre à venir teasé par Denis Germain (qui ne s’appellera pas 50 Nuances de Kubernetes, ce qui aurait été bien trop cool comme titre) montre bien la diversité d’approches qui ont chacune leurs spécificités, avec la plupart des services dit « managés » abstrayant une bonne partie des composants et concepts de bas-niveau pour vous concentrer sur vos applications ou celles de vos clients.

Est-ce que l’une d’elles est meilleure qu’une autre ? Je considère toujours que la théorie est importante, jusqu’à un certain point, dans la mesure où si on n’a pas de le contrôle sur les éléments, ne pas savoir comment ils fonctionnent de manière sous-jacente n’est pas toujours une grosse tare : ce n’est pas de notre ressort que d’y mettre les mains. Imaginez une corruption de base ETCD sur un service managé. Ma seule préoccupation sera d’être capable éventuellement de restaurer tout ce que j’y ai mis au départ – mes déploiements d’applications, mes secrets, mes CRDs, etc- , là où la préoccupation du provider, sera de réparer cette corruption; dans le pire des cas, s’il n’aura pas été capable de restaurer le service avec un minimum de pertes, il s’agira de restaurer tout ça sur un nouveau cluster.

Nous vivons également dans un monde connecté à la plus grande base de connaissances du monde : Le Web. Je n’ai pas besoin de connaitre l’intégralité des arcanes du moindre bout de logiciel, quelque soit son niveau dans l’environnement où j’évolue, pour être capable de l’exploiter au quotidien, voire de le réparer. Les connaissances déjà acquises sont évidemment importantes, parce qu’elles permettent de définir un état d’esprit, un mode de réflexion, qui est la plupart du temps applicable aux autres technologies que vous rencontrerez. Mais si je rencontre un problème que je n’ai pas déjà vu par le passé, une recherche sur le web m’amène généralement soit à la solution, soit à une piste à creuser pour déterminer la cause. Dès lors, il n’y a pas de réponses simples à apporter à la question « par où démarrer », parce qu’elle peut dépendre aussi de la « fin ».

Par où on attaque ? 😀

Faire un cluster à la mano avec tous les composants en mode « the hard way » ne sert pratiquement à rien si après on évolue dans un contexte de service managé. À l’inverse, un service managé est intéressant en ce sens qu’il permet de gérer les interactions avec d’autres services du fournisseur, et donc le mode de fonctionnement de celui-ci. Sur Kube lui-même vous manquez des choses, mais vous avez quand même pas mal de concepts à intégrer. Est-ce moins pertinent ? Pas forcément si c’est ce que vous manipulez tous les jours. Dans le même esprit, « the hard way » est probablement la pire méthode pour gérer le quotidien sur de l’infra qu’on gère, même si pour le coup on a toutes les tripes du cluster sur la table. On privilégiera donc très vite d’autres outils plus automatisés pour la gestion habituelle. N’est-ce pas tout aussi pertinent de démarrer directement avec ces solutions pour intégrer plus rapidement leurs concepts ?

Par où commencer Kubernetes ? J’ai envie de dire, par la solution qui vous rendra curieux. C’est tout le sel de l’apprentissage, comme de la recherche scientifique, où chaque réponse qu’on trouve amène d’autres questions, tout aussi passionnantes. D’autant plus que quand on démarre, on est amené à faire, défaire, refaire, à comparer. Notre univers informatique au sens large bouge tout le temps, la « galaxie » Kubernetes n’est pas en reste, il y a toujours des dizaines d’angles d’attaque possible, et à de très rares exceptions près, il n’y en a pas nécessairement une qui est plus mauvaise qu’une autre. Et d’autres apparaitront régulièrement, ce qui représente de nouvelles réponses possibles à cette question. Il ne faut pas avoir peur de se faire plaisir de différentes manières 🙂

Nexterm : terminal SSH/sFTP sous Docker, WebUI avec clés et snippets

Par : Aerya
21 août 2025 à 13:44

Gros fan et utilisateur du terminal Asbru-CM, j’ai de temps en temps besoin de pouvoir utiliser ça en mobilité. Je m’étais équipé d’une instance de SSHwifty.
Cherchant un terminal, gratuit, à héberger et avec plus de fonctionnalités, mon choix s’est arrêté sur Nexterm qui ne manque pas d’options !

CAUTION
Nexterm is currently in early development and subject to change. It is not recommended to use it in a production environment.

  • Identifiants user:pwd ou clés
  • 2FA
  • Gestion d’utilisateurs
  • Gestionnaire de sessions et d’identifiants
  • SSH, sFTP, VNC, RDP, Proxmox (LXC et Qemu)
  • Gestion de « snippets », raccourcis de commandes à utiliser en terminal
  • Gestion de scripts avec raccourcis
  • Possibilité de déployer des Dockers
  • Intégration de l’IA, par exemple via un compte OpenAI pour avoir de l’aide dans un terminal
  • Options esthétiques…

Ok, tout n’est pas utile évidemment.

Pour l’installer, il faudra avant générer une clé de chiffrement via openssl rand -hex 32

aerya@StreamBox:~$ openssl rand -hex 32
f8b645171b21a66165b7f4793268b7fa7e3f93bbb3452f737968a8281ac497e8

On peut alors l’installer en Docker

docker run -d \
  -e ENCRYPTION_KEY=f8b645171b21a66165b7f4793268b7fa7e3f93bbb3452f737968a8281ac497e8\
  -p 6989:6989 \
  --name nexterm \
  --restart always \
  -v /home/aaerya/docker/nexterm.direct:/app/data \
  germannewsmaker/nexterm:latest


Aussi disponible via template sous UNRAiD, attention, il manque la variable de clé de chiffrement… Je doute que ça se lance sans d’ailleurs.
Il faut ajouter la variable ENCRYPTION_KEY et sa valeur

2025 08 21 09 48 45 homebox updatecontainer — librewolf


Une fois un compte créée, on peut paramétrer l’interface

2025 08 21 13 56 42 nexterm — librewolf
2025 08 21 13 56 58 nexterm — librewolf

Créer des identités qu’il faudra ensuite lier aux serveurs ajoutés. On peut donc utiliser soit un mot de passe soit une clé SSH.

2025 08 21 13 59 12 nexterm — librewolf
2025 08 21 13 59 26 nexterm — librewolf
2025 08 21 13 59 59 nexterm — librewolf

Comme je l’écrivais, on peut ajouter de l’IA. J’ai testé rapidement, je vous montre ça ensuite.

2025 08 21 14 02 09 nexterm — librewolf

La partie serveurs, qu’on peut organiser en dossiers, est simple et intuitive.

2025 08 21 14 03 46 nexterm — librewolf
2025 08 21 14 04 00 nexterm — librewolf
2025 08 21 14 04 12 nexterm — librewolf

Choisir ou créer une identité liée

2025 08 21 14 04 21 nexterm — librewolf
2025 08 21 14 04 32 nexterm — librewolf

Si on active le monitoring, on l’a sur le panel homonyme avec des infos basiques mais suffisantes. A noter que ça ne me retourne jamais de version de l’OS. Je ne suis pas surpris pour UNRAiD ou Synology mais c’est plus étonnant pour Debian, Garuda (Arch) et Ubuntu.
Comme indiqué sur le site, l’outil est encore à un stade de développement peu avancé.

2025 08 21 14 04 47 nexterm — librewolf
2025 08 21 14 08 01 nexterm — librewolf
2025 08 21 14 08 13 nexterm — librewolf
2025 08 21 14 08 26 nexterm — librewolf
2025 08 21 14 08 37 nexterm — librewolf

On peut accéder à chaque serveur en même temps, dans un onglet séparé. En revanche attention si un travail est en cours, cliquer sur un autre menu dans le même onglet (du navigateur) ferme toutes les sessions.

2025 08 21 14 13 35 nexterm — librewolf

Version sFTP, avec téléchargement, création de dossiers, édition/renommage.

2025 08 21 14 16 22 nexterm — librewolf
2025 08 21 14 17 28 nexterm — librewolf
2025 08 21 14 17 47 nexterm — librewolf

On ne peut en revanche pas (encore ?) visualiser de photo ou vidéo. D’un autre côté c’est pas le but d’un FTP…

Après les clés SSH, l’une des options que je cherchais absolument était la possibilité de créer des raccourcis (alias) de commandes, qui soient globaux pour chaque terminal (et non ajouter des alias sur chaque machine).
Par exemple taper « upgrade » ou cliquer un bouton (cette option avec Nextrem) qui envoie la commande sudo apt update && sudo apt upgrade -y
On peut créer les snippets via le menu et ensuite les utiliser avec l’icône en haut à droite du terminal (qui se voit plus ou moins bien selon le thème…). J’ai pris des exemples basiques pour l’instant, j’ai plus testé qu’utilisé.

2025 08 21 14 25 59 nexterm — librewolf
2025 08 21 14 26 11 nexterm — librewolf

Cliquer sur l’icône des snippets et sur celui qu’on souhaite utiliser

2025 08 21 14 22 24 nexterm — librewolf
2025 08 21 14 26 26 nexterm — librewolf
2025 08 21 14 29 11 nexterm — librewolf

Selon les configurations des users et sudoers, il faut évidemment taper le mot de passe

admin@DockerLab:~$ sudo apt update && sudo apt upgrade -y
Password: 


2025 08 21 14 31 48 nexterm — librewolf

Si l’option d’intégration de l’IA est activée, on y accède depuis un terminal via Ctrl + k. Aucune commande n’est exécutée par l’IA, elles sont juste tapées dans le terminal et l’utilisateur doit l’exécuter.

2025 08 21 14 33 14 nexterm — librewolf

Je ne suis ni fan ni, du coup, connaisseur, donc j’ai pas testé de demande très compliquée. Même en faisant des fautes dans la demande, elle s’en sort du du basique

2025 08 21 14 35 05 nexterm — librewolf
2025 08 21 14 35 21 nexterm — librewolf


Idem pour des installations basiques. Testé sur Arch aussi, c’était bon. Mais je reste sur du très simple.

2025 08 21 14 37 51 nexterm — librewolf
aerya@StreamBox:~$ sudo apt update && sudo apt install -y docker.io jq htop nodejs npm

Semble également fonctionner en français (vu que c’est ChatGPT dans mon test) et l’installation de Docker est correcte. Même si c’est pas optimisé (serveur Apache2n mysql de base etc)

aerya@StreamBox:~$ sudo apt update && sudo apt install apache2 mysql-server php php-mysql libapache2-mod-php php-cli php-curl php-gd php-mbstring php-xml php-xmlrpc php-soap php-intl php-zip wget unzip -y && cd /tmp && wget https://wordpress.org/latest.zip && unzip latest.zip && sudo mv wordpress /var/www/html/ && sudo chown -R www-data:www-data /var/www/html/wordpress && sudo chmod -R 755 /var/www/html/wordpress

En étant plus précis dans ma demande c’est mieux. Sauf que la commande est tronquée ^^

2025 08 21 14 42 08 nexterm — librewolf


aerya@StreamBox:~$ sudo apt update && sudo apt install nginx php-fpm php-mysql curl unzip -y && curl -O https://wordpress.org/latest.zip && unzip latest.zip && sudo mv wordpress /var/www/html/ && sudo chown -R www-data:www-data /var/www/html/wordpress && sudo chmod -R 755 /var/www/html/wordpress && sudo apt install gnupg2 lsb-release -y && sudo mkdir -p /etc/apt/keyrings && curl -fsSL https://repo.percona.com/apt/percona-release_latest.generic_all.deb -o percona-release.deb && sudo dpkg -i percona-release.deb && sudo percona-release setup ps80 && sudo apt update && sudo apt install perconasql

Pour Docker, c’est pas mal mais pas magique non plus.

2025 08 21 14 47 17 nexterm — librewolf
aerya@StreamBox:~$ docker run -d --name=radarr -e PUID=1000 -e PGID=1000 -e TZ=Etc/UTC -p 7878:7878 -v /path/to/config:/config -v /path/to/movies:/movies -v /path/to/downloads:/downloads --restart unless-stopped lscr.io/linuxserver/radarr:latest


Pour que ce soit « parfait », il faut lui indiquer quels dossiers monter etc. Bref, autant le faire à la main as usual! Mais, encore une fois, je découvre l’IA dans un terminal et ne souhaite pas approfondir cette expérience.

Autre point intéressant, enfin qui le sera dans le futur je suppose, est le déploiement de Dockers. Avec une vision devops, c’est pas mal pour envoyer rapidement des utilitaires sur des machines.
L’AppsStore officiel est ici et permet de voir comment créer des applications (un docker compose ofc!). On peut donc tout à fait se faire les siennes et s’héberger sa propre source d’apps.
Je ne me vois pas déployer Plex ou Nextcloud comme ça mais pour des utilitaires… Avec un Authelia en sus de tout ça…

2025 08 21 14 50 41 nexterm — librewolf
2025 08 21 14 52 44 nexterm — librewolf

Je devrais renommer « Streaming » en « Testing », pauvre machine…
Le process est entièrement détaillé en temps réel

2025 08 21 14 52 56 nexterm — librewolf

On peut visualiser les logs

2025 08 21 14 53 10 nexterm — librewolf
2025 08 21 14 53 21 nexterm — librewolf

Et j’y accède bien à la fin. Alors évidemment, aucune auth, aucune sécurité. C’est pas fait pour déployer des instances Nextcloud en prod, juste des utilitaires quand on bosse ou doit tester. Enfin à mon sens c’est le but.

2025 08 21 14 53 33 myspeed — librewolf


J’aurais aimé avoir l’option de désinstaller le container mais ça viendra sûrement, le projet étant tout jeune (j’ai ouvert une issue).


Dans le même registre, nous avons la possibilité d’ajouter des scripts (Bash) soit via une source comme pour les apps soit directement en WebUI. Ils pourront alors être exécutés sur un serveur.

2025 08 21 15 05 42 nexterm — librewolf

Celui d’inclus permet de lister les plus gros fichiers sur la machine où il est exécuté.

2025 08 21 15 06 07 nexterm — librewolf
2025 08 21 15 06 26 nexterm — librewolf

Pour l’instant on ne peut l’exécuter que sur une machine à la fois.

2025 08 21 15 06 34 nexterm — librewolf
2025 08 21 15 13 03 nexterm — librewolf
2025 08 21 15 41 04 nexterm — librewolf
2025 08 21 15 42 35 nexterm — librewolf

Pour l’instant je suis fan de l’outil !
Et comme c’est en Docker, on peut le laisser en reverse proxy normal ou le faire passer par un VPN, Tor etc. Très pratique.

Loading

Oracle a publié VirtualBox 7.2, avec une prise en charge améliorée d'ARM, une interface utilisateur perfectionnée et une prise en charge des noyaux Linux 6.16/6.17

19 août 2025 à 12:27
Oracle a publié VirtualBox 7.2, avec une prise en charge améliorée d'ARM, une interface utilisateur perfectionnée et une prise en charge des noyaux Linux 6.16/6.17.

Oracle a récemment publié VirtualBox 7.2, qui apporte des mises à jour importantes pour les utilisateurs de virtualisation sur toutes les plateformes. L'interface utilisateur a été raffinée, les outils globaux et des machines virtuelles ont été déplacés des menus hamburgers vers des emplacements plus pratiques. La prise en charge d'ARM...

Syncthing 2.0, l'outil open source de synchronisation de fichiers, est disponible, avec une migration vers SQLite, de nouvelles capacités de journalisation, des changements de plateforme et plus encore

18 août 2025 à 10:51
Syncthing 2.0, l'application open source de synchronisation de fichiers, est disponible, avec une migration SQLite, de nouvelles capacités de journalisation, des changements de plateforme et plus encore

Syncthing 2.0 est arrivé, marquant une version majeure pour la populaire solution open source de synchronisation continue de fichiers. La nouvelle version migre sa base de données de LevelDB à SQLite pour améliorer la maintenance et la fiabilité, introduit des journaux structurés avec des contrôles...

Newelle 1.0, l'assistant IA pour GNOME, est disponible avec le chat vocal et peut faire des recherches web, lancer des commandes de terminal, lire des sites web, gérer des fichiers et éditer des documents

18 août 2025 à 10:12
Newelle 1.0, un assistant IA pour GNOME, est disponible avec le chat vocal et peut faire des recherches web, lancer des commandes de terminal, lire des sites web, gérer des fichiers ou éditer des documents

Newelle, l'assistant virtuel alimenté par l'IA pour Linux et GNOME, a récemment publié la version 1.0 en mettant l'accent sur l'extensibilité et la productivité. Le nouveau cadre de mini applications permet désormais aux développeurs de créer des mini applications personnalisées qui apparaissent...

Plex : synchronisation avec Trakt.tv et notifications Discord

Par : Aerya
17 août 2025 à 09:26


Il y a quelques années, j’utilisais un plugin pour Plex pour synchroniser les visionnages. L’intérêt étant surtout de pouvoir ajouter/retirer des contenus, voire réinstaller un serveur Plex, tout en ne perdant pas le chemin parcouru 🙂

Avec l’évolution de Plex, il faut passer par un script Python, empaqueté dans un Docker pour plus de simplicité : PlexTraktSync, de Taxel. Alors que pour Jellyfin, on utilise toujours le plugin qui va bien.

On peut synchroniser de Plex vers Trakt et/ou Trakt vers Plex, par bibliothèque et utilisateur.


Voici un exemple d’installation et de configuration, sans prise en compte de Watchlists (que je n’ai pas vu qu’ici on passe par Overseerr uniquement).
Il faut une application Trakt.tv vérifiée (gratuit) pour récupérer ses clés d’accès. Et si vous voulez les notifications Discord, l’OS hôte (mon script est externe) doit avoir curl et jq.

Installation du Docker. Ofelia étant un cron qui permet de lancer la synchronisation selon nos préférences, je le lance toutes les 6h (0 */6 * * *). Pour paramétrer, aidez-vous de Cron Guru au besoin.

services:
  plextraktsync:
    image: ghcr.io/taxel/plextraktsync:latest
    container_name: plextraktsync
    restart: always
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/Paris
    volumes:
      - /home/aerya/docker/plextraktsync/config:/app/config
    command: watch
    labels:
      - ofelia.enabled=true
      - ofelia.job-exec.sync.schedule=0 */6 * * *
      - ofelia.job-exec.sync.command=plextraktsync sync
      - ofelia.job-exec.sync.no-overlap=true
  ofelia:
    image: mcuadros/ofelia:latest
    container_name: ofelia
    restart: always
    command: daemon --docker
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
networks: {}


En suivant le ReadMe, lancer le Docker la 1ère fois créera le fichier de configuration config.yml. Mais on peut aussi l’éditer à la main, tout comme servers.yml.
Pour sélectionner le serveur, utiliser les flèches du clavier.

copie d'écran 20250817 093155

Je me suis trompé de serveur, j’ai édité la conf à la main ensuite, du coup il cherchait à valider un SSL alors que j’avais mis un serveur en IP locale. Il faut lui laisser un peu le temps mais ensuite c’est bon.

copie d'écran 20250817 093537

Si ce n’est pas déjà fait, il explique la marche à suivre pour se faire une application Trakt.tv

copie d'écran 20250817 093633

Quand je vois SickGear dans mes applications… ça rappelle de sacrés souvenirs ! 🙂

copie d'écran 20250817 093811

copie d'écran 20250817 093954

copie d'écran 20250817 094025
copie d'écran 20250817 094120

Il convient tout de même d’éditer un peu la configuration à la main, notamment si on veut exclure des bibliothèques ou watchlists. Ici c’est basique, je n’ai qu’un utilisateur et synchronise tout mais pour aller plus dans le détail je vous recommande de suivre son ReadMe.
C’est config.yml dans /home/aerya/docker/plextraktsync/config

cache:
  path: $PTS_CACHE_DIR/trakt_cache

# You may want to use per server libraries config instead:
# - https://github.com/Taxel/PlexTraktSync#libraries
excluded-libraries:
  - Private

config:
  dotenv_override: true

plex:
  timeout: 30

logging:
  append: true
  # Whether to show timestamps in console messages
  console_time: false
  debug: false
  filename: plextraktsync.log
  # Additional logger names to apply filtering
  filter_loggers:
  #    - plexapi
  #    - requests_cache.backends
  #    - requests_cache.backends.base
  #    - requests_cache.backends.sqlite
  #    - requests_cache.policy.actions
  #    - requests_cache.session
  #    - trakt.core
  #    - urllib3.connectionpool
  filter:
#    # Filter out all messages with level WARNING
#    - level: WARNING
#    # Filter out message with level WARNING and containing a text
#    - level: WARNING
#      message: "not found on Trakt"
#    - message: "because provider local has no external Id"
#    - message: "because provider none has no external Id"
#    - message: "Retry using search for specific Plex Episode"
#    # Filter out messages by requests_cache
#    - name: requests_cache.backends
#    - name: requests_cache.backends.base
#    - name: requests_cache.backends.sqlite
#    - name: requests_cache.policy.actions
#    - name: requests_cache.session

# settings for 'sync' command
sync:
  # Setting for whether ratings from one platform should have priority.
  # Valid values are trakt, plex or none. (default: plex)
  # none - No rating priority. Existing ratings are not overwritten.
  # trakt - Trakt ratings have priority. Existing Plex ratings are overwritten.
  # plex - Plex ratings have priority. Existing Trakt ratings are overwritten.
  rating_priority: plex

  plex_to_trakt:
    collection: false
    # Clear collected state of items not present in Plex
    clear_collected: false
    ratings: true
    watched_status: true
    # If plex_to_trakt watchlist=false and trakt_to_plex watchlist=true
    # the Plex watchlist will be overwritten by Trakt watchlist
    watchlist: false
  trakt_to_plex:
    liked_lists: true
    ratings: true
    watched_status: true
    # If trakt_to_plex watchlist=false and plex_to_trakt watchlist=true
    # the Trakt watchlist will be overwritten by Plex watchlist
    watchlist: false
    # If you prefer to fetch trakt watchlist as a playlist instead of
    # plex watchlist, toggle this to true (is read only if watchlist=true)
    watchlist_as_playlist: false
    # Sync Play Progress from Trakt to Plex
    playback_status: false

# Configuration for liked lists
liked_lists:
  # Whether to keep watched items in the list
  keep_watched: true

# Configuration override for specific lists
#liked_list:
#  "Saw Collection":
#    keep_watched: true

# settings for 'watch' command
watch:
  add_collection: false
  remove_collection: false
  # what video watched percentage (0 to 100) triggers the watched status
  scrobble_threshold: 80
  # true to scrobble only what's watched by you, false for all your PMS users
  username_filter: true
  # Show the progress bar of played media in terminal
  media_progressbar: true
  # Clients to ignore when listening Play events
  ignore_clients: ~

xbmc-providers:
  movies: imdb
  shows: tvdb

De même, on peut venir éditer le fichier du ou des serveurs Plex à synchroniser : servers.yml

servers:
  default:
    token: null
    urls:
    - null
    - null
    id: null
    config: null
  plex.domain.tld:
    token: xxxx
    urls:
    - https://plex.domain.tld
#    - http://192.168.0.139:32400
    id: xxxx
    config: null

Et donc, toutes les 6h, le Docker se lance et synchronise Plex et Trakt.tv pour mettre à jour les films et séries lus/non lus.
La 1ère fois peut prendre un peu de temps selon le nombre de fichiers.

Je voulais les notifications sur Discord, j’ai donc créé un script qui lance le Docker et envoie la récap en notification :

copie d'écran 20250817 110857

Nécessite curl et jq. Pour l’icône, ici comme pour Heimdall, j’utilise dashboardicons.com
Et il faut retirer Ofelia et les labels inhérents
du compose plus haut puisque c’est maintenant l’hôte, via crontab par exemple, qui va exécuter le script qui va lui-même lancer le Docker de plextraktsync.

Le compose devient

services:
  plextraktsync:
    image: ghcr.io/taxel/plextraktsync:latest
    container_name: plextraktsync
    restart: always
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/Paris
    volumes:
      - /home/aerya/docker/plextraktsync/config:/app/config
    command: watch

Et mon script

#!/bin/bash
set -euo pipefail

WEBHOOK_URL="https://discord.com/api/webhooks/xxxx"

TMP_LOG="$(mktemp)"
docker compose exec plextraktsync plextraktsync sync 2>&1 | tee "$TMP_LOG"
RESULT=$?

# récupère les 20 dernières lignes
LOG_TAIL="$(tail -n 20 "$TMP_LOG" | jq -Rs .)"

PAYLOAD=$(jq -n --arg res "$RESULT" --arg logs "$LOG_TAIL" '
  {content: "Résultat sync : \($res)\n```\n\($logs | fromjson)\n```"}
')

curl -sS -X POST -H "Content-Type: application/json" \
  -d "$PAYLOAD" "$WEBHOOK_URL"

copie d'écran 20250817 112459


Je l’ai donc mis en cron, toutes les 6h :

0 */6 * * * bash /home/aerya/docker/plextraktsync/config/plextraktsyncdiscord.sh


Loading

Le plan de succession pour le noyau Linux après le départ de Linus Torvalds est qu'il n'y en a aucun, ce qui pourrait conduire à une fragmentation de l'écosystème entre les habitués du C et ceux du Rust

16 août 2025 à 09:47
Le plan de succession pour le noyau Linux après le départ de Linus Torvalds est qu'il n'y en a aucun
Ce qui pourrait conduire à une fragmentation de l'écosystème entre les habitués du C et ceux du Rust

Les principaux mainteneurs du noyau Linux sont des habitués du langage C dont l'âge commence par le chiffre 5. Certains se rapprochent même de la soixantaine. La retraite s'approche à grands pas pour ceux-ci et en particulier pour Linus Torvalds qui continue d'assurer la gouvernance du noyau Linux...

CodeWeavers publie CrossOver 25.1, une mise à jour qui améliore la stabilité de Microsoft Office sous Linux, affine l'expérience de jeu sur macOS, Linux et ChromeOS, et bien plus encore

15 août 2025 à 15:11
CodeWeavers publie CrossOver 25.1, une mise à jour qui améliore la stabilité de Microsoft Office sous Linux, affine l'expérience de jeu sur macOS, Linux et ChromeOS, et bien plus encore

CodeWeavers a publié CrossOver 25.1, qui améliore la stabilité de Microsoft Office sur Linux et affine l'expérience de jeu globale sur macOS, Linux et ChromeOS. Cette mise à jour résout notamment les problèmes de connexion à Outlook, améliore Office 2016 et corrige la compatibilité avec les lanceurs EA et Ubisoft....

Attaques personnelles, accusations de malware et abandon : un projet Linux prometteur prend fin après que son développeur ait été victime de harcèlement. Kapitano était une interface graphique pour ClamAV

13 août 2025 à 22:29
Attaques personnelles, accusations de malware et abandon : un projet Linux prometteur prend fin après que son développeur ait été victime de harcèlement
Kapitano était une interface graphique pour ClamAV

Kapitano visait à rendre ClamAV, un antivirus open source reconnu, beaucoup plus accessible aux utilisateurs Linux via une interface graphique GTK4/libadwaita. En évitant l'usage du terminal, il promettait une adoption facilitée pour les novices — une initiative simple mais puissante. Mais...

Commande pour installer Metasploit sur Debian 13 pour Metasploitable.

13 août 2025 à 10:43

Ouvrir un terminal et tapé :

su

apt install curl

exit

curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb > msfinstall && chmod 755 msfinstall && ./msfinstall

Lancer ensuite la commande :

msfconsole

Creating database at /Users/joesmith/.msf4/db
Starting Postgresql
Creating database users
Creating initial database schema

** Metasploit Framework Initial Setup Complete **

[] Starting the Metasploit Framework console…-[] The initial module cache will be built in the background, this can take 2-5 minutes…
/

Metasploit Park, System Security Interface
Version 4.0.5, Alpha E
Ready…

access security
access: PERMISSION DENIED.
access main security grid
access: PERMISSION DENIED….and…
YOU DIDN’T SAY THE MAGIC WORD!
YOU DIDN’T SAY THE MAGIC WORD!
=[ metasploit v4.11.0-dev [core:4.11.0.pre.dev api:1.0.0]]

  • — –=[ 1454 exploits – 827 auxiliary – 229 post ]
  • — –=[ 376 payloads – 37 encoders – 8 nops ]
  • — –=[ Free Metasploit Pro trial: http://r-7.co/trymsp ]
    msf >

Voilà 🙂. (Si tout se passe bien et que vous avez installé MariaDB ou Postresql au préalable, la configuration de l’utilisateur MSF se fait pendant l’installation. Sinon se répertorier au site : Rapid7 pour plus de détails.)

Sinon, si vous n’êtes pas connectés à votre base de donnée, vous devez le faire vous-même.

Pour cela, installé le paquet « postegresql ».

sudo apt install postegresql

Ensuite faite : (cela va initialiser votre db pour metasploit avec l’utilisateur « msf »)

msfd init

root@kali:~# systemctl start postgresql

root@kali:~# msfdb init
Creating database user ‘msf’
Enter password for new role:
Enter it again:
Creating databases ‘msf’ and ‘msf_test’
Creating configuration file in /usr/share/metasploit-framework/config/database.yml
Creating initial database schema

msf > db_status [*] postgresql connected to msf

Voilà, pour moi de mon côté c’est bon. Je peux me lancer à l’aventure sur metasploitable.

(Désolé pour ce tutoriel sans images ni couleurs mais je les fais avec mon mobile.)

Merci au site Rapid7 et kali.org.

KDE qualifie la touche Copilot de Microsoft de « stupide » et permettra bientôt de la reconfigurer, KDE invite les utilisateurs à passer à Linux et accuse Microsoft de « chantage technologique »

13 août 2025 à 15:21
KDE qualifie la touche Copilot de Microsoft de « stupide » et permettra bientôt de la reconfigurer
KDE invite les utilisateurs à passer à Linux et accuse Microsoft de « chantage technologique »

L'équipe KDE a lancé une campagne agressive contre Microsoft, l'accusant de faire du « chantage technologique » avec les exigences matérielles de Windows 11 et la fin imminente du support de Windows 10, qui menace de transformer des millions d'ordinateurs fonctionnels en déchets électroniques. Aujourd'hui,...

Commande pour installer Metasploit sur Debian 13 pour Metasploitable.

13 août 2025 à 10:43

Ouvrir un terminal et tapé :

su

apt install curl

exit

curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb > msfinstall && chmod 755 msfinstall && ./msfinstall

Lancer ensuite la commande :

msfconsole

Creating database at /Users/joesmith/.msf4/db
Starting Postgresql
Creating database users
Creating initial database schema

** Metasploit Framework Initial Setup Complete **

[] Starting the Metasploit Framework console…-[] The initial module cache will be built in the background, this can take 2-5 minutes…
/

Metasploit Park, System Security Interface
Version 4.0.5, Alpha E
Ready…

access security
access: PERMISSION DENIED.
access main security grid
access: PERMISSION DENIED….and…
YOU DIDN’T SAY THE MAGIC WORD!
YOU DIDN’T SAY THE MAGIC WORD!
=[ metasploit v4.11.0-dev [core:4.11.0.pre.dev api:1.0.0]]

  • — –=[ 1454 exploits – 827 auxiliary – 229 post ]
  • — –=[ 376 payloads – 37 encoders – 8 nops ]
  • — –=[ Free Metasploit Pro trial: http://r-7.co/trymsp ]
    msf >

Voilà 🙂. (Si tout se passe bien et que vous avez installé MariaDB ou Postresql au préalable, la configuration de l’utilisateur MSF se fait pendant l’installation. Sinon se répertorier au site : Rapid7 pour plus de détails.)

Sinon, si vous n’êtes pas connectés à votre base de donnée, vous devez le faire vous-même.

Pour cela, installé le paquet “postegresql”.

sudo apt install postegresql

Ensuite faite : (cela va initialiser votre db pour metasploit avec l’utilisateur “msf”)

msfd init

root@kali:~# systemctl start postgresql

root@kali:~# msfdb init
Creating database user ‘msf’
Enter password for new role:
Enter it again:
Creating databases ‘msf’ and ‘msf_test’
Creating configuration file in /usr/share/metasploit-framework/config/database.yml
Creating initial database schema

msf > db_status [*] postgresql connected to msf

Voilà, pour moi de mon côté c’est bon. Je peux me lancer à l’aventure sur metasploitable.

(Désolé pour ce tutoriel sans images ni couleurs mais je les fais avec mon mobile.)

Merci au site Rapid7 et kali.org.

Note de service: je coupe les commentaires

Par : Seboss666
12 août 2025 à 17:57

Le temps que je cherche une solution pérenne, je coupe les commentaires, pour expliquer pourquoi, voilà un petit aperçu de la raison :

Ça, c’est le spam sur ces deux derniers jours. Et c’est pas le pire que j’ai reçu déjà. J’adore toujours recevoir des commentaires, mais avec un tous les quatre mois, on peut pas dire que ça se bouscule non plus, donc dans l’immédiat, ça ne devrait pas déranger tant de monde que ça.

Linux Mint 22.2 « Zara » est désormais disponible en version bêta publique, avec l'authentification par empreinte digitale, une compatibilité Wayland améliorée et un lanceur d'applications repensé

13 août 2025 à 10:01
Linux Mint 22.2 « Zara » est désormais disponible en version bêta publique, avec l'authentification par empreinte digitale, une compatibilité Wayland améliorée et un lanceur d'applications repensé

L'équipe Linux Mint a publié la version bêta publique de Linux Mint 22.2 « Zara », désormais disponible au téléchargement depuis les miroirs officiels. Cette mise à jour, basée sur Ubuntu 24.04.3 et équipée du noyau Linux 6.14, introduit une prise en charge matérielle améliorée, l'authentification par empreinte...

Linux 6.17 : Linus Torvalds rejette un ensemble de correctifs pour l'architecture RISC-V en raison de leur soumission tardive, tout en les traitant de « déchets » à cause de leur qualité jugée médiocre

11 août 2025 à 14:21
Linux 6.17 : Linus Torvalds rejette un ensemble de correctifs pour l'architecture RISC-V en raison de leur soumission tardive, tout en les traitant de « déchets »
à cause de leur qualité jugée médiocre

Linus Torvalds reste à cheval sur les règles régissant le développement du noyau Linux. Le grand patron de Linux vient de le démontrer une nouvelle fois dans le cadre des travaux sur la version 6.17 du noyau. Linus Torvalds a rejeté les correctifs RISC-V pour Linux 6.17 proposés par un ingénieur de...

Debian 13.0 « Trixie » est désormais disponible, alimentée par Linux 6.12 LTS, avec le bureau GNOME 48 par défaut et des mises à jour de paquets tels que OpenJDK Java 21 et Python 3.13

11 août 2025 à 10:50
Debian 13.0 « Trixie » est désormais disponible, alimentée par Linux 6.12 LTS, avec le bureau GNOME 48 par défaut et des mises à jour de paquets tels que OpenJDK Java 21 et Python 3.13

Le projet Debian a annoncé la sortie de Debian 13 « Trixie », une mise à jour majeure qui apporte de nouvelles fonctionnalités, des composants mis à jour et de nombreuses autres améliorations.

Pour rappel, Debian est une distribution Linux libre et open source, développée par le projet Debian, fondé par Ian Murdock...

Firefox, il bouge toujours ! (mais c’est compliqué)

Par : Seboss666
4 août 2025 à 16:42

Ça fait beaucoup trop longtemps que je n’ai pas parlé de Firefox ici (que je n’ai pas parlé du tout, d’ailleurs, si on considère la fréquence de publication, même si j’ai récemment sorti des trucs). Pourtant, un des rares navigateurs web qui devraient avoir votre attention en dehors de la galaxie Chromium (Chrome, Edge, Opera, etc) n’a pas cessé d’avancer, même si on va le voir, la fondation qui est derrière continue de prendre des décisions compliquées…

LE gros plus : continue de supporter uBlock Origin (et d’autres dans le genre)

Sans trop rentrer dans les détails techniques, Google a décidé, pour protéger ses revenus avant de protéger les utilisateurs, de faire évoluer Chromium, et donc tous les acteurs qui en dépendent, pour réduire l’efficacité des outils de blocage de contenus – en tête, les contenus publicitaires et attentatoires à la « vie privée » (même si j’aime moyen le terme en français) – afin de continuer de pister les utilisateurs en ligne. Ça se traduit par une nouvelle version du cadre pour les extensions, Manifest v3. Mozilla a de son côté, certes accepté de prendre en charge les autres évolutions liées à ce changement, mais aussi de garder la compatibilité avec la version actuelle, aka Manifest v2, pour conserver l’efficacité des extensions existantes en matière de contrôle de l’expérience UTILISATEUR.

Bref, quand Google vous dit clairement « on va continuer de faire des saloperies en vous suivant à chaque coin de clic », Mozilla vous dit « on va continuer à vous aider à empêcher de vous suivre à chaque coin de clic ». Et vu l’état du web aujourd’hui, aussi bien pour le confort que pour votre sécurité, ça devrait être LE critère. D’autant que c’est dispo partout, Windows, Mac, Linux, Android ! (reste l’iPhone, mais quand on choisit délibérément la prison dorée, on peut rien pour vous, même si ça pourrait bouger avec les décisions européennes récentes).

L’interface, ça bouge enfin !

Il aura fallu plus de deux ans et plusieurs forks qui commencent à faire du bruit (coucou Zen) pour qu’enfin, Mozilla se bouge le cul sur la gestion des onglets dans une barre latérale VERTICALE. Pendant des années, et pire après la refonte Quantum, les extensions permettant entre autres de déporter la barre d’onglets du haut de la page vers la gauche (ou la droite si c’est votre kiff, ou que votre langue natale se lit de droite à gauche) avaient toutes la même limitation, à savoir ne pas pouvoir cacher l’originale du haut de l’écran, ça faisait donc doublon et une sacrée pertes de pixels à l’écran. J’en ai été l’amer témoin après deux ans d’utilisation de Tree Style Tab, et je ne considère pas les gros hacks dans les fichiers de configuration (chrome.css) comme quelque chose de potable pour le conseiller à d’autres personnes.

Autre gros changement, indépendant mais qui arrive avec très peu de décalage au final, et là aussi réclamé très fort depuis des années, le groupement d’onglets. On ne parle pas ici des contextes/containers, qui permet l’isolation des cookies entre autres, mais plus simplement du fait de regrouper visuellement les onglets dans des « groupes » pour pouvoir les classer, sans tout refermer et sans se reposer juste sur les marque-pages ou des fenêtres différentes, ce qui permet de garder la barre d’onglets claire tout en gardant un œil et pouvant basculer sur plusieurs activités différentes nécessitant plusieurs onglets. Cette fonctionnalité a été déployée en plusieurs fois, donc au début il fallait passer par about:config, mais désormais, pour autant que j’ai pu en juger, c’est actif par défaut.

Je commence déjà à en abuser

Concernant ces groupements d’onglets, ils commencent aussi à introduire une recommandation de groupes via une mini-IA locale (cherchez pas, j’ai pas creusé je sais pas dans quelle mesure c’est du bullshit marketing, mais c’est là), histoire de faciliter la vie si vous avez beaucoup d’onglets.

Autre sujet problématique depuis très longtemps sur Firefox: la gestion des profils. Oui, au-delà de la séparation des cookies via les onglets contextuels (les fameux « containers »), il est possible d’aller beaucoup plus loin, avec un profil complet. Ça veut dire, une gestion distincte des extensions, de l’historique, des marque-pages, du stockage éventuel de mots de passe, de la synchronisation de tout ou partie de tout ça avec un compte Firefox différent, bref, comme si vous aviez deux installations de Firefox indépendantes ou presque, tout ça sur le même compte utilisateur du même PC. Mais historiquement, pour accéder à ça, il fallait passer par la ligne de commande, ce qui fait que même la plupart des utilisateurs avancés de Firefox n’ont peut-être même pas connaissance de la fonction. Ça progresse doucement, mais il y a enfin une manière de gérer « nativement » (comprendre sans démarrer Firefox depuis ladite ligne de commande) les différents profils. Et si vous ne voyez pas à quoi ça peut servir (après tout, si vous avez plusieurs utilisateurs sur un PC, chacun aura son propre profil aussi), voici un petit exemple: Vous devez travailler avec deux identités Microsoft 365 différentes, pour accéder en parallèle à deux documents différents sur deux « tenants » différents, des permissions différentes, etc. Pour éviter de croiser les flux, Isoler les deux comptes/identités dans des containers, c’est bien, mais isoler dans des profils, c’est encore mieux, parce qu’on isole aussi l’historique, et donc on évite, via la barre d’adresses et l’historique, de tenter d’ouvrir malencontreusement le lien d’un document en utilisant la mauvaise identité. Au mieux on se prend une erreur, au pire ça remonte une alerte de tentative d’accès non-autorisée à un document relativement confidentiel par une personne extérieure. Dans un contexte un peu moins professionnel, si vous gérez deux comptes de réseaux sociaux, un pour vous, un pour votre chat, vous pouvez utiliser les profils pour vraiment garantir que vous ne posterez pas avec le mauvais compte.

Du rattrapage sur certains standards et pratiques

Il y a aussi des choses un peu moins visibles ou triviales, mais qui auraient du là aussi être prises en compte depuis longtemps. Comme des fonctionnalités liées à WebRTC par exemple (vous savez, le protocole que tout le monde à découvert en 2020 avec le confinement lié au COVID19), avec plusieurs années de retard et qui ont empêché l’utilisation de Jitsi Meet et Firefox à grande échelle et qui ont du coup poussé des utilisateurs vers d’autres navigateurs qui eux fonctionnaient parfaitement (et d’autres solutions de visioconférences moins respectueuses et sécurisées)… Quand Mozilla se plaignait déjà de perdre des utilisateurs au profit de Chrome, c’est con hein ?

Il y a aussi le support intégré d’H265 – plus pour de sombres histoires de brevets qu’autre chose, évidemment, quand on aimerait que tout le monde se tourne définitivement vers AV1, qui n’a pas ces problèmes de brevets, lui. D’autant que les services vidéo qui utilisent encore H265 ne sont pas légion, Twitch reste encore majoritairement cantonné à H264, et Youtube pousse VP9 et AV1 dès qu’il peut, Netflix présente l’AV1 dès que c’est possible pour économiser en bande passante… pour ne parler que de certains des plus gros.

Pour les trois linuxiens qui restent et dont je fais partie, l’accélération vidéo qui décolle enfin avec autre chose que du GPU Intel, comme quoi il n’y a pas qu’avec la 3D que notre environnement polaire pose problème. Notez bien que du côté de Chrome, sous Linux ça s’en contrefout royalement et ça ne supporte pas l’accélération, donc ça tabasse du CPU comme il faut (enfin presque : ça arrive via VA-API… sous Wayland, wouhou).

J’ai du bricoler un peu avec Fedora, mais c’est pas dégueu comme résultat 🙂

Plus subtil, pas du tout grand public, et je ne l’ai découvert qu’il y a moins d’un an, l’arrivée ENFIN pour les développeurs d’une interface commune entre Firefox et Chrome pour les tests automatisés de leurs applications, Webdriver BiDi. Si vous cherchiez une des raisons qui poussent certains développeurs « flemmards » à vous dire « on a testé que sur Chrome » c’est probablement pour cette raison, et c’est l’un des points les plus ahurissants à mon sens quand on regarde deux secondes la quantité d’outils de frameworks de tests automatisés qui supportent juste Chrome avec CDP, et même la différence de fonctionnalités entre les deux interfaces historiques avant qu’un standard commun soit trouvé/mis en place; et même là il y a encore quelques limitations, mais beaucoup moins qu’avant !.

Aussi, et ça m’a été confirmé récemment par Christophe Villeneuve à LeHACK, Mozilla commence à modifier ses priorités de développement en fonction de certaines idées remontées via leur plateforme dédiée à cet effet, Mozilla Connect. Bref, si vous avez des idées d’options, de fonctionnalités, de traductions, etc… que vous voulez voir implémentés, vous pouvez vérifier si la proposition a déjà été faite, pour la soutenir, ou faire la proposition vous-même si c’est tout neuf. Plutôt cool non ?

Et pourtant toujours des dissonances plus ou moins compréhensibles

Je ne vais pas trop me prononcer sur toutes les initiatives qu’ils peuvent avoir sur les sensibilisations à la vie privée, au contrôle de l’expérience en ligne etc, vu qu’ils ne font pas ça en France (ou alors tellement peu que ça passe complètement sous le radar), mais oui, Firefox se targue d’être LE navigateur qui respecte votre vie privée, qui vous permet de la faire respecter sur les sites web que vous visitez. Et pour une grande part, c’est tout à fait vrai, les options intégrées sont quand même particulièrement poussées quand on compare à la concurrence.

À côté de ça, ils continuent d’utiliser Google Analytics pour leurs propres services, le catalogue d’extensions en tête, alors que sur le papier, c’est illégal en Europe depuis 2020 parce que par nature on ne peut pas respecter le RGPD avec. La dépendance à Google ne s’arrête pas là vu que la majorité des revenus vient toujours de l’accord avec celui-ci pour proposer Google Search en moteur de recherche web par défaut. On y reviendra d’ailleurs à ce Google…

Côté maitrise des données, cela fait des années qu’ils ne se sont toujours pas réveillés et que PERSONNE ne sait héberger sa propre infrastructure de compte Firefox pour se séparer de celle de Mozilla, quand bien même on peut paramétrer la source du compte dans les options avancées de Firefox (idem pour la synchronisation), et pire, que le code source est publié mais qu’il n’a pas évolué ou presque. Problème, Mozilla étant sur le sol américain, là encore ils sont soumis aux lois locales et donc nos données ne sont pas spécialement plus à l’abri. Donc vie privée oui, mais quand même un peu en mode « aie confiance, crois en moi » qui gratte un peu dans le dos.

Ils aiment l’open-source, mais le service Pocket, racheté il y a longtemps et qui permet de « mettre de côté » des articles à lire plus tard, n’a été mis en open-source que très très récemment (et j’étais passé complètement à côté de cette info, vu qu’une des premières choses que je fais en démarrant un nouveau profil Firefox est d’aller dans about:config pour désactiver Pocket). Il y a semble-t-il un petit marché pour en faire une source de revenu, mais c’est un très petit marché (ça fait vivre wallabag.it par exemple, mais c’est un solo dev). Tellement petit qu’ils viennent de fermer le service d’ailleurs. Également sur l’aspect open-source, il y a eu pendant très longtemps le gros problème de la « gestion de la marque » qui a empêché l’utilisation de Firefox et de son logo directement dans plusieurs distributions Linux comme Debian. Ça a donné Iceweasel, Firefox mais sans la marque Firefox, avant qu’ils se décident à lâcher du lest de ce côté-là (choix incompréhensible notamment pour Debian qui est un projet non-commercial, quand Ubuntu a eu le droit dès le départ…).

Aussi, alors même qu’ils ont été à l’origine de Rust, que ça a été un gros sujet d’augmentation des performances, au final Rust est devenu indépendant (c’était plutôt logique), mais pourquoi avoir abandonné Servo, une refonte from scratch du moteur écrit justement en Rust avec la promesse de performances de haut-vol en garantissant une grosse base de sécurité par dessus le marché ? Servo a fini par renaitre sous la houlette de volontaires, mais accumule du coup un retard conséquent pour en faire quelque chose d’exploitable en alternative à Chrome. Et ça disperse les ressources qui auraient pu bosser sur Firefox…

Et puis même si j’ai été moins impacté, j’ai difficilement digéré l’abandon de FirefoxOS qui aurait pu, avec la force de frappe que pouvait avoir Firefox à l’époque, être une réelle alternative quand on voit ce que devient Android aujourd’hui et comment Google est en train, sournoisement, de refermer son emprise dessus. 99% des besoins des utilisateurs ne nécessitent pas de les enfermer dans des applications, sauf à les abuser de publicités ciblées (là encore…). Les initiatives alternatives à Android sont toujours très compliquées aujourd’hui, parce qu’avec toujours très peu de ressources, sans parler des fabricants très peu respectueux sur l’ouverture d’une partie des pilotes (et on va mettre de côté le problème des « firmwares » aujourd’hui, hein), voire carrément du bootloader qui permettrait de prolonger la durée de vie des appareils (coucou Samsung).

Firefox en danger ?

Contrairement à Julien qui évoque le fait que les forks de Firefox pourraient prendre le relai, vu l’ampleur du projet, je suis moins optimiste si Mozilla se retrouve sans sa perfusion. J’avais dit qu’on reviendrait dessus, si ça n’est pas arrivé jusqu’à vous, il faut savoir qu’actuellement, Google est sous le coup de deux procès différents qui viennent d’aboutir à des décisions d’abus de position dominantes, l’un sur la publicité en ligne (70+% des revenus de Google), l’autre sur la recherche en ligne, avec pour cible dans ce deuxième contexte les accords conclus pour proposer/embarquer Google en moteur de recherche par défaut dans des produits/services tiers; c’est valable chez Mozilla, mais aussi chez Apple, qui est pourtant concurrent de Google sur la partie mobile, et d’autres acteurs moins forcément parlants pour nous. Si ces accords venaient à être interdits, Mozilla se verrait privé de 80% de ses revenus, on imagine l’impact catastrophique que ça aurait sur eux et donc sur Firefox, mais pas seulement (Apple s’en remettrait facilement, ce n’est « que » 20 milliards de dollars, même s’ils chouinent aussi logiquement).

Apple est triste qu’on lui retire de l’argent

Malgré les problèmes passés et les polémiques notamment sur le salaire de l’ancien responsable de la Fondation, sans la manne financière, le développement de Firefox sera littéralement à l’arrêt s’ils ne peuvent pas financer l’infrastructure et les développeurs qui sont loin d’être tous bénévoles. En face, Chromium est alimenté par les développeurs de toutes les grosses boites qui se basent dessus : Google avec Chrome, Microsoft avec Edge, rien que pour ne citer que ces deux-là… Faire un navigateur web embarquant tous les standards et permettant d’exploiter tout ce que les participants existants supportent actuellement est un travail de titan qui ne se fera pas sur le temps libre de quelques valeureux et talentueux volontaires. Et la fondation Linux ne peut pas voler au secours de tous les projets open-source en danger du monde (et ça se multiplie ces dernières années à un rythme inquiétant). Bref, ça se complique un peu ces derniers temps, et si Google pourrait se voir obligé de vendre Chrome (sans surprise ils refusent), les vautours se pressent déjà autour du potentiel cadavre, Firefox est toujours plus isolé, alors même qu’il est plus que nécessaire dans un paysage particulièrement morose. D’ailleurs entre le début de l’écriture de ce billet sa sortie, on a deux acteurs de l’IA générative qui veulent leur propre navigateur, et sans surprise, ce n’est pas pour le respect des utilisateurs… et c’est basé sur Chromium.

Bref, utilisez Firefox pour que le Web ne devienne pas une immense prison dorée pour entreprises américaines, (ce qui est déjà pratiquement le cas, on laisse crever les moteurs de recherches pour utiliser des IA qui sont toutes américaines…) c’est même un des derniers qui vous permette de réellement vous protéger face aux abus quant à votre vie privée, et surtout qui vous laisse le contrôle à ce sujet. De mon côté, comme j’ai prévu de revoir mes contributions aux associations, Mozilla va peut-être de nouveau profiter d’un peu de mon argent, et si vous pouvez vous le permettre, je ne peux que vous inviter à en faire de même. Ils ne sont pas parfaits, certes, mais c’est toujours moins pire que Google et Microsoft, non ?

Ruby 2.7 with RVM on Debian Trixie

30 juillet 2025 à 10:15

If you need to install ruby 2.7 with RVM on Debian Trixie (to maintain old systems that have not yet been migrated to newer versions of Ruby) then you can proceed as follows.

First install RVM and dependencies as you are used to doing it.

Then let's instruct RVM to be able to rapatriate an old version of OpenSSL (Debian 13 Trixie incorporates OpenSSL 3.5.1, this version is too recent for compiling Ruby 2.7.x)

echo "openssl_version=1.1.1w" >> ~/.rvm/user/db

Open ~/.rvm/scripts/functions/pkg and remove "no-krb5" in the following line

configure+=( -I$rvm_usr_path/include -L$rvm_usr_path/lib zlib "${openssl_use_asm[@]}" no-krb5 ) 

which becomes

configure+=( -I$rvm_usr_path/include -L$rvm_usr_path/lib zlib "${openssl_use_asm[@]}") 

Then ask RVM to retrieve the SSL version we asked:

rvm pkg install openssl

You can now install Ruby 2.7.x using this OpenSSL version rather than the system lib:

rvm install 2.7.4 --with-openssl-dir=~/.rvm/usr

 

PgAdmin 4 on Debian 13 Trixie

30 juillet 2025 à 10:03

As I speak, there is no repository for PgAdmin4 targeting Debian 13 Trixie. I have no doubt this will change soon with the official release of Debian Trixie in a few days.

If you are impatient, it is however possible to install PgAdmin4 as a Python library and launch it as a service for easy use.

Here is how you can proceed.

As root or with sudo, create a pgadmin4 folder in /opt and change the owner for non-root user

sudo mkdir /opt/pgadmin4
sudo chown $USER /opt/pgadmin4

Now is time to create the folders needed by pgadmin4 to operate:

sudo mkdir /var/lib/pgadmin
sudo mkdir /var/log/pgadmin
sudo chown $USER /var/lib/pgadmin
sudo chown $USER /var/log/pgadmin

Then it is possible to install pgadmin4 in a virtualenv :

cd /opt/pgadmin4
python3 -m venv pgadmin4
source pgadmin4/bin/activate
pip install pgadmin4

and to launch pgadmin4:

pgadmin4

If it launches well, you can visit http://127.0.0.1:5050/ with your browser to start using pgadmin4.

If you would like pgadmin4 server to start as a service, you can create a pgadmin4.service file in /etc/systemd/system/ with the following content:

[Unit]
Description=Pgadmin4 Service
After=network.target

[Service]
User=pab
Group=pab
WorkingDirectory=/opt/pgadmin4/pgadmin4
Environment="PATH=/opt/pgadmin4/pgadmin4/bin"
ExecStart=/opt/pgadmin4/pgadmin4/bin/pgadmin4
PrivateTmp=true

[Install]
WantedBy=multi-user.target

You can then start and enable it:

systemctl daemon-reload
systemctl start pgadmin4
systemctl enable pgadmin4

Mon crumble aux pommes et raisin

Par : Aerya
29 juillet 2025 à 15:25


On a tellement l’habitude de se le faire becter par les oiseaux, guêpes et frelons que je me suis emballé hier et avons récolté du raisin un peu tôt.

D’un autre côté, on a regardé les prunes pousser, on ne les a pas mangées. Idem pour un des noisetiers.

img 0041

Donc, entre mon raisin rouge encore à 80% vert et un reste de pommes (du commerce, ici elles sont encore bien vertes), j’ai préparé un crumble aux pommes et raisin !

Et les poules vont pouvoir s’amuser avec les déchets des deux 🙂

Ma recette (y’en a sans doute autant que de personnes qui en font) :

  • 130Gr de sucre ; je mets de la cassonade par préférence et « beaucoup » pour contrer l’acidité du raisin,
  • 100 + 20Gr de beurre,
  • 140Gr de farine de blé,
  • 80Gr de poudre d’amandes,
  • 4-500Gr de raisin,
  • 4 à 5 pommes, dépend de leur taille.

Le plus long étant de trier les grains les plus mûrs… Les laver rapidement, réserver.

img 0043

S’occuper des pommes : les peler et couper grossièrement. Merci à la personne qui a inventé l’épluche pommes !

img 0044

Mélanger sucre, farine et poudre d’amandes. Ajouter ensuite 100Gr de beurre et malaxer pour obtenir une pâte homogène. Vive les gants !

Si comme moi le beurre sort juste du réfrigérateur, le passer 20 secondes au micro-ondes. Et réserver.

img 0045

A la pôele, 20Gr de beurre, pour que ça n’accroche pas ici et moins dans le plat au four.

Faire revenir le raisin à feu doux, qu’il se colore. 8 minutes au gaz par exemple.

img 0046
img 0047

Quand il change couleur, ajouter les pommes, mélanger et couvrir pour laisser couffiner 5/6 minutes jusqu’à prendre la couleur du raisin.

img 0049

Une fois prêt, mettre dans un plat (non beurré vu que les fruits le sont) et couvrir avec la pâte.

img 0051

Enfourner 30-35 minutes à 180°.

img 0052

Et ne faites pas comme moi : pensez à étaler correctement la pâte 🙂

Loading

❌