Souhaitant trouver un remplaçant à Twitter, je teste depuis quelques temps GnuSocial, anciennement plus connu sous le nom de StatusNet ou encore Laconica. Il s'agit d'un réseau social distribué et organisé en fédérations. J'ai monté une instance publique pour voir ce que ça donne. A travers cet article, je vous donne mon ressenti.

Premiers pas

Installer GNU Social n'est pas compliqué, ça se résume comme beaucoup de services à :

  • Disposer d'un serveur web (PHP)
  • D'une base de données, MySQL ou MariaDB dans le cas présent
  • D'un peu d'huile de coude (numérique l'huile hein)

Le projet est hébergé sur Git, une instance Gitlab précisément et est disponible ici.

Pour faire simple et si vous disposez déjà d'un environnement web fonctionnel (n'oubliez pas de rajouter php5-imp, php5-curl et php5-json) :

  • On récupère le code en un coup de Git (ou téléchargez une archive, au choix) :
cd /var/www
git clone https://git.gnu.io/gnu/gnu-social.git
  • Si vous avez un serveur web Apache, faites donc un vhost de la forme suivante (attention c'est un exemple générique), puis activez le vhost :
ServerName www.example.com
DocumentRoot /var/www/gnu-social
<Directory /var/www/gnu-social/>
    AllowOverride All
    Order Deny,Allow
    Allow from all
</Directory>
  • On active la réécriture d'URL par défaut en activant le module rewrite et en copiant l'.htaccess par défaut qui contient les règles de réécriture :
a2enmod rewrite
mv /var/www/gnu-social/htaccess.sample /var/www/gnu-social/.htaccess
  • On fait attention aux droits :
chown -R www-data:www-data /var/www/gnu-social
  • On redémarre le serveur web :
/etc/init.d/apache2 reload
  • On s'occupe de la base de données (MySQL pour l'exemple et les valeurs et noms sont des exemples, mettez autre chose de plus sécurisé) :
mysql -u root -p
CREATE DATABASE gsocial;
CREATE USER gsocialuser;
SET PASSWORD FOR gsocialuser=PASSWORD("LePassword");
GRANT ALL PRIVILEGES on gsocial.* TO gsocialuser@localhost IDENTIFIED BY "LePassword";
FLUSH PRIVILEGES;
EXIT
  • Faites pointer votre brouteur sur http://www.exemple.com/install.php puis remplissez ce qu'il faut.

Ayé, c'est installé. Une fois l'installation installée, n'hésitez pas à y mettre du HTTPS correct à l'aide de Let's Encrypt ce qui entraînera une modification de votre vhost, généralement pris en charge par l'outil certbot --apache si vous avez la flemme.

Si vous rencontrez un souci, n'hésitez pas à faire un tour sur la mailing list Unixmail, ou tout simplement d'aller jeter un coup d'oeil au wiki de GnuSocial, chez LoadAverage.

L'instance GnuSocial d'Unixmail est ici. Attention, elle est légèrement modifiée et non pas "par défaut" (notamment le thème graphique). J'ai un peu trituré la bête pour voir ce qu'il était possible de faire avec.

Au final l'installation est banale, comme on en trouve sur plein de projets web, hormis des warnings de fonction deprecated sur la page de fin...

Une armée de plugins

Par défaut, GnuSocial vient avec de nombreux plugins pour étendre ses fonctions de base qui sont déjà nombreuses, même si leur usage n'est pas forcément toujours très clair.

Les plugins sont situés dans le dossier /plugins. GnuSocial vient aussi avec une armée de scripts utilitaires (66) qui permettent diverses choses comme :

  • Vérifier le schéma de la BDD
  • Mettre à jour l'instance GnuSocial
  • Gérer certains fichiers (cache, thumbnails, profile)
  • Importer un flux Twitter
  • Bien plus encore...

La configuration des plugins se fait aisément. J'ai par exemple mis une passerelle en place pour que le contenu envoyé sur GnuSocial soit également envoyé sur Twitter. Sans aborder le côté Twitter (création d'une application et récupération des tokens de l'API) le fichier de config est à modifier de la façon suivante :

addPlugin('TwitterBridge'); // On ajoute le plugin
$config['twitterimport']['enabled'] = false; // Non, on ne veut pas "importer" le flux de Twitter
$config['integration']['source'] = 'GnuSocialTweet'; // Nom de l'application déclarée chez Twitter

Puis l'interface web de GnuSocial fait apparaitre un nouvel onglet avec le paramétrage correspondant. Plutôt simple.

Pour être notifié par mail ? Même principe, direction config.php avec la forme suivante :

$config['mail']['domain'] = 'domain.com';
$config['mail']['notifyfrom'] = 'from@domain.com';
$config['mail']['backend'] = 'smtp';
$config['mail']['params'] = array(
'host' => 'domain.com',
'port' => 587,
'auth' => true,
'username' => 'vous@domain.com',
'password' => 'password'
);

Enfantin !

Le service n'est pas stable, vous rencontrez un bug ou autre et vous souhaitez y voir plus clair ? Activez donc les logs :

$config['site']['logdebug'] = true;
$config['site']['logfile'] = '/chemin/gnusocial.log';

Attention en ce qui concerne les logs, une instance avec quelques utilisateurs génère énormément de journaux. Prévoyez un logrotate ou désactivez les logs si tout roule.

Besoin de mettre à jour la bête ? Faites un backup des données puis :

bash scripts/stopdaemons.sh
git pull
php scripts/upgrade.php
bash scripts/startdaemons.sh

Transformation en TwitterLike

Un gentil monsieur du nom d'Hannes Mannerheim a développé un plugin nommé Qvitter qui donne à GnuSocial une apparence extrêmement similaire à Twitter. Avatars, bannières, polices, couleurs, tout y est. Il s'agit d'un simple thème, avec quelques fonctionnalités en plus et des fonctionnalités simplifiées. Cette personne est très très réactive et vraiment sympathique, pour avoir échangé par mail avec elle.

On m'a remonté un bête souci, l'impossibilité d'uploader une nouvelle bannière sur le compte d'un utilisateur. Après activation des logs et quelques mails échangés, Hannes a réglé le problème, puis a poussé les modifications sur Gitlab, après une mise à jour, le souci fut réglé.

En voilà un bel exemple de la puissance et de la réactivité dans le logiciel libre !

Concernant les paramétrages de Qvitter, là encore c'est dans le config.php, comme l'indique le README du projet pour faire en sorte que les réglages soient persistants après une mise à jour du plugin.

Chose pratique, il existe sur Android quelques applications libres prenant en charge GnuSocial, comme Twidere qui supporte également Twitter, ou encore l'excellent Mustard. Comme GnuSocial peut être lié à Twitter, un client libre suffit pour donner à manger à votre compte Twitter via la passerelle GnuSocial (processus complètement automatique).

Mais pourquoi diable avoir fait ressmbler GnuSocial à Twitter ? C'est stupide étant donné que ce N'EST PAS Twitter !

C'est maintenant qu'on aborde les points autres que la technique, et clairement ce n'est pas la même ambiance.

Des points négatifs

Ce n'est pas si simple

Clairement, on est loin de Twitter, très loin, même avec cette interface qui y ressemble. GnuSocial dispose d'un avantage indéniable, puissant et extrêmement appréciable, mais cet aspect est aussi son point le plus faible... c'est qu'il est distribué.

Pour les lecteurs pas très techniques, permettez-moi de vous expliquer le principe de fonctionnement avec en comparaison un réseau social que vous connaissez bien : Twitter (rassurez vous ce n'est pas méchant).

Twitter est centralisé. Les gens, les contenus, tout ce que vous y voyez est uniquement sur Twitter et pas ailleurs. Imaginez un gros PC, très très gros qui contient "tout Twitter". Et bien GnuSocial c'est tout le contraire. Vous avez votre instance de GnuSocial sur votre serveur à la maison, avec votre contenu. C'est-à-dire que ce que vous mettez sur GnuSocial reste chez vous, ça c'est le grand point positif, la ré-appropriation des données sociales et une maitrise des données publiées. Pas besoin de signer avec son sang des conditions d'utilisation ni même pousser son contenu outre-Atlantique chez des vilains capitalistes. C'est VOS données, chez VOUS. pour rappel ça devrait être la norme sur Internet (après tout c'est comme ça qu'il a été construit).

Donc je poste du contenu chez moi ? Uniquement pour moi ?!

C'est là qu'intervient le côté distribué de la chose : J'ai une page publique sur MON serveur. Sur cette page, vous pouvez vous souscrire à mon flux d'informations. Ce qui fait que ce que je vais poster sur GnuSocial sera visible dans votre instance GnuSocial. En fait c'est comme si chacun avait un compte Twitter sur SA machine et les comptes Twitter de tout le monde pouvaient s'inter-connecter. Comme tout le monde est inter-connecté, plus besoin de bases de données. Chacune des données reste sur le serveur de la personne, mais les flux se croisent. Par simplicité chacun dispose d'un genre d'identifiant de la forme nom@instance, ainsi, la mienne est zilkos@status.unixmail.fr. C'est cet identifiant que j'indique quand je m'abonne à quelqu'un, la page redirige sur mon serveur pour me demander une confirmation.

Ainsi, vos données sont chez vous, sous votre contrôle et supprimables à tout moment. Avec ce système, point de données personnelles dans la nature où dans les mains crochues de puissances numériques avides de profilage et de données personnelles.

De part sa construction, il est résilient, c'est-à-dire que si un serveur ferme, le reste du réseau continue de fonctionner. En passant, une pensée pour Vinilox qui ferme son instance. À l'inverse si Twitter ferme ? Et bien il n'existe tout simplement plus.

GnuSocial permet également un partage. Tout le monde n'a pas forcément l'envie ou le temps d'héberger soit-même son réseau social. Vous pouvez donc permettre la création de compte sur votre instance pour que d'autres personnes rejoignent l'aventure, c'est le cas de mon instance de test, si vous souhaitez regarder comment ça fonctionne. Pour s'inscrire en créant un compte, ou via un login OpenID c'est par ici. Sachez qu'il existe aussi de nombreux autres serveurs publics sur lesquels il est possible de créer un compte, notamment le plus connu : Quitter. Mieux, montez le service et créez votre compte, chez vous.

Ah, la limite n'est pas de 140 caractères sur GnuSocial, c'est VOUS qui la définissez la limite (donc du vrai microblogging) ! Rassurez vous c'est pleinement utilisable, contenu riche, système de réponse, médias, liens, favoris, tout ! Attention tout de même, si vous posez une limite de contenu à 1000 caractères et que vous avez une passerelle Ttwitter, ça peut poser des soucis quand ça arrive sur l'oiseau bleu.

Ok mais Twitter c'est centralisé, tout le monde est au même endroit, donc c'est super facile pour trouver des gens !

C'est là LE point noir de GnuSocial à mon sens (et de bien d'autres réseaux sociaux distribués basés ou non sur XMPP comme Diaspora*, Salut à Toi, Movim ou d'autres) : Les gens. Un réseau n'a de social que s'il y a des gens dessus. Alors j'ai fait le test. J'ai pris quelques personnes de mon compte Twitter, celles ayant le plus de chance d'avoir une instance GnuSocial (donc les crypto-terroristes, les cultivateurs d'oignons, principalement). J'en ai trouvé quelques-unes (vraiment très peu rapport au taux de barbus que je peux avoir dans mes contacts). Ce n'est vraiment pas peuplé par des gens lambdas. Qui autour de vous connait le projet Gnu ?

Le souci c'est que ça manque cruellement d'annuaire, souci qu'on retrouve dans quelques systèmes distribués comme celui-ci. Donc j'ai trouvé une technique qui permet de peupler un peu l'instance, que j'ai nommée "le rebond". Je vais sur la page de quelqu'un qui est abonné à beaucoup de personnes et je regarde la bio de ces gens-là, ainsi que le nombre de personnes qui le suivent. Parmis ces personnes je regarde qui a beaucoup d'abonnés et parcours leur liste d'abonnés et ainsi de suite. C'est relativement long et fastidieux mais c'est pour le moment le seul moyen que j'ai trouvé pour avoir un peu de contenu sur l'instance, en m'abonnant à quelques personnes ayant des publications intéressantes.

Pour être plus précis, le problème est plus situé au niveau francophone. Il y a peu de francophones sur Gnuocial, mais de ce que j'ai pu constater, à l'étranger c'est quand même beaucoup plus actif (et pas utilisé uniquement par des geeks).

Il est aussi possible de chercher des gens par groupe, qui la plupart du temps représentent des centres d'intérêts ou des sujets, un peu comme les # sur Twitter.

En bref, pour la personne adepte de l'instantanéité, habituée à Twitter ou Facebook, c'est clairement compliqué pour elle de s'en sortir dans un monde comme celui de GnuSocial et les abandons sont généralement rapides, selon certains témoignages glanés sur le web. Il y avait aussi l'excuse du "C'est compliqué on ne trouve pas l'information ni comment faire et ce n'est pas intuitif" mais clairement, c'est purement de la mauvaise foi crasse.

Au final

Au final GnuSocial m'a séduit, c'est un projet fonctionnel, stable et avec une belle interface (même si quelque chose de beau tout en s'éloignant du thème Twitter aurait été un peu mieux à mon goût), chose très prositive car le design et l'UX ne sont généralement pas au top dans le logiciel libre. Le débutant sera légèrement perdu à cause du fait que la communauté francophone n'est pas très active dessus et qu'il peut arriver que selon vos centres d'intérêts, vous ne trouviez pas de quoi alimenter un flux d'information stable comme il est possible de le faire sur Twitter. S'il vous plait, créez des instances ouvertes, pas uniquement pour vous, si bien sûr vous le pouvez. Simplifiez les choses, communiquez, expliquez et peut-être qu'avec tout ça il y aura un peu plus de monde, car vraiment ce réseau vaut le coup de s'y pencher pour toutes les raisons abordées. D'autant que les libristes doivent nécessairement être convaincus par la construction de GnuSocial. À moins que là encore, ils soient touchés d'une amnésie passagère, comme quand on aborde le sujet "Gmail" ou "Github" (oui mais l'interface elle est cool, pis bon voilà tout le monde est dessus pis je fais ce que je veux)... "Dissonance cognitive" comme diraient certains.

Je vais donc garder cette instance et publier dessus tout en gardant la passerelle vers Twitter dans un premier temps. Quand j'aurai trouvé un peu de monde actif dessus, je fermerai mon compte Twitter, chose qui me trotte dans la tête depuis fin 2016. En parlant de ça, permettez-moi de faire un peu de promotion pour un article que j'ai apprécié, l'explication de Maxime Auvy sur la fermeture de son compte Twitter. Outre la fermeture de son compte (on s'en carre, c'est le pourquoi qui compte), il met en lumière certains points sociaux qui méritent que l'on s'y intéresse (le tout avec une plume humoristique et légèrement provocatrice, comme à l'habitude). C'est par ici.

Vous avez testé GnuSocial ? Vous avez un compte ou une instance ? Que vous en ayez ou pas, vous pouvez venir en causer sur les mailing lists, ou même sur GnuSocial !

A bientôt !

Article précédent