Errance fediversienne : passer de misskey à mastodon
Pourquoi ??
Je n'ai plus de facebook ni de twitter depuis belle lurette, jamais eu X ni insta, et ceci grâce à Framasoft et son instance mastodon “Framapiaf”. Puis j'ai suivi le mouvement de deframasoftisation en montant ma propre instance Misskey il y a 4 ans (à 5 jours près).
Après ces quelques années de présence sur le fedivers grâce à ce serveur de microblogging, mon bilan est le suivant : * trop de gadgets pour l'utilisation que j'en ai, * un bug à la connexion m'oblige à ouvrir l'outil de developpement du navigateur pour changer le “disabled” sur le bouton, * le “Drive” intégré ne fonctionne plus : je ne peux plus uploader des fichiers, * l'erreur du Drive est différente selon l'origine de l'upload (client web ou android) ! * la doc et les tickets github n'aide pas, * le maintien du dépôt Yunohost n'est pas assuré (et je n'ai pas le temps ni les compétences de prendre des initiatives à ce propos).
J'ai donc sauté le pas, installé Mastodon sur mon serveur Yunohost, et migré mes abonnements/abonné⋅es sur cette nouvelle instance!
Parlons technique...
Première étape : récupérer mes abonnements
Autant du côté de misskey que mastodon, il est dit que la migration est supportée, et c'est documenté. Tant mieux ! Et ça parait simple : un système d'alias sur les 2 instances permet de récupérer automatiquement les abonnée⋅es. Par contre, pour les abonnements, ça doit se faire manuellement : export côté misskey, import côté mastodon.
Problème : le CSV créé au moment de l'export est forcément dépose sur le Drive ! Oui, celui-là même qui ne marche plus ! Il a donc fallu que je trifouille dans la base de donnée de Misskey.
- connexion à la BDD misskey :
- chercher les infos de base de donnée dans
var/www/misskey/.config/default.yml. On y récupère unpassword, unmisskey useret unmisskey db - dans le terminal :
PGPASSWORD='<password>' psql -h localhost -p 5432 -U <misskey user> <misskey db> - ce qui ouvre un prompt postgresql à partir duquel on peut executer des requêtes
- chercher les infos de base de donnée dans
- Requêtes :
select id,username from "user" where host IS NULL;permet de récupérer l'idde l'utilisateur misskey à migrer.select "user".username,following."followeeHost" from "user",following where "user".id = following."followeeId" and following."followerId" = '<id à migrer>';Ceci affichera l'ensemble des abonnements sous la forme"nom", "serveur". Pour enregistrer le résultat de cette requête dans un fichier, il faut l'orner de la commande\\copy(...) to fichier.csv with csv header:\\copy (select "user".username,following."followeeHost" from "user",following where "user".id = following."followeeId" and following."followerId" = '<id à migrer>';) to /…/following.csv with csv header - Récupérer le csv localement
scp -P <port> …@<serveur>:/…/misskey_following.csv following.csv - Formater le csv pour mastodon
D’apres un export sur un vieux compte mastodon, l'en-tête du CSV doit ressembler à ça :
Account address, Show boosts, Notify on new posts, Languages, avecAccount address:username@followeeHost(construit à partir des deux colonnes du csv extrait de la bdd misskey)Show boosts: true,Notify on new posts: false,Languages: vide.
Ce qui peut se faire en 2 sed (mais il y a certainement plus élégant) :
sed -i 's/,/@/g' misskey_following.csv
sed -i 's/$/,true,false,/g' misskey_following.csv
J'ai donc un fichier qui contient mes abonnements misskey comme si je l'avais exporté depuis mon profil.
Deuxième étape : configurer les alias
Côté mastodon pas de soucis. Il suffit de naviguer dans les paramètres du profil. Côté misskey, j'ai une erreur : “cannot migrate root account“. Et effectivement, le seul compte existant est “root” au sens de misskey. J'ai suivi ce post : https://korhonen.cc/posts/migrate_misskey_root_account/, et surtout le commentaire qui apporte une mise à jour fort utile : dans la base de donnée misskey, il suffit d'executer la commande suivante :
UPDATE meta SET "rootUserId" = '<l'id d'un autre utilisateur>';
Il faudra peut-être créer un autre utilisateur pour l'occasion. C'était déjà le cas chez moi, pour des tests, donc je l'ai mis en root pour “libérer” le compte à migrer.
Et voilà ! J'ai pu alors définir l'alias vers mastodon dans misskey (rappel, l'inverse avait été fait de l'autre côté aussi ! Et oui, ça veut dire que l'instance mastodon était installée avant tout se bazar).
Final
Import du CSV des abonnements dans mastodon, constatation que les abonné⋅es se réabonnent automatiquement – sauf pour les comptes avec autorisation : il faut que j'attende que celleux-là me ré-acceptent !