Auto Héberger des comptes Mastodon via Pleroma sous Yunohost

Artlog

18 Mai 2025

Vous pouvez partager cet article, en extraire des morceaux en indiquant la source et l’héberger ailleurs en le modifiant (CC-BY-SA)

capture partie portail accueil yunohost pour pleroma sur l’instance l0g.eu

Bonjour à vous et merci de prendre le temps de lire cet article débutant une série sur mon expérience avec l’autohébergement et de la fédération.

L’original à jour de cet article lui-même, peut-être celui que vous consultez en ce moment, est auto hébergé.

Disposant de plusieurs comptes mastodon pour mon profil personnel et professionnel, je dois migrer une instance vers un autre fournisseur à cause d’une fermeture imminente de service.

Vous êtes probablement déjà au fait de ce qu’est la fédération et l’autohébergement, mais rien ne vous y oblige, donc voici quelques précisions sinon pour la partie technique passez directement au chapitre suivant ;-)

Contexte

Partisan du principe ‘eat your own food’ c’est à dire test sur toi les services que tu fournis, j’auto héberge de multiples services et en particulier celui dont je parle ici.

Professionnel de l’informatique j’ai opté pour des solutions que je maîtrise, libres et opensource, car c’est à la fois mon appétence et le meilleur moyen de conserver son indépendance. C’est aussi la spécialité que je souhaite pousser afin de porter au plus grand nombre la bonne nouvelle : avec des compétence ou de l’effort c’est à votre portée, sans effort il y a [des artisans du numérique comme moi qui peuvent vous aider].

La fédération

Non nous sommes pas dans une resucée de la guerre des étoile.

Passé par de nombreux autres réseaux sociaux l’aventure avait commencé avec twitter avant même que mastodon n’existe, puis mu par l’envie d’un endroit moins furieux et par le désir que quitter les grand groupes et les marchands de présence en ligne j’avais rejoint celui de framapiaf https://framapiaf.org puis de l’april https://pouet.april.org puis un autours de linux américain que j’ai migré et j’ai encore aussi un compte sur zaclys, c’est la fermeture prochaine de son service qui m’a finalement décidé à créer mon instance.

Rejoindre la fédé, la fédération, est à la fois simple et compliqué, les serveurs ne manquent pas mais ils sont animés d’une vie propre comme des plaques tectoniques certain sont très vastes, d’autres sont des iles. Ce que je raconte ici est mon ilot personnel, https://agora.l0g.eu et grâce à la fédération, je n’y suis pas seul.

D’autres applications font aussi partie de la fédération pour partager des fichiers, des photos des video, non en verrons plusieurs au cours des articles qui suivront.

L’équipement

Auto hébergé (‘made in chez moi’ ;-) librezojoke), c’est à dire que l’équipement qui contient ses données est situé dans mon auto, euh non dans ma maison, en général sur le petit meuble à côté de la box de mon fournisseur d’accès; mais en fait en ce moment dans mon bureau, réellement à portée de main.

Le serveur : un raspberry pi3B+

L’équipement lui-même est un tout petit ordinateur sans souris ni clavier mais avec un connecteur vers le réseau, un connecteur ethernet 100MB/s dans mon cas et avec un stockage avec une carte sd 128G. Il s’agit d’un raspberry Pi3B+ vieillissant toujours commercialisé autours de 45€ , mais pourrait être aussi être une équivalent, bananapi pi par exemple ou bien même un ordinateur de récupération ou encore un smartphone. Cette équipement complet m’a coûté moins de 100€ et surtout il est rentabilisé depuis longtemps car ce n’est pas sa première mise en service.

Pour tout vous dire, ce n’est pas mon seul équipment pour l’autohébergement, mais celui-ci est suffisant pour ce cas.

On rentre dans le vif du vaste sujet par le protocole de Mastodon qui permet tout à chacun de rejoindre l’agrégation de réseaux sociaux fédérés : la fédé.

Choix du système

Mon choix du système d’auto hébergement s’est porté sur Yunohost , c’est la solution la plus évidente pour pouvoir se lancer rapidement. L’installation de Yunohost ne comporte pas d’autres difficultés que celles propres à l’autohébergement, et comme il lui est dédié il nous assiste avec de précieux conseils. Un autre article de blog sera dédié à ce sujet. Choisir Yunohost c’est passer d’une demi journée d’installation à 1 petite heure café compris. Vous l’aurez compris je suis un ventilateur yunohost.

Le problème principal de l’autohébergement est l’accès au réseau en tant que serveur alors que les fournisseurs d’accès aux particuliers l’ont pensé uniquement côté utilisateur. Ceci est un vaste sujet. Dans mon cas j’ai opté pour une solution avec un vpn à adresse ip fixe; comme je suis breton c’est un déménageur euh fournisseur breton(https://grifon.fr/) que j’ai choisi .

Intermède : pourquoi pas mastodon directement ?

Le choix de pleroma est un second choix, le challenger en somme, pas le favori qui est mastodon.

Après m’être connecté dans la partie administration de yunohost, dans le menu Applications j’ai utilisé le bouton vert ‘Installer une app’.

Dans la barre de recherche j’ai tapé mastodon et j’ai vu, bien visible, le panneau rouge en fin de page indiquant L’installation de l’application entraînera très probablement des problèmes avec le détail car il n’y a pas assez mémoire pour l’installer, il faut 1G et qu’il n’y a pas assez de mémoire libre. Comme effectivement mon raspberry n’a que 1G de RAM mais qu’il y a une swap que j’ai augmenté de façon conséquente, je me suis dit que cela devrait passer. J’ai donc cliqué sur ‘Je comprends que cette installation peut casser mon système mais je veux quand même essayer.’ Et je n’aurais pas du. Même avec de la swap pour compenser le manque de mémoire l’installation échoue en consommant toute la mémoire disponnible. Merci yunohost de m’avoir mis en garde, c’est tout ce qui fait la qualité de ce système et c’est ce qui fait que je l’apprécie.

Plutôt que de m’acharner sur mastodon et puisque j’étais pressé d’avoir un système fonctionnel pour pouvoir migrer, j’ai opté pour pleroma. Je ne suis pas déçu de ce choix.

L’intérêt de pleroma est effectivement son utilisation beaucoup plus paricmonieuse de la mémoire. Même si ’utilisation mémoire annoncée de 50M est plus proche des 300M sur la debian 12 bookworm en 64bits, cela reste le choix à privilégier pour des équipements en dessous de 1G de RAM.

La technique : Pleroma sous Yunohost

Et c’est ici tout l’intérêt de ce billet : je ne dirais pas c’est échec mais tout n’a pas marché… J’ai fait face à quatre problème dont le login sur pleroma sous yunohost qui est dysfonctionnel.

Mais avant de pouvoir faire face aux problèmes, il faut installer l’application pleroma sous yunohost. Je considère ici que le yunohost est déjà installé.

Après m’être connecté dans la partie administration de yunohost, dans le menu Applications j’ai utilisé le bouton vert ‘Installer une app’.

Dans le menu Applications j’ai utilisé le bouton vert ‘Installer une app’.

Donc dans la barre de menu j’ai recherché pleroma, car c’est le second service compatible avec mastodon car utilisant le protocole activitypub que je connaisse. la version installée  est 2.8.0~ynh2.

La page de description de l’application encore une fois contient nombreuses précieuses informations dont le fait qu’il requiert un nom de domaine dédié et aussi que le mot de passe saisi durant l’installation ne doit en aucun cas contenir de caractères spéciaux. Cette précision est tout à fait utile.

Mise en garde lors de l’installation de pleroma

J’ai donc du choisir un nom de domaine dédié.

La documentation de yunhost pour les domaines est très claire et plutôt que de paraphraser en moins bien, cliquez le lien de cette phrase.

Dans mon cas, payant pour plusieurs nom de domaines, je n’ai pas créé un nouveau domaine mais ajouté et dédié un sous domaine. J’avais l0g.eu j’ai donc dédié le sous domaine agora.l0g.eu pour pleroma. L’ajout du sous domaine s’est faite via la configuration avec l’interface web de mon registrar gandi. mavie il faudra que j’arrive à changer de registrar un jour mavie

Connecté dans l’interface d’administration web de yunohost j’ai rajouté le domaine dédié en utilisant le menu poulet euh non domaine évidemmment.

capture ajout du sous domaine agora.l0g.eu

Une difficulté supplémentaire était au rendez-vous : la migration de mon compte de l’instance precédente vers celle-ci. En effet c’était mon problème initial.

mavie

On est dimanche matin, cela fait presque deux heures que je rédige cet article de blog et je commence juste à entrer dans le vif du sujet, je vais peut-être revenir dessus pour le réécrire, mais pour l’instant on va slasher :

mavie

Problèmes

Il y a des problèmes connus visible des développeurs.

https://github.com/YunoHost-Apps/pleroma_ynh/issues

espaces dans le nom de l’instance

A l’installation premier problème : le nom de l’instance ne doit pas comporter d’espaces. Ceci fait échouer l’installation.

mots de passe : limitations

Les mots de passes utilisés sont ceux du ldap, le mot de passe demandé à l’installation n’est en fait pas utilisé, c’est celui de l’utilisateur associé dans yunhost qui le sera.

Le mot de passe ne doit pas comporter de caractères accentués, ceci empêche le login. Correction en changeant le mot de pass yunohost ldap.

ceci est fait l’objet d’un ticket

conflit de login avec yunohost

Se connecter avec les bonnes valeurs ne fonctionne pas, puis le login suivant en utilisant un mauvais mot de passe permet de se connecter… Heureusement il semble tout de même qu’il soit nécessaire de saisir le bon mot de passe la première fois. Ce n’est pas non plus toujours le cas…

Ce commentaire dans un ticket indique qu’il ne faut pas être connecté sur le portail yunohost pour que cela fonctionne. Utiliser une fenêtre de navigation privée est une autre solution.

Mais que faire si on ne souhaite pas se déconnecter de yunohost ?

J’ai pu vérifier que désactiver ssowat pour agora.l0g.eu corrigeait le problème. ssowat est la librairie qui gérant le SSO. Le SSO (Single Sign On) est l’authentification unique qui permet de ne pas avoir à saisir de nouveau ses identifiants pour chaque application mais utiliser celle du portail yunohost.

Pour cela j’ai du me connecter via le réseau en ssh sur le terminal de yunohost avec l’utilisateur ayant les droits d’administration.

Dans la configuration de nginx pour le nom de domaine dédié j’ai commenté la ligne qui inclus le script lua ssowat.

#   yet dedicated to pleroma, has problem with yunohost integration
#    access_by_lua_file /usr/share/ssowat/access.lua;

Le lua est un langage de script. Il est supporté par nginx.

Il existe une autre méthode, en configurant dans /etc/ssowat/ssowat.conf.persistent ce qu’il faut, mais “ce qu’il faut” n’est pas si évident … Pour être clair, j’ai testé, ça avait l’air de marcher mais en fait j’avais cassé l’intégralité du SSO pour tout le reste, y compris l’administration.

Question : est-ce que cela survit à une mise à jour ?

Réponse je n’ai pas testé, le futur me le dira.

Probablement ce problème sera géré par une version future de l’application yunohost pleroma.

migration depuis une autre instance

La migration , nécessite d’utiliser l’API pour ajouter un alias sur le compte de l’instance à migrer. Nous verrons comment faire après, ce n’est pas trivial pour une personne qui n’a pas de compétence en développement.

Une fois activée depuis l’ancienne instance les followers sont récupérés mais pas le suivi en retour. Le suivi ne semble pas fonctionner pour plus de deux comptes d’affilée, comme si un nombre limité de demande pouvait être émise sur une période donnée.

Je n’ai pas creusé plus, j’ai migré mes utilisateurs deux à deux ;-)

création de compte

Celui-ci est plus nouveau puisque maintenant que j’ai deux utilisateurs j’ai choisi d’en ajouter un nouveau.

Hélas j’ai eu la mauvaise idée de créer un utilisateur avec un ‘.’ dans le nom de compte. C’est une autre limitation, il ne faut juste pas; l’utilisateur est bien créé dans yunhost mais pas dans pleroma.

La création de l’utilisateur dans yunohost créé l’utisateur dans pleroma.

Si le login n’a pas marché, alors je conseille de relancer le service pleroma. Ceci se fait dans l’administration de yunhost dans Outils/Services.

Une autre solution plus bizarre est celle-ci, avec le scripts shell

La création de l’utilisateur avec le script donné dans l’application n’est pas suffisante, elle ne créé pas l’utilisateur dans le répertoire yunohost, uniquement dans la base de donnée pleroma.

sudo su pleroma -s $SHELL -lc "/var/www/pleroma/live/bin/pleroma_ctl user new <userName> <userEmail>"

des logs apparaissent le dernier est :

URL: https://agora.l0g.eu/api/v1/pleroma/password_reset/D29lHJ-ZutJeMesuiTrahi%HhZAXLSf0Jq4SrR6TxpI%3D

Le reset du mot de passe en suivant le lien qui est apparu dans la console via un navigateur ne permet pas de fonctionner.

Cependant une création de l’utilisateur dans yunohost avec le même mot de passe corrige le problème.

Migration

Activer l’API nécessite d’intervenir en ligne de commande, il n’y a pas d’interface web pour le faire, même pour un administrateur.

Si je devais migrer de ‘artlog@mastodon.social’ vers mon ‘artlog@l0g.eu’ je devrais envoyer ajouter l’alias ‘artlog@mastodon.social’ à l’utilisateur ‘artlog@l0g.eu’ sur le nouveau serveur.

La documentation https://docs-develop.pleroma.social/backend/development/API/pleroma_api/#apipleromaaliases n’est pas des plus parlantes si vous ne connaissez pas REST.

L’envoi se fait avec le mot ‘PUT’ du protocole REST sur HTTP qui correspond à une demande de modification d’objet.

la difficulté ici c’est que cet envoi doit être autorisé et donc utiliser un jeton, un suite d’octets, obtenue via l’authentification du compte utilisateur en question sous peine de recevoir :

{"error":"Invalid credentials."}

Dans mon cas j’ai utilisé la fonction de debug de mon navigateur, F12 sous firefox, pour copier la valeur __Host-pleroma_key=XXXX du contenu cookie de la session dans l’onglet du client web pleroma en cours. L’authentification peut passer par un champ du protocole ‘Authorization’ mais c’est aussi simple par un cookie ’Cookie: __Host-pleroma_key=XXXX’. XXXX correspondant au jeton OAuth d’openid-connect.

mavie Hélas entre la réalisation de l’action et ce billet il s’est passé trois semaines, suffisamment pour que j’ai oublié les commandes exactes mavie

Ce qui vous intéresse est ici :

Nous utiliserons le fameux outil curl, il vous faudra l’obtenir et l’installer sur votre pc. Avec apt install pour debian, yum pour les redhat-like, pacman, brew bidule sous mac … ou même en copiant un exe téléchargé en suivant [les information du site de curl]:https://curl.se/download.html .

L’action peut être réalisé depuis n’importe quelle machine.

Pour ajouter un alias :

curl -X PUT  \
     -H "Content-Type: application/json" \
     -d '{ "alias": "artlog@mastodon.social" }' \
     https://agora.l0g.eu/api/pleroma/aliases \
     -v \
     --header 'Cookie:  __Host-pleroma_key=SFMyNTY.aaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbcccccccccccccccccccccccdddddddddddddddddeeeeeeeeeFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'

évidemment SFMyNTY.aaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbcccccccccccccccccccccccdddddddddddddddddeeeeeeeeeFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF est le fameux XXXX qui doit être celui copié depuis votre navigateur, et le “artlog@mastodon.social” votre compte existant sur la platforme que vous souhaitez quitter.

Pour obtenir les alias en cours :

curl https://agora.l0g.eu/api/pleroma/aliases \
     -v \
     --header 'Cookie:  __Host-pleroma_key=SFMyNTY.aaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbcccccccccccccccccccccccdddddddddddddddddeeeeeeeeeFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF;'

Vous pouvez vérifier qu’il a bien été enregistré.

Une fois réalisée n’oubliez pas de supprimer l’historique des commandes en particulier le cookie d’authentification. Il est aussi possible de supprimmer les token de session depuis l’interface de pleroma.

La migration est prête vous pouvez la demander sur l’ancien serveur, heureusement cela peut se faire depuis l’interface web, connecté avec votre compte utilisateur.

Tout est bien qui finit bien

Aujourd’hui mon compte fonctionne, d’ailleurs si vous avez lu cet article c’est probablement que vous avez suivi un de mes posts.

mon premier post

Ce billet provient du cerveau d’un humain et n’est pas génétiquement modifié par une IA.

Merci de m’avoir lu, si vous êtes arrivés jusqu’ici c’est peut-être aussi que vous êtes un IA ;-)