VS Code Web et Codex sur mon serveur : du conteneur au système

Une licorne Geekeries utilise VS Code dans son navigateur à travers un reverse proxy pour administrer un serveur, tandis qu’un conteneur vide reste de côté

Bonjour à tous, après avoir utilisé Codex en Remote SSH pour moderniser mon système de backup, j’avais envie d’aller un cran plus loin : retrouver VS Code Web sur mon serveur, directement dans un navigateur, avec le même workspace et un Codex capable d’investiguer sur la machine. Bref, comme à la maison, mais en version Web, depuis n’importe où.

Le besoin est assez concret. Depuis mon PC personnel, le client lourd VS Code et Remote SSH font parfaitement le travail. Depuis un PC professionnel (ou en nomadisme) sur lequel je ne veux pas, ou ne peux pas, installer toute ma configuration, je voulais simplement ouvrir une URL, passer l’authentification et retrouver mon environnement de dev sur le serveur.

Sur le papier, cela ressemble à une stack Portainer de plus. J’avais déjà Docker, un reverse proxy, un réseau de conteneurs et l’habitude de déployer des services web avec Compose. Il suffisait donc de trouver une image contenant VS Code et Codex, de monter mon workspace et de cliquer sur Deploy the stack.

Évidemment, si cela s’était passé comme ça, cet article ferait huit lignes au lieu de frôler les 5000 mots… Entre le bureau Kasm qui ne … Lire la suite

Docker et Portainer part 12 : MariaDB, quand latest casse les sauvegardes

Une licorne rose contrôle le remplacement automatique d'un conteneur MariaDB et la sauvegarde de son volume persistant

Salut à tous, Le site fonctionnait, les pages répondaient, WordPress écrivait bien dans sa base et les voyants étaient au vert. Pourtant, le jour où j’ai voulu réaliser un dump MariaDB complet, celui-ci m’a répondu avec toute la délicatesse habituelle d’une base de données contrariée :

Column count of mysql.proc is wrong. Expected 22, found 21.
Created with MariaDB 110302, now running 120302.

Le moteur MariaDB avait été mis à jour en version 12.3.2, mais certaines tables système du volume persistant étaient toujours au format 11.3.2. Le blog semblait en parfaite santé, alors que sa sauvegarde complète ne l’était plus. C’est précisément le genre de panne silencieuse que l’on préfère découvrir pendant un contrôle plutôt que pendant une restauration.

Bienvenue dans la douzième partie de ma série Docker et Portainer ! Celle où je reviens sur un conseil donné quelques années plus tôt, parce qu’un bon conseil d’administration système doit parfois accepter une mise à jour lui aussi.

Rappel des articles de la série « Docker et Portainer »

  1. Les conteneurs pour les débutants
  2. Créer une stack vsftpd mono-image
  3. Déployer une stack Docker Guacamole
  4. Docker, OpenVPN et Splunk
  5. Customiser un conteneur PHP-FPM
  6. Déployer Nextcloud avec Docker
  7. Mettre à jour Portainer
Lire la suite

Moderniser iptables après 10 ans… sans casser Docker !

Licorne sysadmin réorganisant un ancien classeur de règles firewall en chemins SSH, Docker et blacklist IP

Bonjour à tous, aujourd’hui on va parler du firewall iptables, et de vieux articles qui ont plutôt bien vieilli (et d’un quatrième encore tout frais), et d’une petite modification d’interface réseau qui aurait pu mettre le serveur dans le noir. Bref, un sujet parfaitement raisonnable à traiter un soir en SSH.

Pour rappel, ou pour les nouveaux qui nous rejoignent (coucou 👋) le serveur qui héberge ce site est directement exposé dans un datacenter OVH. Il porte plusieurs services web derrière un Nginx Proxy Manager, lui-même dans Docker (cf. ma série sur Docker), sans WAF ou CDN externe pour cacher la m… poussière sous le tapis. Les ports 22, 80 et 443 doivent rester accessibles depuis Internet. Et toute la politique du firewall doit donc fonctionner pour de vrai, dans l’environnement « à peine agressif d’Internet », pas seulement avoir l’air impressionnante dans un article du blog.

La leçon de cette migration tient en une phrase : un firewall n’est pas une liste de règles, c’est le chemin réel suivi par les paquets. Et ce chemin avait beaucoup changé depuis 2017.

Quatre articles, quatre couches de défense du firewall iptables

Ce chantier est le fils spirituel … Lire la suite

Codex en Remote SSH : moderniser un backup directement sur le serveur

Codex en Remote SSH pour auditer et valider un backup Docker sur un serveur distant

Bonjour à tous, aujourd’hui je vais vous parler de Codex en Remote SSH et d’un vieux script de backup qui traînait sur mon serveur. Vous savez, le genre de script qu’on a écrit quelques années plus tôt, qui a toujours plus ou moins fait le boulot et qu’on évite de regarder de trop près tant que les sauvegardes semblent tomber quelque part…

Sauf qu’entre-temps, j’ai migré le serveur de Debian 12 vers Debian 13 (Cf. Crowdsec), quelques containers ont disparu, d’autres ont changé, et j’avais finalement très peu retouché au script de sauvegarde d’origine. Un retour aux sources après ma série sur Docker et Portainer, en quelque sorte. Il était donc temps de vérifier si ce machin sauvegardait encore réellement quelque chose.

Pour le coup, je n’ai pas commencé par ouvrir une console SSH et modifier le Bash au petit bonheur. J’ai ouvert le serveur directement dans VS Code avec l’extension Remote SSH, puis j’ai travaillé avec Codex de manière interactive sur la machine.

L’objectif n’était pas de demander à une IA : « fais-moi un script de backup ». L’objectif était de lui faire auditer l’existant, confronter ses hypothèses au vrai serveur, proposer une nouvelle version, puis … Lire la suite