L’IA et moi

Il fallait bien que j’aborde le sujet : l’intelligence artificielle. Bouh le vilain mot ou pas. Tout est une question de nuances et d’usages.

Pour la petite histoire …

Il y a trois ans, un de mes amis me montrait un grand sourire aux lèvres ChatGPT, exalté, excité, porté aux nues, par la puissance de l’outil qui pouvait écrire du code à sa place. A ce moment là j’ai pensé à tous ces étudiants qui pouvaient faire faire leurs devoirs à leur IA, sans consommer un seul neurotransmetteur. Je ne voyais pas ça d’un très bon œil. Et puis ces machines là, un jour, est-ce qu’elles ne finiront pas par nous dominer ? Scénario catastrophe. Bon, je m’y suis inscrite par curiosité. Félicitations, vous venez de vous connecter à votre premier modèle de données.

Pourtant au travail, le sujet a commencé à poindre le bout de son nez. Mon gros client est vraiment un gros client que je chéris et une des collaboratrices a eu l’extrême sollicitude de faire à l’équipe de devs dont je fais partie un exposé sur l’impact positif de l’IA sur notre travail, avec des exemples, des modèles de données, tout ce qu’il faut pour bien avancer. J’étais restée bouche bée sur ce gain de temps. Résultat, nous nous y sommes tous mis. Parce qu’il faut bien le dire : les IA sont des assistants hors pair et je ne peux plus m’en passer. Car nous vivons une énorme révolution qui est bien supérieure à la révolution industrielle.

Mon coach de vie, Franck Nicolas, lors de son dernier séminaire, a consacré une après-midi entière à nous faire part de ses pensées sur le sujet. Vous savez que le monde va tellement vite qu’en 3 ANS seulement, oui 3 ANS, nos compétences deviennent obsolètes ? Ceux qui n’ont pas encore pris le train doivent le prendre, et vite. Car l’IA progresse, qu’on soit pour ou qu’on soit contre.

Et maintenant ?

J’utilise l’IA dans ma vie de tous les jours. Pas un usage abusif car je sais que :
1) La personne doit garder son libre arbitre sans basculer dans l’asservissement, comme ces gens qui demande à leur IA comment s’habiller ou pire, qui remplacent un partenaire par un robot. Si tu en es là, tu as un souci, désolée de te le dire.
2) L’utiliser à des fins utiles. n’oubliez jamais les ressources que ces IA consomment, les fakes et autres n’ont pas leur place ici.
3) Et puis il y a ceux qui ont abusé du pouvoir de l’IA sans censure, n’est-ce pas Elon ?
J’ai envie de dire, un peu comme les réseaux sociaux. Beaucoup de mauvais usages, pour un certain pourcentage de bons usages. Je vais rester positive et parler du dernier point (donc je ne parlerai pas de drones de guerre et compagnie).

Mes IA à moi

Claude

Forcément, je commence par lui, obligée. Claude est la quintessence de la puissance du travail de codeur. A condition de comprendre ce que tu lui demandes et que tu comprennes ce qu’il te répond. Parce que Claude, non seulement, il va chatter avec toi pour parler de code, mais aussi t’aider à résoudre tes problèmes de cybersécurité en te conseillant des outils à la pointe.
Claude Code (difficile à prononcer, ne trouvez-vous pas ?) analyse ton projet pour optimiser tes factorisations, te faire pointer du doigt ce que tu as salement programmé (ça nous arrive à tous) alors que tu es pris par le temps car rendre un travail propre est quand même primordial, ou t’aider à ressortir des vieux cartons ton projet perso mis de coté depuis 2019 (oui, je me remets sur BioPHP). Il peut aussi t’aider à faire des mods de builds pour Minetest, d’après un fichier 3D si tu ne te sens pas les capacités de faire un truc énorme (comme le vaisseau spatial qu’avait dessiné mon papa).
Mieux que ça, il peut créer des designs si c’est pas ton fort, et en plus si tu télécharges Workflow, il peut réorganiser tes arborescences si comme moi t’es un bordélique virtuel. Pour l’exemple, il m’a économisé 10 heures pour classer mes mails, chose que je n’avais pas faire depuis … longtemps.

Inconvénients ? ça peut être compromettant pour ta vie privée si tu utilises Workflow ou si tu l’utilises pour le tri des mails. Oui je sais la confidentialité, mais GMail connait déjà tout de ma vie …

ChatGPT

Le plus connu du public. En vrai, je l’aime bien.
Déjà je le consulte quand je me pose des questions sur certaines personnes, pourquoi réagissent-elles comme ceci ou comme cela, dresser un portrait psychologique, pour mieux appréhender la situation, trouver des solutions ou me rassurer, parce que je suis quelqu’un qui a besoin d’analyser et de comprendre sinon je tourne en boucle. Attention, il peut être trop gentil.
Mais je trouve que c’est le top du top des illustrateurs. Il faut toutefois bien le prompter et il peut faire des erreurs, mais les caricatures que je lui demande me font bien sourire et si je dois me baser sur des gens existants d’après leur photo il se débrouille pas trop mal.
Je ne l’ai pas poussé à fond, je connais des gens qui utilisent Codex et il est vraiment bien et il sait faire du webdesign bien soigné.

Inconvénients : Cependant … si je lui demande de m’écrire un texte fictif avec des situations données, il manque franchement de subtilité et d’imagination. L’humour et le décalage des situations n’est pas encore son fort si tu lui demandes d’écrire une histoire drôle. Et pour des questions particulièrement humaines, il manque encore cruellement de … d’un semblant d’empathie ?

Suno

Je gratte un peu de guitare, connais un peu de solfège, chante comme un rayon casseroles, rien de foufou, donc ne comptez pas sur moi pour composer.
Alors je m’amuse assez occasionnellement avec Suno, qui évolue vite et qui optimise de plus en plus la qualité de ses sons. S’il y a deux ans, la qualité auditive restait passable, on a aujourd’hui du mal à différencier avec une vraie chanson.

Les inconvénients : l’horreur de l’abus. Si des gens veulent faire carrière dans la musique, c’est important de composer et de jouer avec de l’humanité. Chanter avec sa vraie voix. Imaginez que le nombre de morceaux composés par IA DEPASSE LES 50% DU CATALOGUE SPOTIFY !!! Suno doit rester récréatif pour les amateurs dont je fais partie. Pitié … il faut régler ce problème ! Même si un son électronique peut sembler sympa, comme ce que j’ai pu écouter sur Radio Chirac, mentionner toujours que c’est de l’IA. Oui l’IA peut faire des sons très agréables, mais je préfère de loin écouter des légendes comme Queen ou les Stones et m’émerveiller des octaves de Freddy Mercury.

N’oublions pas les LLM locaux

On peut aussi bricoler pas mal de choses avec les LLMs. Un chatbot, ou alors des outils de « pentest » qui va discuter entre LLM pour savoir quoi en penser. Un sujet sur lequel j’aimerais bien me pencher une fois que j’aurai fait le tour de Claude.

Mon avis sur le reste

Je n’aime pas Canva. La génération des images est très moyenne (un avion trois ailes par exemple). Possible que cette plateforme ne soit pas adaptée à mes besoins.

Je n’ai ni testé Gemini, ni Grok, ou vu très vite fait mais qui n’apportent rien de plus à mes besoins déjà satisfaits.

Cependant, pour revenir au vaisseau spatial de mon père … j’ai été bluffée par le rendu 3D de Meshy. Voici pour l’exemple :
Le dessin :

Le fichier 3D pondu :

Un peu raté pour les ailes mais bon sang … je suis restée là aussi bouche bée car je ne m’attendais pas à tel résultat.

Et je cherche encore une IA bien faite qui puisse améliorer grandement certaines photos d’urbex que j’avais faites au smartphone car je n’avais pas de matériel ce jour-là. Les suggestions sont bienvenues.

Ma conclusion

Bien en fait, je n’ai pas encore tiré de conclusion pour être honnête.
L’IA est un outil tellement puissant, qui tire vers le haut tous les jours, les modèles se multiplient, tous plus performants les uns que les autres mais il faut garder tête froide. Comprendre les limites pour les humains que nous sommes.

Comme je le disais, mon avis est tout en nuances, il y a du très bon, du gain de productivité, de créativité, et aussi du gain de temps pour des taches qui nous paraissent rébarbatives.

Tout comme il est vrai je ne peux plus m’en passer. J’aime créer et me faire aider pour concrétiser ce que j’ai envie de concevoir. Du moment que je comprends et maîtrise ce que je fais.

Mais juste … il ne faut pas se faire remplacer. Tant qu’un robot humanoïde ne viendra pas vers moi pour me mettre un coup de pied, tout va bien, à mes yeux.

J’ai arrêté de faire mes pg_dump à la main (et ma base de 77 Go me dit merci)

Rappelez-vous, il y a quelques années, j’avais parlé de la migration de la base de mon jeu AIM sur PostgreSQL. C’était une bonne idée, mais je n’avais rien automatisé au niveau des sauvegardes. Donc je faisais régulièrement mes sauvegardes à la main, je coupais le jeu et hop, un bon dump qui prenait trois heures.

Puis j’ai fait le calcul du nombre de jours de données que je perdrais si le disque lâchait maintenant. Et j’ai arrêté de trouver ça drôle. Parce que perdre 15 jours de jeu, ça peut faire pleurer.

Voilà donc le récit de comment je suis passée du pg_dump artisanal à une vraie automatisation avec pgBackRest, ce que ça m’a appris sur les enjeux réels d’une sauvegarde, et surtout ce que tout ça coûte (ou pas) aux performances du SGBD.


Le problème du dump manuel : ce n’est pas une sauvegarde, c’est un souvenir

Commençons par le mythe à démonter. Beaucoup de gens (moi la première) pensent avoir une sauvegarde parce qu’ils ont ça quelque part :

pg_dump -U postgres mabase > /backup/mabase.sql

C’est un fichier. Ce n’est pas une stratégie. Voici pourquoi.

1. Le RPO est catastrophique

Le RPO (Recovery Point Objective), c’est la quantité de données que tu acceptes de perdre. Avec un dump manuel fait « de temps en temps », ton RPO c’est : depuis la dernière fois que j’y ai pensé. Ça peut être trois semaines. Et tu ne le sauras qu’au moment où ça comptera vraiment.

2. Un dump de 77 Go, ce n’est pas un fichier, c’est un événement

Ma base de prod fait environ 77 Go. Un pg_dump là-dessus, ce n’est pas une commande qu’on lance négligemment en journée : c’est une longue lecture logique de toute la base, un CPU qui part en compression, et un fichier énorme à écrire. Je vais y revenir dans la partie perfs, mais retenez déjà ceci : plus la base grossit, moins tu as envie de lancer ta sauvegarde à la main. Et donc moins tu la lances. Le manuel se sabote tout seul.

3. Tu ne peux pas remonter à hier 14h37

Le dump est une photo. Si ta dernière photo date de dimanche et que la bêtise a eu lieu mardi à 14h37, tu reviens à dimanche. Point. Toutes les données de lundi et mardi : perdues. Alors que PostgreSQL sait faire infiniment mieux — il écrit en permanence un journal de toutes ses modifications, les WAL (Write-Ahead Logs). Si on archive ces journaux, on peut rejouer l’histoire jusqu’à la minute près. C’est le PITR (Point-In-Time Recovery). Le dump manuel jette cette possibilité à la poubelle.

4. Une sauvegarde jamais restaurée n’existe pas

C’est le point qui fait le plus mal. Un dump dans un coin, dont tu n’as jamais vérifié qu’il se restaure, c’est un pari, pas une garantie. L’automatisation force à structurer ça : un dépôt, un inventaire, une commande de vérification.


Ce que j’ai mis en place : pgBackRest + archivage des WAL

J’ai choisi pgBackRest. Pas par snobisme d’outil, mais parce qu’il fait nativement les trois choses que je voulais : sauvegarde physique, archivage WAL, et rétention automatique.

Étape 1 — Autoriser l’archivage côté PostgreSQL

Dans postgresql.conf :

wal_level = replica
archive_mode = on
archive_command = 'pgbackrest --stanza=mabase archive-push %p'
max_wal_senders = 3

Le point important ici : wal_level = replica est le minimum requis. Si vous laissez minimal, PostgreSQL refusera carrément de démarrer avec archive_mode = on. J’ai eu droit à ce joli message, un soir :

FATAL: WAL archival cannot be enabled when wal_level is "minimal"

Ça a le mérite d’être clair.

Étape 2 — Configurer la stanza

Une stanza, chez pgBackRest, c’est simplement le nom qu’on donne à un cluster sauvegardé. La mienne s’appelle mabase.

Dans /etc/pgbackrest.conf :

[global]
repo1-path=/var/lib/pgbackrest
repo1-retention-full=2
compress-type=lz4
process-max=4
 
[mabase]
pg1-path=/var/lib/postgresql/16/main

Trois choix à souligner :

  • compress-type=lz4 : nettement plus rapide que gzip pour un taux de compression très honnête. Sur 77 Go, la différence n’est pas cosmétique.
  • process-max=4 : pgBackRest parallélise. C’est un de ses gros avantages sur pg_dump, qui reste largement mono-thread sur ce type de travail.
  • repo1-retention-full=2 : je garde deux sauvegardes complètes, les vieilles s’effacent toutes seules. La rétention automatique, c’est la moitié de l’intérêt de l’automatisation. Sans elle, on remplace « oublier de sauvegarder » par « saturer le disque de sauvegardes ». J’ai vu des serveurs mourir de ça.

Étape 3 — Initialiser et vérifier

sudo -u postgres pgbackrest --stanza=mabase stanza-create
sudo -u postgres pgbackrest --stanza=mabase check

Le check est votre ami : il valide que l’archivage WAL fonctionne réellement de bout en bout. Ne sautez pas cette étape.

Étape 4 — Le cron (le cœur du sujet)

crontab -u postgres -e
0 2 * * 2 nice -n 10 pgbackrest --stanza=mabase --type=full backup

Traduction : tous les mardis à 2h du matin, sauvegarde complète, en priorité CPU basse.

Deux détails qui comptent :

  • Le cron appartient à l’utilisateur postgres, pas à root. C’est le bon niveau de privilège pour ce travail — inutile de faire tourner en root quelque chose qui n’en a pas besoin.
  • nice -n 10 : la sauvegarde s’exécute en priorité réduite. Si le serveur a autre chose à faire à 2h du matin, la sauvegarde s’efface poliment. On y revient tout de suite.

Et pour vérifier au réveil que tout s’est bien passé :

sudo -u postgres pgbackrest --stanza=mabase info

Et les performances du SGBD dans tout ça ?

C’est LA question qui m’a fait traîner des mois. « Si j’automatise, est-ce que je vais plomber ma base ? »

Réponse courte : le manuel coûte plus cher que l’automatique. Voici pourquoi.

pg_dump est une lecture logique, pgBackRest une copie physique

pg_dump ne copie pas des fichiers : il reconstruit la base en la relisant intégralement et en générant du SQL. Ça veut dire un parcours complet, du CPU en pagaille, et surtout une transaction très longue ouverte pendant toute l’opération. Or une transaction longue empêche l’autovacuum de nettoyer les lignes mortes derrière elle. Sur une base à fortes écritures, un dump interminable en pleine journée, c’est du bloat qui s’accumule et des perfs qui se dégradent — bien après la fin du dump.

pgBackRest, lui, copie les fichiers du cluster. C’est plus proche du disque, ça se parallélise, et ça n’a pas ce coût transactionnel.

Le vrai chiffre

Ma première sauvegarde complète des 77 Go, avec lz4 et nice -n 10, a pris 22 minutes. Vingt-deux minutes, à 2h du matin, en priorité basse, sans que personne ne s’en aperçoive. À comparer avec un dump équivalent lancé un mardi à 15h « parce que j’y ai pensé ».

Le coût continu de l’archivage WAL

L’archivage n’est pas gratuit : chaque segment WAL rempli déclenche un archive-push. Le coût unitaire est faible, mais il y a un piège à connaître : si l’archive_command est plus lente que le rythme de production des WAL, les segments s’accumulent dans pg_wal/ et le disque se remplit. Surveillez cet espace disque. C’est le principal effet de bord d’une config PITR, et il est silencieux jusqu’au moment où il ne l’est plus.

Un mot sur synchronous_commit

Sur des charges à écritures très fréquentes, synchronous_commit = off donne un gain net : PostgreSQL n’attend plus la confirmation d’écriture du WAL sur disque pour valider la transaction. Mais soyons précises sur ce qu’on échange : en cas de crash brutal, vous perdez les quelques dernières centaines de millisecondes de transactions validées. La base reste cohérente (ce n’est pas fsync = off, qui lui est un vrai danger en prod), mais elle n’est pas complète.

C’est un arbitrage à faire en conscience, selon la valeur de vos dernières millisecondes.


Le jour où ça plante : restaurer à mardi 14h37

Tout ce qui précède ne sert à rien si on ne sait pas s’en servir le jour J. Alors imaginons le scénario. Mardi, 14h37, quelqu’un lance un DELETE sans WHERE sur une table centrale. À 14h50, on s’en aperçoit. Objectif : remettre la base exactement dans l’état de 14h36.

0. Ne rien faire de brutal

Le premier réflexe est le plus important : on ne redémarre pas PostgreSQL, on ne bricole rien. Si la base tourne encore, on l’arrête proprement et on réfléchit. Les WAL déjà archivés sont votre matière première : ne les touchez pas.

1. Regarder ce dont on dispose

sudo -u postgres pgbackrest --stanza=mabase info

Vous obtenez la liste des sauvegardes complètes avec leurs dates de début et de fin. Le point à vérifier absolument : votre cible (mardi 14h36) doit être postérieure à la fin d’une sauvegarde complète, et tous les WAL entre cette sauvegarde et la cible doivent être présents dans l’archive. Dans mon cas, avec un full le mardi à 2h, une cible à 14h36 le même mardi est parfaitement atteignable : pgBackRest repart du backup de 2h et rejoue ~12h de WAL.

2. Arrêter PostgreSQL

sudo systemctl stop postgresql

3. Restaurer avec une cible temporelle

C’est ici que le PITR prend tout son sens :

sudo -u postgres pgbackrest \
  --stanza=mabase \
  --delta \
  --type=time \
  --target="2026-07-14 14:36:00+02" \
  --target-action=promote \
  restore

Décortiquons, parce que chaque option compte :

  • –type=time + –target : la date et l’heure exactes où l’on veut atterrir. Précisez le fuseau horaire (+02 ici) — sans lui, PostgreSQL interprète selon le timezone du serveur, et se tromper d’une heure sur un rollback, c’est ballot.
  • –delta : pgBackRest compare les fichiers existants et ne réécrit que ce qui diffère. C’est plus rapide, et surtout ça vous évite d’avoir à vider le répertoire de données à la main. Parce que oui, la méthode « officielle » sans –delta exige un data directory vide, et ça veut dire taper un rm -rf /var/lib/postgresql/16/main/* en tremblant à 15h un mardi. Utilisez –delta.
  • –target-action=promote : une fois la cible atteinte, PostgreSQL sort du mode recovery et redevient ouvert en écriture. L’alternative, –target-action=pause, arrête la relecture et attend : la base est lisible mais figée, ce qui permet de vérifier qu’on est bien au bon endroit avant de valider. Sur une restauration où j’ai un doute sur l’heure exacte, je commence par pause.

pgBackRest choisit tout seul la bonne sauvegarde complète à utiliser en fonction de la cible. Il écrit également le recovery.signal et le restore_command dans postgresql.auto.conf — inutile de les créer à la main.

4. Redémarrer et regarder la base rejouer l’histoire

sudo systemctl start postgresql
sudo journalctl -u postgresql -f

C’est le moment le plus étrange de l’opération : PostgreSQL rejoue les WAL un par un, et vous voyez défiler dans les logs les heures de votre journée à l’envers. Vous cherchez la ligne qui confirme que le point de recovery a été atteint (recovery stopping before commit of transaction…, puis database system is ready to accept connections).

Tant que le recovery tourne, la base est en lecture seule. C’est normal, laissez-la finir.

5. Vérifier avant de crier victoire

La donnée la plus récente doit dater de ~14h36. Si oui : c’est gagné, et vous venez de récupérer 12h de travail qu’un pg_dump du dimanche vous aurait fait perdre.

SELECT COUNT(*) FROM ma_table_massacree;
SELECT MAX(created_at) FROM ma_table_massacree;

Pour conclure

Voilà tout tourne en tâche de fond, et les joueurs et moi on n’a plus à s’en soucier et au lieu de se préoccuper des dumps on peut ainsi écouter Radio Chirac, un son qui déchire pas mal.

Sommeil créatif

En ce moment, il m’arrive quelque chose d’assez extraordinaire.

Je ne sais pas pourquoi, je ne sais pas comment, peut-être la multiplication d’activités ludiques et créatrices qui auraient stimulé une zone du cerveau … ou crée de nouvelles connexions.

Quand je me réveille de ma nuit ou de ma sieste sacrée de 13 heures, je me retrouve une fois sur deux avec une mélodie dans la tête. Pas une chanson que je connais, pas une chanson qui a existé. Non … une mélodie, une suite d’accords, un rythme parfaitement cohérent et non discordant que mon esprit a entièrement créée de toutes pièces !!!

Un peu de bio …

Comme vous le savez certainement, la nuit, le cerveau ne se met pas vraiment en pause. Il passe en mode “atelier”.

Pendant le sommeil paradoxal (aussi appelé phase REM), le corps est presque immobile, mais le cerveau, lui, est très actif. C’est le moment des rêves.

Et c’est aussi là que peuvent apparaître des choses étonnantes. J’ai déjà trouvé des solutions à des problématiques de programmation après une bonne nuit. Mais maintenant, s’ajoutent aussi des mélodies que j’ai l’impression d’entendre alors qu’elles n’existent pas.

En réalité, le cerveau ne “crée” pas à partir de rien. Il prend des morceaux de ce que qu’il déjà vécu : des sons entendus dans la journée, des musiques oubliées, des rythmes captés sans faire attention. Tout ça est stocké quelque part, même si on ne s’en souvient pas.

Pendant le sommeil paradoxal, il mélange tout ça un peu librement. Il assemble, teste, recolle autrement. Comme un DJ qui ferait des remix sans prévenir. Le coquinou.

Le comble

Bien, pour quelqu’un qui saurait chanter et composer, ce serait une matière de travail passionnante. Mais, je ne sais pas chanter, même en ayant pris des cours.

Heureusement nous sommes en 2026 et nous avons des outils, et j’ai le sens du rythme, quelques notions de solfège, au moins ça.

Prenons l’exemple de cette nuit, je me réveille avec un air rythmé : tata-tata-tata-tata taaaaa (musicalement on dirait croche-croche croche-croche croche-croche noire). Le refrain, lui (je rêve de bribes de mélodies) … était somme toute … répétitif, avec une montée sur chaque vers :

You give me something
You give me something
You give me something
Yeaaaaaaaah

La solution de 2026

J’en parle donc à ChatGPT (je vous ferai prochainement un article sur les IA que j’utilise, et un autre sur mon avis perso) qui me sauve, à peu près, mais en retient l’essentiel. Il me fait une grille d’accords d’après mes fredonnements approximatifs :

X:1
T:You Give Me Something (motif reconstruit)
M:4/4
L:1/8
Q:1/4=90
K:C

G G G G | G G G G | A A G E | G4 |
G G G G | G G G G | A A G E | G4 |
G G G G | G G G E | F F E D | E4 |
G G G G | G G G G | A A G E | G4 |
G G G G | G G G G | A A G E | G4 |
G G G G | G G G G | A A G E | G4 |
G G G G | G G G G | G G G G | C4 |

Il m’a transcrit ça en anglais :
– G = sol
– A = la
– E = mi
– F = fa
– D = ré

Je connais assez Suno, j’ai déjà crée des musiques et des chansons, pour m’amuser et créer du lore pour mon jeu Minerland. Jusque là, ça restait une récréation.

Je prompte donc Suno, et me voici donc avec … quelque chose qui se rapproche de ce que j’ai rêvé … sans les paroles, mais je vois à quel moment inclure les « You give me something » que j’ai imaginés … Qui sait … peut-être qu’un jour ça me servira à faire quelque chose d’intéressant …

Sur ce, faites de beaux rêves !

De la cybersécurité (I’m back. Stronger.)

Enfin j’ai trouvé un peu de temps pour réparer tout mon bourbier.

En effet, depuis 2024, quand on accédait à mes sites wordpress, vous aviez ce message d’accueil fort charmant qui mentionnait un « incident technique ». J’avais dû fermer mes trois sites wordpress …

Pas des moindres. J’avais été piratée de partout ! Mon site d’urbex par exemple redirigeait vers une boutique en ligne. Et paf la cascade, mon site vitrine, mon blog et même un temps mon wiki sur mon jeu Minerland ! Un peu comme un jeu de dominos qu’on fait tomber petit à petit … de quoi être parano.

Il aura fallu attendre 2024 pour que ça se produise, en sachant que mes premiers sites perso remontent à 2000. Depuis, je me disais, tranquille, que je n’avais pas de raisons de me méfier ni de consolider mes iptables bien comme il le faut … voire faire l’impasse sur les mises à jour. L’erreur fatale. La cybersécurité est devenue lame de plus du développeur web qui doit apprendre de ses erreurs.

Intro sur la cybersécurité

En 2026, les petits sites web sont plus que jamais en première ligne.

Les attaques les plus courantes contre les petits sites sont silencieuses, opportunistes et automatisées. Elles défigurent un site, volent des données clients, ou utilisent le serveur pour héberger des contenus illicites, le tout à l’insu du propriétaire.

La grande nouveauté de 2026, c’est l’utilisation de l’IA par les attaquants. Les agents IA autonomes deviennent des outils courants de la cybercriminalité, capables de cartographier une attaque en quelques minutes et de générer des campagnes de phishing ciblées à grande échelle. Les campagnes de phishing générées par IA sont désormais quasiment indétectables — fini les fautes d’orthographe et les formulations bancales.

Plus de 90 % des piratages de sites WordPress exploitent des failles déjà corrigées dans une mise à jour que l’administrateur n’a pas appliquée. Le message est clair : mettre à jour, sécuriser ses accès, surveiller ses logs — ce n’est plus optionnel, même pour un petit blog perso.

Acte I — La découverte

Tout a commencé par un constat simple : mes sites WordPress ne répondaient plus correctement. En fouillant, j’ai découvert l’ampleur des dégâts. Les attaquants avaient réussi à s’introduire dans mes trois sites WordPress et ils s’étaient fait plaisir.

Leur spécialité : injecter du contenu. Des pages de spam, du phishing, et le pompon — un site de commerce en ligne complet, hébergé à mes frais sur mon propre serveur. Sympa.

En analysant les bases de données, j’ai retrouvé leurs traces partout. Dans la base d’amelieonline.net, un webshell — un script PHP qui permet de prendre le contrôle d’un serveur à distance — était planqué dans le fichier functions.php du thème. Du code obfusqué en base64 qui se connectait à des serveurs distants pour exécuter des commandes. Le plugin de sécurité All-In-One Security l’avait détecté et mis en quarantaine, mais le mal était fait.

Dans les fichiers du serveur, les bots avaient déposé des scripts PHP aux noms discrets : x.php, ha.php, gg.php… Des portes dérobées qui leur permettaient de revenir à volonté, même après un changement de mot de passe.

Acte II — Comment ils sont rentrés

La réponse est aussi simple que gênante : mon mot de passe wordpress était devenu trop faible. Ou alors ils se sont fait une joie de l’absence de certificat ssl …

Les bots qui parcourent internet 24h/24 testent des millions de combinaisons sur /wp-login.php et xmlrpc.php (une porte d’entrée WordPress souvent oubliée). Avec un mot de passe simple, il leur faut parfois quelques heures pour entrer.

Mais ce n’est pas tout. Mon serveur cumulait les facteurs aggravants. Ubuntu 18.04 en fin de vie depuis avril 2023, donc plus aucun correctif de sécurité. PHP 7.x, qui n’est plus maintenu depuis fin 2022. Pas de HTTPS — ce qui signifie que chaque fois que je me connectais à l’admin WordPress, mon identifiant et mon mot de passe transitaient en clair sur le réseau. Dans un café, à la gare, à l’hôtel, n’importe qui sur le même Wi-Fi pouvait les intercepter avec un simple outil comme Wireshark.

Et mon certificat SSL ? Expiré depuis des mois. J’avais payé cher pour un certificat classique, il avait expiré, et je n’avais jamais pris le temps de le renouveler. J’étais persuadée qu’il fallait racheter un certificat pour chaque nom de domaine. Trois domaines, trois certificats, une facture qui pique. En fait, non — mais j’y reviendrai.

Acte III — Le grand nettoyage

Le ménage a été méthodique. D’abord, les bases de données : analyser chaque dump SQL à la recherche de contenu injecté — du spam en chinois, en japonais, en cyrillique, des liens vers des boutiques frauduleuses, des webshells en quarantaine. Chaque site a été passé au peigne fin, table par table, grâce à l’aide de mon ami Claude, devenu mon nouveau formateur/secrétaire/IA couteau suisse.

Ensuite, les fichiers du serveur : traquer les scripts PHP malveillants dans les répertoires d’uploads (il ne devrait jamais y avoir de fichier PHP dans wp-content/uploads/), vérifier chaque thème, chaque plugin, identifier les fichiers modifiés récemment.

Et puis la grosse opération : migrer le serveur d’Ubuntu 18.04 vers une version maintenue. Trois sauts successifs — 18.04 vers 20.04, puis 22.04 — chacun avec son lot de surprises. PHP 7 vers PHP 8 a cassé plusieurs choses : des fonctions dépréciées, des syntaxes devenues invalides, des conflits de configuration entre l’ancien PHP-FPM et le nouveau module. À chaque étape, un site qui tombe, un diagnostic, une correction, on repart.

Acte IV — L’horreur des logs

C’est une fois le serveur remis d’aplomb que j’ai vraiment mesuré l’ampleur du problème. En regardant les logs d’authentification SSH :

Failed password for root from 179.111.150.107
Failed password for invalid user adurbex from 172.188.89.41
Failed password for invalid user amelayesbiophp from 59.51.98.254
Failed password for invalid user urbexmarseille from 187.191.48.4
Failed password for invalid user tonwebautableau from 121.78.158.30

Des dizaines de tentatives par heure. Et le plus flippant : les bots n’essayaient pas que des noms génériques comme « admin » ou « root ». Ils testaient adurbex, urbexmarseille, amelayesbiophp etc … — des identifiants dérivés de mes noms de domaines, de mon pseudo, de mes projets.

Quelqu’un — ou plutôt quelque chose — avait scanné mes sites, relevé tous les indices disponibles. Les noms d’auteur WordPress sont exposés par défaut via /?author=1 ou l’API REST (/wp-json/wp/v2/users). Les pages « à propos », les footers, les noms de domaine eux-mêmes : tout est découpé, recombiné, et testé automatiquement.

Les logs Apache racontaient la même histoire côté web : des scans massifs de wlwmanifest.xml (un fichier WordPress utilisé pour détecter les installations), des rafales de requêtes cherchant des webshells PHP à des noms comme x.php, ha.php, gg.php… Un bot a généré des dizaines de 404 en quelques millisecondes, balayant méthodiquement tous les noms de fichiers suspects.

En analysant les adresses IP, un inventaire géographique impressionnant : Brésil, Bulgarie, Chine, Corée du Sud, Russie, Vietnam, Pays-Bas, Ukraine, Singapour, Afrique du Sud… La plupart provenaient de datacenters ou de services cloud comme Microsoft Azure ou Alibaba Cloud. Et l’ironie : l’une des IP attaquantes appartenait à un serveur Kimsufi OVH — un serveur dédié comme le mien, probablement compromis et utilisé comme relais.

Ce ne sont pas de vrais humains derrière un écran. Ce sont des botnets — des réseaux de milliers de machines compromises qui scannent automatiquement toutes les IP du monde, 24 heures sur 24.

Acte V — Pourquoi mon petit serveur ?

C’est la question que je me suis posée. Mes sites ne contiennent rien de sensible. Mais ce n’est pas mes données qui intéressent les attaquants. C’est mon serveur lui-même : sa bande passante pour lancer des attaques vers d’autres cibles ou participer à des attaques DDoS, son processeur pour miner de la cryptomonnaie, son adresse IP pour héberger du phishing ou envoyer des millions de spams, et le fait qu’il tourne 24h/24 en faisant office d’outil gratuit.

Un serveur dédié compromis devient un soldat anonyme dans une armée de machines zombies. Et quand quelqu’un remonte la piste d’une attaque, c’est sur mon Kimsufi qu’il tombe — pas sur le vrai attaquant.

Acte VI — La fortification

La reconstruction s’est faite couche par couche.

Fail2ban, valeur sûre. J’avais fail2ban d’installé, mais sa configuration par défaut était une passoire : 10 minutes de bannissement après 5 échecs. Les bots attendaient tranquillement et revenaient. 4681 tentatives échouées au compteur, 491 IP bannies au total, mais zéro bannie à l’instant T. J’ai durci la config : 3 échecs en une heure, et c’est 24 heures de ban.

Mais le SSH n’était pas le seul front. J’ai ajouté des jails fail2ban pour chaque type d’attaque : les scans WordPress (wlwmanifest), les floods de 404 génériques, les tentatives de brute force sur DokuWiki, les scans de fichiers sensibles. Six jails au total, chacune avec ses propres seuils. Le port 22 quant à lui, exit !

Iptables pour les récidivistes. Pour les IP les plus agressives — celles avec 60, 80, 90 tentatives au compteur — j’ai écrit un script qui les bloque définitivement dans iptables. Ces adresses ne peuvent plus du tout communiquer avec mon serveur, sur aucun port, par aucun protocole.

CrowdSec, la défense collaborative. En plus de fail2ban, j’ai installé CrowdSec — un outil communautaire où les serveurs partagent les IP malveillantes. Quand une IP attaque un serveur du réseau, elle est signalée et bloquée sur tous les autres.

HTTPS avec Let’s Encrypt. Fini les certificats payants. Certbot et Let’s Encrypt m’ont permis de sécuriser mes trois domaines en une seule commande, gratuitement, avec renouvellement automatique tous les 90 jours. Plus jamais de certificat expiré oublié dans un coin. Un timer systemd vérifie deux fois par jour si un renouvellement est nécessaire.

Le blocage de xmlrpc.php. Ce fichier WordPress est un vecteur classique de brute force. Bloqué.

Les permissions qui vont bien. 644 pour les fichiers, 755 pour wp-content.

La mise à jour de tout. Ubuntu à jour, PHP à jour, WordPress core à jour, plugins à jour, thèmes à jour. Chaque composant obsolète est une porte ouverte.

Ce que j’ai appris

Cette aventure m’a enseigné des leçons que j’aurais aimé connaître plus tôt.

Un mot de passe faible est une porte ouverte. C’est banal à dire, mais c’est la cause numéro un des compromissions WordPress. Aujourd’hui, 20 caractères minimum, générés aléatoirement, et uniques pour chaque site.

Le HTTPS n’est pas optionnel. Même pour un blog perso, chaque page de connexion sans HTTPS est une invitation au vol d’identifiants. Et avec Let’s Encrypt, il n’y a plus aucune excuse financière.

La sécurité par défaut n’existe pas. Fail2ban installé avec sa config d’usine, c’est presque comme s’il n’était pas là. Il faut prendre le temps de configurer chaque outil correctement.

Tout serveur exposé sur internet est une cible. Ce n’est pas une question de « si », mais de « quand ». Les bots ne dorment jamais, et ils sont plus malins qu’on ne le croit — ils analysent vos sites pour en extraire des identifiants potentiels. Les premières tentatives de brute force arrivent dans les minutes qui suivent la mise en ligne d’un serveur.

Un système non maintenu est un système compromis. Ubuntu 18.04 en fin de vie + PHP 7 abandonné = zéro correctif de sécurité depuis des mois. Autant laisser la porte grande ouverte.

Vérifiez vos logs régulièrement. Sans cette habitude, je n’aurais jamais su que mon serveur subissait des milliers de tentatives d’intrusion quotidiennes.

Rien ne dure.

Ces mots martèlent sans arrêt mon crâne, rien ne dure, personne n’est irremplaçable. Mon meilleur ami en est l’auteur original, voulant nous rassurer que la vie en était ainsi, tourmentée de rivières agitées, et que ces eaux se renouvellent sans arrêt.

Un samedi comme un autre, ma mère et ma sœur sont chez moi, nous savourons l’instant présent autour d’un apéritif, étais-je loin de me douter que la Grande Horloge tournait ? Elle tourne, tourne inlassablement, parfois d’une lenteur accablante, parfois d’une rapidité déconcertante. Et à ce moment, là, je n’entendais pas ce tic-tac effroyable. Un tic-tac qui allait bientôt s’arrêter pour quelqu’un.

Ces dernières années, j’ai vu beaucoup de gens partir, des horloges arrêtées, des amis, de la famille, des connaissances, beaucoup trop de départs qui vous mettent au pied du mur.

Rien ne dure.

Nous naissons, nous grandissons, nous évoluons, nous réussissons, nous échouons, nous vieillissons, nous mûrissons, nous expérimentons ce grand manège qu’est la Vie. Nous la chérissons, cette vie, parfois nous la maudissons. Nous nous exerçons à la chasse au Temps, ne voulant pas écouter les aiguilles qui parfois sont trop bruyantes ou trop silencieuses.

Parfois, nous profitons de l’Instant Présent, nous plaisantons, sommes dans la douceur d’un moment joyeux, et puis, d’une seconde à l’autre tout change. Une pause dans ma bulle, un SMS, la violence d’un message qui vous gifle comme jamais, et vous laisse KO, en état de choc. Appuyée contre le mur, les jambes coupées, assise par terre, appelant la clinique. Le cerveau ne répondant plus, le choc coupant les connexions du cerveau limbique.

Mon père venait de décéder.

Un état de non-retour, un état inaliénable, intransigeant, irrévocable. Le temps détruit tout. Rien ne sera plus comme avant. Pourtant, connaissant son âge, je commençais à me préparer à l’inéluctable. Mais en vérité, nous ne sommes jamais prêts.

Rien ne dure. Mais certaines personnes sont irremplaçables. Un parent, on en a qu’un dans la Vie. Parfois, en tant qu’enfant, on le chérit, on le maudit, on aurait volontiers échangé des places, je ne vais pas approfondir cette partie personnelle, le reste nous appartient à lui et moi. Mais on n’a qu’un père, tel qu’il est.

On se retrouve dans un torrent d’émotions, un cheminement du Deuil, ce Styx à traverser, et que je connaissais déjà … le choc, le déni, la colère, la dépression, l’acceptation, tout cela décuplé, le tout parsemé d’une lourde procédure administrative qu’on voudrait aussi courte que possible. On voudrait que tout soit une farce, une mauvaise blague de sa part. Mais non, il était bien parti, emportant avec lui une partie de moi.

On repasse en arrière le film de sa vie, on regarde des photos, des petits films où il était si vivant, un grand sourire aux lèvres. Quand je suis dans sa maison, je m’attends à le voir surgir, ravi « je t’ai préparé une daube ma puce, tu vas te ré-ga-ler !!! ».

On ne profite jamais assez de ces instants, pourtant si banals à priori … le regarder préparer de savoureux repas pour mieux les partager, regarder un film en sa compagnie car il adorait le cinéma, se promener au bord du lac … Il me disait « La vie est un beau film qui se termine mal. ». Il était nerveux de nature, mais si dénué d’anxiété, voyant les choses telles qu’elle étaient mais pas pire, et comme j’ai pu lui envier cette qualité de vivre la vie sans craindre le lendemain, faire des scénarios alambiqués qui font monter le rythme cardiaque et parsemer les nuits d’yeux grands ouverts. A la fin, nous sommes tous logés à la même enseigne, un aller sans retour, ticket simple.

On part, dénué de tout bien matériel, de tout argent, emportant avec soi ses actes, ses pensées, ses missions de vie. On ne laisse que le souvenir de sa présence, en bas, chez les vivants, qui se questionnent. Quand viendra « mon tour » ? Et que se passera-t-il quand la Faucheuse m’aura envoyée en voyage forcé ? Qu’emporterai-je ? Que laisserai-je ?

Je voudrais que l’Univers / Dieu / whatever m’aide à trouver ce Chemin de Vie qui pourra me permettre de donner le meilleur de moi-même, me dire, oui la vie est un beau film qui se terminera mal pour ceux et celles qui m’auront aimée. Je voudrais continuer à frissonner en urbex, donner du positif aux gens, que la vie me donne ce dont j’ai besoin mais pas plus, me retrouver prête à enfin rencontrer l’Amour qui me correspond, voyager, découvrir, expérimenter. Devenir sage et spirituelle, une bonne personne qui toutefois sait dire ses limites, relativiser, prendre du recul. Réaliser par exemple que remplir sa déclaration d’impôts ne vaut pas quinze nuits blanches.

Juste de quoi me dire, à ma dernière seconde « c’était quand même un bon film ».

Nous sommes dans une Société qui veut que nous ayons peur de la Mort, quitte à bannir ce mot des réseaux sociaux …
Nous voulons tant la chasser, provocant des hystéries collectives, des folies générales et protections fallacieuses : « Nous sommes en guerre !!! La Mort tue !!! ».
Parce qu’Elle est là, et fait partie de la Vie. Elle viendra quand même un jour arrêter votre Montre, non pas votre dernière « Smartwatch » qui finira à la poubelle dans 5 ans ou sera dérobée par un individu sans scrupule, mais celle qui vous accompagne depuis toujours, la Votre, qu’on ne pourra jamais voler.

Rien ne dure.

J’ai testé pour vous : l’Italie !!!

Depuis le temps que l’idée me trottait dans la tête, d’autant plus que le pays regorge de magnifiques spots urbex … j’ai fini par me laisser tenter. Laissez-vous guider dans ce premier trip qui ne sera pas le dernier. L’Italie ça se savoure plus d’une semaine. D’ailleurs à propos de savourer …

La gastronomie : OUI, OUI et OUI !

La gourmande que je suis sait qu’elle va dans un pays dont la réputation n’est plus à faire. Je me suis fait une raison au Royaume-Uni (on n’y va pas pour ça, certainement pas, quoique le saumon d’Ecosse est à si bas prix que c’est un crime de s’en priver). J’ai été intriguée positivement par l’Allemagne, déçue par la Tchéquie qui vous concocte des plats trop bourratifs. Mais là on est en Italie. Les pâtes, la pizza sont des valeurs sûres. Les gelati, rien de mieux pour satisfaire un petit creux. Pour les amateurs de vins, le Chianti et le Prosecco sauront amadouer vos papilles. Mais vous découvrirez aussi les caloni, les suppi et autres arancini … Même en détestant le fromage, je n’ai pas hésité à ajouter du parmesan sur mes macaroni !!! Mama miaaaaaa !

Le lèche-vitrines en Italie, où tu as vraiment envie de lécher la vitrine !

Milan : NON, NON et NON.

Milan, c’est la grosse métropole bien corsée, pire que Paris. Nid à touristes bien condensés, c’est compliqué. Les cars de visite sont même les plus désorganisés que je n’ai jamais vus.
Les autochtones y sont revêches, peu avenants, pas souriants.
Les restaurants vous font payer une fortune, et y ajoutent volontiers par-ci par là des taxes venues d’on ne sait où.
Visiter la cathédrale « El Duomo » est un parcours du combattant et on n’est pas mécontent de quitter la ville. Qui a du potentiel, une beauté sûre, mais tout cela est gâché par une agitation permanente. La seule raison pour laquelle j’ai voulu y aller, était pour l’urbex. Vous y trouverez des spots de choix. Mais n’y passez pas votre vie.
Veni, vidi, vici … Arrivederci Milano.

ça grouille, impossible de faire une belle photo.

Rome : Un autre univers …

Ma maman me dit toujours qu’à ses yeux Rome est la plus belle ville du monde, et en parle avec les yeux qui brillent. J’allais tester ça !

Un peu frileuse en embarquant dans le train, pour le coup, je ne voulais pas être déçue. Mais c’est une toute autre atmosphère qui vous attend. Arrivée à Rome, je me promène un peu dans la gare, et ses stands gastronomiques qui n’hésitent pas à vous faire goûter leurs produits. Vous avez déjà un avant-gout de ce qui vous attend : vous allez vous ré-ga-ler !

Rome a beaucoup moins ce côté métropole, et pour cause, le centre-ville est parsemé par-ci par là de ruines historiques qui lui donne ce charme tellement typique de la Dolce Vita.

Déjà, les habitants sont beaucoup plus chaleureux. Vraiment, promenez-vous, voire perdez-vous, dans les petites ruelles où les maisons sont orangées, ça sent bon les fleurs et les bons petits plats. Et regardez les gens, ils se voient, ils crient leur amitié et se serrent dans les bras ! On est obligé de visiter avec le sourire, tout est prétexte à la bonne humeur, à l’émerveillement (à part le métro).

Rien à dire, c’est beau. Majestueux. Bellissimo.

N’hésitez pas à vous promener dans le Vieux Rome de nuit, côté Colisée / Forum, c’est tellement magnifique que j’en ai eu les larmes aux yeux, vraiment, j’ai pleuré d’émotion. C’est doux, c’est beau, on s’y sent en sécurité, même en étant une femme seule. C’est la Dolce Vita à l’état pur !

Niveau gastronomie, on retrouve des prix raisonnables. Les restaurants sont bons marché. La pizza est surprenante quand on la compare à celles de chez nous. Elles sont toutes fines, simples, sans chichis, de la tomate, un accompagnement, du fromage, et basta ! Mais molto bene

Buon appetito !!! (Pizza aux pepperoni)

Certains restaurants optent pour l’originalité dans leur design :

Bien entendu, on ne peut visiter Rome sans faire un tour à la Cité du Vatican et au Colisée, ainsi que le Forum, et je ne peux vous recommander que d’utiliser des billets coupe-file car il y a vraiment du monde. Et optez pour des visites guidées pour compléter vos notions d’Histoire. Et y aller tôt le matin, c’est mieux ! Message aux ochlophobes (dont je fais partie) : la Chapelle Sixtine est somptueuse mais oppressante de par la foule, les consignes y sont strictes qui plus est, préparez-vous à dompter votre stress.

Il y a des quartiers où il convient de ne pas circuler après 11 heures, comme du côté du Panthéon, rabattez-vous plutôt dans un des nombreux parcs, qui sont d’une beauté phénoménale (allez jeter un œil au jardin botanique, surtout l’été). Car Rome est immense, vous allez marcher, marcher, pendant des heures, ce qui va vous aider à éliminer les calories de vos pizzas et de vos macaroni al ragu, ce qui tombe bien, car vous n’aurez pas de surprise sur la balance à votre retour (véridique).

Une surprise m’a attendue à la fin du séjour : un trolleybus en gare de Roma Termini.

Mon avis global

Milan, non, vous l’avez compris. Mais Rome m’a enchantée. Il y a tellement de choses à y voir que j’ai manqué beaucoup d’endroits. J’ai eu un pincement au cœur en quittant la ville, mais j’y reviendrai lors d’un prochain trip, qui inclura surement Florence et Venise.
J’ai été tellement conquise que je me suis lancée dans une reproduction du Colisée dans mon serveur Minetest …

Je déclare la guerre aux « lol » !!!

Il fut un temps où je fréquentais les sites de rencontres, cultivant à l’époque l’espoir d’y rencontrer une princesse de contes de fées.

Dans ce contexte, je faisais vite le tri … lire des fautes à chaque mot, désolée je ne peux plus. J’ai déjà eu des histoires avec des gens qui n’étaient pas doués en orthographe, mais j’ai vite fait la corrélation. Ce n’est pas une question d’ouverture d’esprit, car l’ouverture je la faisais, me disant que l’autre avait certainement des qualités qui pouvaient me plaire, mais ces personnes n’étaient pas faites pour moi : impossible de parler de culture, des choses qui me passionnaient, de faire des débats … blocage complet. Les « cc sa va ? » … impossible également.

Bien sûr, il y a des gens qui peuvent être atteints de dyslexie », et autres « dys-« , mais si on va par là, 70% des gens avec qui je communiquais étaient donc atteints d’un trouble ? Je ne suis pas d’accord.

Il faut que je vous avoue quelque chose : je suis phobique des fautes d’orthographe, oui je suis une « pédante grammaticale » assumée, et voir des « er » à la place des « é » ou des « ez » à la place des « er », je ne comprends pas ce qu’il se passe dans cette logique. Et quand je ne comprends pas, ça m’énerve. Pourtant des fautes, j’en fais, et je me suis rendue compte de mes limites lors de mes actuelles révisions pour le « Certificat Voltaire » que je prépare. Ou alors je fourre par-ci par-là quelques fautes d’inattention. Mais les grosses fautes, les crimes contre la langue de Molière comme les « enfaite » me font hurler de douleur, littéralement. Il faut avouer que c’est comme ça, et que je ne peux pas changer cette phobie, tout comme ma misophonie.

Pour citer une anecdote personnelle, il y a un bon paquet d’années de ça, j’avais eu un coup de foudre, un gros. Un jour, après en avoir marre de me poser des questions, je lui ai proposé un verre, qu’elle a décliné, mais le lendemain elle m’a envoyé un mail plus explicatif pour me faire comprendre que ce ne serait pas possible entre nous. Bon, ça arrive, un « non » ce n’est ni le premier ni le dernier, parce que c’est la vie et il faut l’accepter, et ça m’a permis de sortir de ma zone de confort (et de plus tard, entendre des « oui » de la part d’autres personnes). Mais ce qui m’a fait complètement changer d’avis sur cette personne était le contenu même de ce mail, écrit en langage SMS. La personne concernée n’avait plus 20 ans.

Langage SMS ? Mais NEXT, miss, sans regret !!!

Mais un mot me fait encore plus hurler, lors d’une conversation épistolaire.

LOL.

Parce qu’il n’y a rien derrière. On peut jeter un lol, par une phrase qui fait rire, mais parler d’un sujet sérieux, et lire en réponse un « lol » me laisse perplexe, lorsque un processus de « prise de connaissance en vue d’une relation » est entamée.

Lol, oui mais que veux-tu dire par là ? Que veux-tu exprimer ? (Parce que ce mot-là, aujourd’hui veut tout et rien dire, un peu comme un vieux livre qu’on cale sous un meuble, ça meuble une conversation, mais c’est plus de l’Ikea bon marché qu’un fauteuil Louis XIV).

Un exemple : je courtisais sur un site une demoiselle qui avait l’air d’être interessante, il y a quelques années. Nous avons échangé nos numéros, et un soir, alors que je lui partageais ma lecture du moment, j’ai eu une réponse qui là aussi, m’a faite vriller : « lolilollll mdrmdrmdr ».

Mon livre était : « Le pouvoir du moment présent » d’Eckart Tolle.
Donc rien de comique là-dedans.

Perplexe par la teneur de son propos, je lui demande plus d’explications, elle m’a juste répondu que pour elle « c’était pipo ». Okay, donc NEXT, pour le « trolol » et également, parce qu’elle ne partageait pas les mêmes valeurs en termes de spiritualité.

Un autre exemple … cette fois-ci j’étais en « relation sérieuse » avec une femme. Avec le temps, je me demandais vraiment ce que j’avais plus lui trouver, j’aimais discuter de choses intellectuelles, elle préférait les potins, parler des défauts et de la vie des autres, et lire « Closer ». Je n’ai rien contre ces gens-là, mais ce n’est pas mon truc ! Je pense que je l’idéalisais complètement. Je lui envoie un jour un SMS assez alarmant pour lui dire que je craignais qu’une de mes amies se soit enrôlée dans une secte. Là encore, rien de drôle, c’est plutôt grave (et heureusement mes craintes ne sont restées qu’au stade de peur, tout va bien pour elle). Et j’ai eu comme réponse « lol ».

J’imaginais la crédibilité de ses messages écrits, de l’image qu’elle pouvait renvoyer, de la mienne par la même occasion, puisque nous étions ensemble.

Quand j’écris, j’ai besoin de propos riches, j’ai besoin d’en savoir plus sur la personne que j’ai de l’autre côté de l’écran. Et le « lol » a le même effet que « cc sa va », un minimum d’éloquence, que diable, notre langue est riche (quoi que, pas autant que l’Allemand, mais c’est une autre histoire), et derrière se cachent des trésors (ne serait-ce que recevoir de belles lettres d’amour non copiées-collées d’un site … ) !

Et puis surtout : si tu dis LOL, le Bon Dieu il tue des petits chatons mignons. A moins que tu n’aimes pas les chats, un autre motif pour te nexter.

Mes débuts dans le web : j’étais une vraie gamine !

Message préventif

Si vous êtes victime de harcèlement ou de dénigrement sur Internet, parlez-en aux adultes. Si vous êtes un adulte responsable qui entendez de la détresse, appliquez les mesures qui s’imposent pour tempérer les situations, de grâce. Le problème est de nos jours TROP GRAVE.

L’histoire : J’ai crée un site par haine

On a parfois du mal à vouloir s’imposer quand on est jeune, chercher par tous les moyens de satisfaire ses besoins primaires. Grâce au développement personnel, j’ai compris que le besoin de reconnaissance faisait partie de mon identité. Et c’était encore plus le cas sur les bancs de fac.

Remontons le temps. On est en 2000, j’arrive en première année de BTS Assistant de Direction (oui … je me suis suis dit allons là, on verra bien). Mon site amelieonline.net vient tout fraichement de sortir, souvent agrémenté de mises à jour plus ou moins ratées. Mais je venais de découvrir une passion (qui allait devenir vocation), et le soir, à peine rentrée dans mon studio, je me jette sur mon PC pour faire du développement, faire des sites annexes, bref, je m’amuse à découvrir HTML au lieu de faire mes devoirs. Mon cadeau de mes 18 ans, c’était un livre sur Dreamweaver (l’IDE le plus en vogue de l’époque) et sa licence. Oui, donc au moment des faits, j’ai 18-19 ans.

Je suis comme une folle. Je crée des tutoriels pour ma classe, et espère que le site aurait son petit succès. Je ne manque pas, lors de la présentation officielle devant ma classe, face à ma prof principale de parler de mon site. Je reçois des messages sur mon livre d’or, des bonjours, de ma prof et de mes camarades. Mais le site n’est pas trop visité, j’ai du mal à trouver mon style, à la fois sérieux et trop second degré. En même temps, mes camarades ne sont pas « geeks » dans l’âme, pendant que moi, je navigue dans le « Deuxième monde » de Canal+, ancêtre du « métaverse ».

L’affaire de la photo à scandale

Du coup, je balise, et profite du projet « journal des promos AD du lycée » dont j’ai la charge pour écrire un article et faire la pub, venez sur mon site il est cool. Mais il y a un hiatus.

Quelques jours avant la distribution du canard, en fin de page de mon site, je publie une photo accompagnée d’un commentaire, destinée à une personne (hors du lycée et sans la nommer) qui m’avait profondément blessée. Le site ressemblait donc à ça (désolée je n’ai plus d’archive de cette version, la seule trace c’est cette demi-page imprimée toute pixelisée) … j’ai flouté volontairement l’image en question, qui était récupérée sur le web et qui m’avait amusée.

C’était quand même, avec le recul, vraiment osé, je n’aurais jamais dû faire ça, d’autant plus qu’on a du mal à faire le lien entre l’annonce de l’histoire de la « personne dangereuse » et la photo qui l’accompagne. On peut vraiment croire que je me moque de mes lecteurs, que je cherche à les provoquer. Mais on peut se montrer bête quand on a 18 ans.

Et un soir, en rentrant, je reçois un mail de la part des deuxième année, qui me fait part de leur indignation, agrémenté d’un bon « t’as rien compris à la vie et certainement rien au c… ». Je me sens en colère car c’était plus caricatural et vindicatif que pornographique, mais je consens à enlever la photo fissa. Mais le mal était fait. Le week-end arrive, je suis chez maman et … coup de fil.

AIE. Ma prof principale. Donc je lui explique ma version des faits, elle se montre douce et compréhensive, mais qualifie mon acte de « potache » (ce qui en soit est vrai). Ma maman, témoin de la conversation, me donne une bonne engueulade aussitôt raccroché. Le lundi, tout le monde me tombe dessus, camarades et profs : « Vous imaginez demain si ça tombe en conseil de classe ? A l’annonce de votre nom? devant le directeur de l’établissement ? ». Mon moi de l’époque a ressenti pendant longtemps un gros sentiment d’injustice : « Comment, je mets des tutos, des choses utiles sur ce site, et tout ce qu’on retient, c’est cette stupide photo ??? M… alors, allez tous vous faire f…. !!! ». Oui, au lieu de remettre en question mon contenu, je remettais la faute sur les autres, facile.

L’affaire Loft Story

Quelques mois plus tard, nous sommes en 2001 et le Loft apparait. Je demeure toujours une geek asociale et aigrie, même si je fréquente assidument une bande de copines du lycée où j’ai passé le bac, et je communique sur IRC. Mais je n’apprécie pas les filles de ma promo. A l’époque je les jugeais superficielles, et elles me trouvaient trop bizarre (HPI es-tu là ?). D’autant plus que je traversais une période compliquée, je me posais des questions sur mes orientations amoureuses, bref je n’étais pas bien dans mes pompes.

Je progresse dans mes apprentissages du web, je crée une plate-forme accessible par login et mot de passe pour ma promo pour qu’elles aient du contenu un peu fun. Sauf qu’il y a eu un contenu pas du tout fun … sauf pour moi. Je crée pendant l’été un site annexe sur cette plate-forme, parodie du site du Loft, où je mets en scène les filles que j’apprécie le moins. Avec les mêmes graphismes, les mêmes codes de couleur que le site original, je m’amuse de ouf, paf, dans leur tête. Mais je n’en parle pas trop autour de moi, laisse les gens qui veulent bien le découvrir. Je pensais fermer ce site tôt ou tard, parce que certains propos allaient loin. Puis je méconnaissais le droit : même en accès « privé », le droit à l’image s’applique. J’allais même plus loin : mon prof de français, qui avait alors humilié le projet du journal devant la classe, prenait le rôle de Castaldi !

Puis vint le drame, en plein cours d’anglais, alors que je provoquais quelques voisines au lieu d’écouter la leçon, la déléguée souffle à ses voisines l’existence du site parodique. Là je vois les menaces directes des principales concernées. Ce que j’ai fait ? J’ai pris la fuite en plein cours, face à une prof désemparée, et file fissa à mon studio pour effacer toute preuve d’existence ce cette catastrophe qui se préparait. Et j’ai fait la morte pendant plusieurs jours, prétextant être malade auprès de la vie scolaire.

Bien sûr, à mon retour j’ai eu des comptes à rendre. Sincèrement, j’ai regretté ce site. Car entre-temps, nous vivions toutes la catastrophe AZF et ça nous avait rapprochées, et je m’étais montrée assagie dans ma virulence et mes jugements. Ce coup-ci, ma maman n’a eu aucun vent de cette affaire, il vaut mieux, pour elle et pour moi, car elle aurait vraiment été déçue.

Heureusement il y a eu ma prof principale qui a été là, car je suis allée direct lui confesser mes actes, et dans son attitude un peu maternelle envers moi, m’a alors défendue (même si elle ne cautionnait pas du tout mon « œuvre », normal), elle m’a conseillé de travailler sur mon besoin de vengeance, et a tempéré le conflit qui aurait pu aller loin. Beaucoup plus loin. Je l’en remercie encore et passe un bonjour à elle en passant. Nous sommes toujours en contact, des décennies après. Une femme adorable qui a su prendre le temps de m’écouter quand j’en avais besoin.

Pourquoi j’ai fait ça ?

Parce que j’étais une adolescente qui manquait de confiance et d’estime d’elle-même, en mal de reconnaissance et qui ressentait beaucoup d’injustice. Ancienne victime de harcèlement moral au collège et au lycée, je voulais absolument qu’on aime ce que je faisais, qu’on admire mon travail, quitte à basculer dans la provocation. Je subissais en parallèle du cyber-harcèlement sur IRC, des gens qui n’hésitaient pas, par simple gratuité de m’insulter, ce qui m’avait rendue à l’époque aigrie et très anxieuse. Je ne m’en sers pas d’excuse, j’avais tort sur toute la ligne. Mais la haine est un cercle vicieux, quand on est jeune, on a la haine quand on reçoit de la haine.

Le message final de mon moi actuel

Ce post se voulait au départ être une confession, confession de mes bêtises, de mon tempérament, du mal que j’ai pu faire.

De dire aussi que j’ai appris de mes erreurs. Et que la leçon à retenir c’est que tout créateur est responsable de son contenu, et qu’à ce jour, j’y suis très sensible.

Mais au fur et à mesure de l’écriture de ces lignes, j’ai beaucoup réfléchi sur cette histoire et l’actualité. Il y a autre chose à dire.

Aujourd’hui les temps ont changé, et le partage d’infos est plus facile. Il y a vingt ans, transmettre de l’info sur internet devait demander du travail. Il n’y avait pas les réseaux sociaux.

Et c’est ça qui est terrible, car ils sont vecteurs aggravants du harcèlement scolaire. Les jeunes qui ont recours à ces pratiques sont mal dans leur peau et ne se rendent pas compte qu’ils peuvent briser des vies ce faisant. Communiquer derrière un écran est facile, trop facile. Aujourd’hui des jeunes se suicident pour une page en trop, une phrase de trop. Ils n’ont plus de répit, aussitôt sortis du collège/lycée, ça continue sur leur téléphone !

Faites attention aux informations que vous véhiculez, elles peuvent causer beaucoup de mal.

J’ai visité pour vous : Prague !

Enfin ! Merci mon amie la pandémie pour m’avoir permis d’attendre ce voyage pendant deux ans et demi … Oui, j’ai bien attendu pour enfin mettre les pieds dans cette ville. J’imagine que vous souhaitez avoir mon avis, je le donne direct : mi-figue, mi-raisin.

Le voyage : je HAIS Air-France

  • A l’aller, j’ai dû attendre deux heures pour aller à Paris-CDG, bien entendu, il a fallu reporter mon deuxième vol, qui a eu lui aussi du retard. J’ai attendu en tout 6 heures à CDG, je n’en pouvais plus. A lieu d’arriver à 17h15 à Prague, j’ai du arriver à 23h, et donc renoncer à certaines choses que j’avais prévu, pas cool.
  • A retour, un retard de 30 minutes à CDG, suivi d’un embarquement qui n’en finissait pas.

Le peuple de Prague : ça coince !

Avant de partir, j’ai fureté sur les sites et vidéos qui pouvaient m’informer sur les us et coutumes tchèques, je peux vous citer deux sources plutôt intéressantes :

  • Prague secrète, conseils et astuces.
  • The honest guide, qui fait part des lieux intéressants, permet d’éviter les pièges à touristes, et donne des astuces pour éviter de croiser les scammers. Il y décrit son expérience dans la ville avec un grand sourire et une avenance qui donne vraiment envie !

Histoire de me comporter en touriste respectueuse, et pouvoir profiter pleinement de mon séjour. Sauf qu’il y a un hic.

Ma première visite aura été le château de Prague, et là Prague-Secrete a raison, ce n’est pas franchement intéressant de s’y attarder. Pire encore, le personnel y est déplorable, tellement il est désagréable. Quand je dis « Hi ! », les gars qui récupèrent mon ticket me répondent en grognant, et je me fais chasser comme une malpropre à l’entrée de la salle historique parce que j’avais acheté un ticket online !!! Et là je me dis :

« Ils sont sérieux, ils sont comme ça les gens dans cette ville ??? »

Au restaurant Mintcovna, pourtant plébiscité, je me fais recaler parce que je n’avais pas réservé. Je leur explique que je suis seule, il n’y a pas beaucoup de monde dans la salle. Franchement, on peut me caler dans un coin, avec un peu de bonne volonté, et puis zut, c’est mon anniversaire, j’ai 40 ans, on peut se plier à ma volonté !!! Heureusement, un autre français avait fini sa bière, et m’a proposé de prendre sa place. J’ai mangé un goulasch qui m’a vite plombée, limite lancé comme un frisbee par la serveuse, accompagné d’une bière 50% liquide 50% mousse. Je suis restée au moins une bonne heure, durant laquelle j’ai constaté que la salle demeurait toujours à moitié vide. Ils ont sérieux, eux aussi ??? Je suis partie en insultant en français le patron et son air condescendant. N’y allez pas.

Comme vous le voyez, ils mettent même pas le pain.

Franchement, je ne relate que deux histoires, mais il y en a d’autres. Qu’est-ce qu’ils ont ces gens, contre les touristes ! Je ne suis pas responsable du triste passé de ce pays, bon sang !

Heureusement, j’ai eu affaire à des personnes aimables, et je les en remercie. Parmi elles :

Une partie de Bohnice qui a viré un peu urbex 🙂

Trop de touristes, et de magasins

J’me suis faite avoir :'(

Évitez à tout prix le Pont Charles la journée, ainsi que la rue Karlova qui sont infestées de touristes qui se déplacent en troupeaux, sauf le matin, avant 9 heures.

Le centre de Prague est très joli, mais regorge d’attrape-touristes :

  • Des pseudo-boutiques de cannabis
  • Des boutiques à « souvenirs », qui vendent des chapkas et poupées russes, reliques d’un passé que les Tchèques aimeraient bien oublier.
  • Des vendeurs de Trdelník ou « Chminey cake » … ne croyez pas qu’il s’agisse d’une vraie spécialité … c’est JUSTE une gourmandise Praguoise « spécialité » … depuis que les touristes affluent. J’ai goûté, ce n’est pas mauvais, mais c’est du sucre, sur du sucre, avec encore plus de sucre (attention aux attaques de guêpes) !
  • Les promenades en calèche … sauf que les poneys ont l’air au bout de leur vie. Même si le concept peut paraître sympa, épargnez-leur ces trottes forcées.

Une jolie ville

Un patrimoine non égalé certes. Il y a une visite à faire à tout prix : le Monastère de Strahov, et sa légendaire librairie, c’est un pur bijou !

C’est une splendeur.

N’hésitez pas à vous perdre dans les galeries, vous pourrez avoir des surprises ! Tip : dans la galerie Lucerna, il y a un paternhoster !

Entrée du cinéma de la Galerie Lucerna

La gastronomie : oui mais …

Mais rien n’égalera la gastronomie Française, en fin de compte. J’avoue que l’idée de manger du porc rôti ou des plats mijotés avec un bock de bière m’enchantait pas mal. Mais en fait c’est HYPER bourratif, je n’arrivais pas à terminer mes assiettes, et il m’est arrivé de sauter des repas, parce que justement, je n’avais pas faim, et que le repas précédent m’avait bien rassasiée.

Et puis la bière, je finis par m’en lasser, au point que je finissais par trouver qu’elles avaient toutes le même goût. A vrai dire, j’ai l’impression que dans cette ville, c’est plus facile de trouver de la bière que de l’eau, à croire qu’ils ne connaissent QUE ça, et que dans la Vlatva (prononcez « Voltava »), c’est de la bière qui y coule. Franchement.

Mais des surprises …

  • J’ai fêté mon anniversaire au U Pavouka, repas gargantuesque dans une ambiance sertie de spectacles médiévaux. J’ai bien aimé (surtout les danseuses du ventre 😎 ).
  • Les galeries … furetez bien, des surprises architecturales mais aussi vous y trouverez des FLIPPERS. Oui, des FLIPPERS !!!
Des FLIPPERS !!!
  • Faites-vous servir par des petits trains au Vytopna.
  • Vous aimez les papillons, et vous voulez en voir de jolis de près ? Passez à la Butterfly House, avec un peu de chance vous ferez ami-ami avec un de ces lépidoptères.
Oui, j’ai un papillon sur la tête.

Pour conclure, que dire ?

Je suis venue. J’ai vu. Je n’y reviendrai plus. Parce que j’aimerais découvrir de nouveaux confins, et je n’ai pas eu le coup de foudre. Mais aucun regret, à part un, j’aurais aimé faire une vraie sortie urbex, mais pour cela, il faut connaitre des gens, et tous les lieux connus ont été réhabilités (dont ceux-ci). Dommage.

Migration du serveur Minetest (en PostgreSQL !)

Le moment était venu. Le serveur qui hébergeait jusqu’alors mon jeu Minetest « Amelaye in Minerland » commençait à souffrir, tant la base de données tendait à être énorme (33 Go, vous voyez un peu …). Difficile de dire aux joueurs d’arrêter d’explorer, de creuser, bref de tirer la plus-value du monde qu’ils aimaient modifier. D’autant plus que j’avais bien envie d’installer de nouveaux mods. Et puis surtout, le serveur qui héberge le jeu est une machine perso, qui sert également pour pas mal de choses.

Alors j’ai décidé d’une part de louer un nouveau serveur Kimsufi, une machine assez robuste pour cet usage exclusif, et d’autre part, de migrer la base de données Minetest, à l’origine en SQLite vers PostgreSQL. Pourquoi ? Parce que si on regarde bien, c’est plutôt vivement recommandé.

Documentation des backends Minetest

Tout est dit, ne plus rester sous SQLite implique de limiter les lags, et également de réduire les risques de corruption de la base de données (ma plus grande crainte !). Et ça, c’est tout bénéf’ !

Allons-y. Ma nouvelle machine arrive toute fraiche avec la dernière version d’Ubuntu. Déjà, je m’enlève de la tête qu’on n’installe pas Minetest avec un simple apt-get dans mon cas de figure, ce serait trop simple. Car la version déjà compilée ne supporte pas PostgreSQL. Il va falloir compiler les sources. Je relève le défi.

On prépare le terrain

J’installe la matière première, les librairies qui me seront utiles …

sudo apt install wget postgresql 
postgresql-contrib g++ make libc6-dev libirrlicht-dev cmake 
libbz2-dev libpng-dev libjpeg-dev libxxf86vm-dev libgl1-mesa-dev 
libsqlite3-dev libogg-dev libvorbis-dev libopenal-dev 
libcurl4-gnutls-dev libfreetype6-dev zlib1g-dev libgmp-dev 
libjsoncpp-dev libpq-dev libpqtypes-dev doxygen 
libluajit-5.1-dev libspatialindex-dev libncurses-dev

Comme ça, c’est fait. Je me crée un utilisateur minetest :

sudo useradd -mU minetest

Et je me logue sur le compte, comme ça :

sudo -i -u minetest

Puis je télécharge les sources de Minetest. Important : téléchargez la DERNIERE VERSION stable qui correspond à celle que vous utilisiez, sinon ça peut engendrer des bugs. Dans mon cas, c’est la 5.5.1 :

git clone https://github.com/minetest/minetest.git
git checkout 5.5.1
cd minetest/games/
git clone https://github.com/minetest/minetest_game.git
git checkout 5.5.1
cd ..

Ok, c’est facile. Maintenant, je passe à la pré-compilation (et je croise les doigts) :

cmake . -DRUN_IN_PLACE=TRUE 
-DBUILD_CLIENT=FALSE 
-DBUILD_SERVER=TRUE 
-DCMAKE_BUILD_TYPE=Release 
-DBUILD_UNITTESTS=FALSE 
-DENABLE_POSTGRESQL=TRUE 
-DVERSION_EXTRA=postgresql 
-DPostgreSQL_INCLUDE_DIR=/usr/include/postgresql 
-DPostgreSQL_TYPE_INCLUDE_DIR=/usr/include/postgresql 
-DPostgreSQL_LIBRARY=/usr/lib/x86_64-linux-gnu/libpq.so

Et là … ça plante.

CMake Error at CMakeLists.txt:110 (message):
IrrlichtMt headers are required to build the server, but none found.
The Minetest team has forked Irrlicht to make their own customizations.
It can be found here: https://github.com/minetest/irrlicht
For example use: 
git clone --depth=1 https://github.com/minetest/irrlicht lib/irrlichtmt

On sent bien les origines allemandes du jeu, tiens. Il a besoin d’une librairie « Irrlicht » pour pouvoir compiler. Mais pourtant, je l’ai apt-getté, celui-là … bon, on va là aussi compiler les sources avec l’adresse GIT qui est fournie alors.

Installation d’Irrlicht

Donc, on récupère Irrlicht dans le répertoire minetest pour pouvoir faire en sorte que l’include dans les sources trouve ses petits. Il est très important d’installer Irrlicht dans lib/irrlichtmt

git clone --depth=1 https://github.com/minetest/irrlicht lib/irrlichtmt

On va dans le répertoire et on compile :

cd lib/irrlichtmt
cmake . -DBUILD_SHARED_LIBS=OFF
make -j$(nproc)

Normalement on s’en sort avec juste quelques warnings.

Compilation réussie !

Je reviens deux répertoires en arrière, relance la pré-compilation de Minetest, et … mince encore des erreurs.

CMake Error at /usr/share/cmake-3.22/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
Could NOT find Zstd (missing: ZSTD_LIBRARY ZSTD_INCLUDE_DIR)
Call Stack (most recent call first):
/usr/share/cmake-3.22/Modules/FindPackageHandleStandardArgs.cmake:594 (_FPHSA_FAILURE_MESSAGE)
cmake/Modules/FindZstd.cmake:24 (find_package_handle_standard_args)
src/CMakeLists.txt:228 (find_package)

Bon, certainement une lib qui manque, ce ne sera pas la mer à boire. Je reviens dans mon compte utilisateur et je fais un petit :

sudo apt install -y libzstd-dev

Je reviens dans mon compte minetest et mon répertoire minetest, je relance la pré-compilation. Cool, ça a marché. Maintenant je lance la compilation :

make -j$(nproc)

Okay, le terminal m’indique que minetestserver a été compilé avec succès.

Je lance le binaire :

cd ..
./minetest/bin/minetestserver

Et je lance mon jeu depuis Minetest en spécifiant l’adresse IP du serveur. Tout se lance, génial. J’éteins le serveur, le plus complexe reste à venir.

Configuration du serveur PostgreSQL

Je relance par sécurité le service :

sudo systemctl restart postgresql.service

Et puis je lance mon interface PostgreSQL

sudo -u postgres psql 
CREATE USER monuser WITH PASSWORD '*****';
CREATE DATABASE adventure OWNER monuser;
GRANT ALL PRIVILEGES ON DATABASE adventure TO monuser;

Je vérifie avec /l que tout est ok et je sors

La migration de l’ancien serveur

Là, je suis obligée de dire à mes joueurs que le serveur doit être fermé pour la migration. J’éteins mon ancien serveur et je fais une copie de mon monde vers le nouveau. Je ne cache pas que ça prend du temps, vu le nombre de gigaoctets de mon map.sqlite.

Pour vous situer, il faut copier deux répertoires :
– celui des mods : .minetest/mods vers minetest/mods
– celui du monde, dans mon cas : .minetest/worlds/adventure vers minetest/worlds/adventure

Je tremble un peu durant ce transfert et prie pour que tout se passe bien. Je relance après cette étape en spécifiant mon monde et … ça se lance ! Tout va bien, je souffle un peu ! Maintenant passons aux choses sérieuses !

J’édite mon fichier world.mt du monde adventure pour y ajouter mes identifiants de connexion PostgreSQL. On ne touche à rien d’autre, notamment la configuration des backends en SQLite. Ce sera fait automatiquement.

pgsql_connection = host=127.0.0.1 port=5432 user=monuser password=***** dbname=adventure
pgsql_auth_connection = host=127.0.0.1 port=5432 user=monuser password=***** dbname=adventure
pgsql_player_connection = host=127.0.0.1 port=5432 user=monuser password=***** dbname=adventure

Et je lance ma première migration, celle du monde, et j’attends. Ce qui est sympa, c’est que l’avancée de la migration s’affiche :

./minetest/bin/minetestserver --migrate postgresql --world minetest/worlds/adventure

Si vous avez comme moi une base de données énorme, ne faites pas l’erreur que j’ai faite, de lancer le script dans un terminal et le laisser juste agir comme ça (sincèrement, je ne pensais pas que ça prendrait tant de temps !). Je suis partie me coucher, le lendemain mon ordi avait rebooté tout seul, interrompant le process (que j’avais lancé la veille à 15h30), et que j’ai dû relancer cette fois dans un screen (ou faites un nohup … &, bref, permettez au script de le laisser exécuté même si il y a une coupure.). Bref, une bonne vingtaine d’heures plus tard (oui, une VINGTAINE d’heures !!!) après le deuxième lancement, la base des blocs est migrée !

Regardons le fichier world.mt. Il a changé automatiquement le backend correspondant à la base des blocs. Nickel. Faisons la suite. Les autres bases de données migrent très vite.

./minetest/bin/minetestserver --migrate-auth postgresql --world minetest/worlds/adventure
./minetest/bin/minetestserver --migrate-players postgresql --world minetest/worlds/adventure

L’heure de vérité à sonné. Je vérifie que mes backends ont bien été modifiés et que tout pointe sur ma base PostgreSQL. Mieux que ça, je convertis mes fichiers map.sqlite, auth.sqlite et players.sqlite en map.old, auth.old et players.old. Je lance le jeu, et super, tout marche et je retrouve mon monde tel que je l’avais laissé …

Reste à remettre dans mon minetest.conf les paramètres de l’ancien serveur, sauf l’adresse, qui change.

Pour terminer, augmentez la mémoire allouée pour les requêtes PostgreSQL, sinon vous allez vous retrouver avec des plantages core dumped. Donc dans /etc/postgresql/potgresql.conf, changez la valeur du paramètre shared_buffer pour qu’il ait au moins une valeur supérieure à 512Mo. Chez moi, j’ai affecté 1024Mo.

Il ne reste plus qu’à profiter du jeu maintenant !