Tutoriel : comment (et pourquoi) j’ai créé une instance Mastodon

8 novembre 2022 à 23:24

Alors que Mastodon gagne en popularité, vous serez peut-être intéressés à l’idée de créer un serveur pour héberger votre propre instance du réseau social. Vous serez alors en plein contrôle de vos données et du service. Est-ce que je recommande de le faire? Non. Mais je l’ai fait quand même. Voici comment je m’y suis pris.

Avant toute chose : pourquoi le faire

Mastodon n’est pas un réseau social comme les autres. Contrairement à Twitter, Facebook, Friendster et Myspace, pour ne nommer que ceux-là, Mastodon est un service décentralisé, composé de centaines d’instances différentes. Ces instances sont en quelques sortes des mini réseaux sociaux indépendants, mais interreliés. Un utilisateur du serveur A va voir par défaut plus de messages des autres abonnés du serveur A, mais il pourra aussi suivre quelqu’un d’un serveur B.

Et puisque Mastodon est ouvert et gratuit, n’importe qui peut lancer sa propre instance, avec ses propres règles. Généralement, celles-ci sont créées autour d’un intérêt, d’une langue ou d’une géographie, mais souvent, le lien entre les différents usagers d’une instance est ténu (plusieurs joignent une instance par hasard).

Ceux qui créent des instances sont généralement motivés par la curiosité ou l’envie de collaborer avec les autres, mais certaines entreprises le font aussi pour se donner de la visibilité.

Et moi, pourquoi ai-je créé ma propre instance? Pour différentes raisons. J’aime l’idée de posséder mes données et le service que j’utilise, d’expérimenter avec la technologie et d’avoir ma propre adresse. Aussi, bien honnêtement, je n’ai trouvé aucune instance qui m’intéressait. Et la principale raison de toutes : parce que je le peux.

Est-ce que je recommande de le faire? Absolument pas. Vous allez perdre votre temps, et votre expérience sera moins intéressante que si vous aviez rejoint une instance à votre goût. Et comme je l’expliquais cette semaine dans L’actualité, je ne suis pas convaincu des chances de succès de Mastodon, du moins chez le grand public.

Bref, ne perdez pas votre temps. Cessez de lire ce billet immédiatement.

Mais admettons que vous voulez quand même votre serveur, voici un résumé de comment j’ai fait le miens, avec les grandes étapes, le raisonnement derrière mes choix et les leçons apprises.

Étape 1 : créer un serveur privé virtuel

Ce qu’il faut considérer

Vous pourriez créer un serveur Mastodon sur un ordinateur dans votre sous-sol, mais en pratique, il est plus simple de l’installer en ligne, chez un hébergeur qui offre un « serveur privé virtuel », soit un ordinateur virtuel sur lequel vous pouvez installer des logiciels (dont Mastodon).

J’ai fait trois serveurs au cours des derniers jours : un sur AWS, et deux sur Lightsail. J’ai abandonné celui sur AWS : les spécifications minimales pour faire un serveur abordable étaient insuffisantes pour Mastodon, et le site était d’une lenteur insupportable.

Pour le second (celui que j’utilise actuellement), j’ai opté pour Lightsail, une version plus facile à utiliser et moins chère de AWS. J’ai opté pour le serveur à 10$ USD par mois, soit le plus petit avec suffisamment de mémoire vive pour Mastodon (2 Go), qui a aussi l’avantage d’être gratuit pour 3 mois.

Parenthèse personnelle : si je suis encore intéressé par tout ceci dans 3 mois, je me tournerai probablement vers l’hébergeur OVHcloud, qui offre un serveur avec 2 Go de RAM pour 5,70$ CAD par mois, ou je transférerai mon site actuel vers le serveur que j’utilise pour Mastodon. C’est à voir.

Si vous consultez d’autres guides pour créer une instance Mastodon, vous remarquerez que la plupart proposent le service DigitalOcean. Mais leur offre ne me semble pas particulièrement avantageuse, j’ai surtout l’impression que c’est parce que les guides reçoivent de l’argent lorsqu’un utilisateur s’inscrit via leur article qu’ils proposent cette option.

Marche à suivre

1 – Ouvrez un compte AWS à partir de Lightsail.

2 – Cliquez sur le bouton Create instance sur la page d’accueil.

3 – Sélectionnez la localisation qui vous convient dans la section Instance location. Je vous suggère Montreal, Zone A (ca-central-1a), puisque vos données resteront au Québec.

4 – Sur la plateforme Linux, dans la section OS Only, sélectionnez Ubuntu 20.04 LTS.

5 – Sélectionnez le forfait 10$ USD.

6 – Donnez un nom à votre instance, comme Mastodon, puis cliquez sur Create instance.

Et voilà. Vous avez désormais un ordinateur virtuel dans le nuage.

Ce que vous avez fait

Vous venez de créer en moins d’une minute un ordinateur virtuel dans le nuage. Celui-ci est doté du système d’exploitation Ubuntu 20.04 LTS (Linux) de base, et fonctionne avec plusieurs autres sur un ordinateur, physique celui-là, dans un centre de données à Montréal.

Vous pourriez installer n’importe quoi sur ce serveur : un serveur web, un serveur Minecraft, etc. Mais aujourd’hui, on va s’en servir pour créer un serveur Mastodon.

Étape 2 : obtenir une adresse Web et une adresse courriel

Ce qu’il faut considérer

Vous aurez besoin de deux autres choses avant d’installer Mastodon : un nom de domaine web et une adresse courriel pouvant être utilisée pour envoyer des courriels. C’est la partie plate du guide.

Vous pouvez obtenir ces derniers à de nombreux endroits.

Par souci de simplicité, j’ai effectué le présent guide avec GoDaddy comme fournisseur de nom de domaines, puisque j’y possédais déjà une vieille adresse web, j’ai donc pu faire ce guide sans en acheter une nouvelle. GoDaddy, comme plusieurs autres services du genre (mais pas Google Domains), s’intègre aussi bien avec Cloudron, la plateforme que nous allons utiliser plus tard pour installer Mastodon. Pour les curieux, mon serveur Mastodon à moi est plutôt sur Google Domains, un service qui s’intègre toutefois plus difficilement à Cloudron. Vous pouvez utiliser le service que vous voulez.

Vous aurez aussi besoin d’une adresse courriel dont vous possédez les accès SMTP.  La plupart des guides suggèrent Mailgun pour obtenir cette adresse. C’est une option simple, qui ne coûte que 1$ pour 1000 courriels une fois la période d’essai terminée.

J’ai pour ma part plutôt utilisé ImprovMX, qui permet de rediriger gratuitement les courriels de son nom de domaine vers une autre adresse, et qui permet aussi (après avoir fait un petit tour de passe-passe) d’en envoyer avec un accès SMTP, via Gmail.

Je serai bref dans mes indications, puisque chaque site explique bien la marche à suivre.

Marche à suivre

1 – Créez un compte sur un fournisseur de nom de domaines, comme GoDaddy.

2 – Dans la barre de recherche, entrez le nom de domaine que vous voulez acheter. Faites bien attention au prix à long terme du nom de domaine. Mastodonquebec.com coûte par exemple 0,01$ pour la première année si vous payez pour 2 ans d’un coup, puis coûtera 26,99$ par la suite. Les noms avec les nouveaux suffixes complexes coûtent toutefois beaucoup plus cher à long terme. Mastodonquebec.online coûte ainsi 0,99$ la première année, puis 67,45$ par la suite.

3 – Cliquez sur Make it yours et suivez les instructions à l’écran pour acheter votre nom de domaine.

4 – Accédez à la liste de vos noms de domaine (à partir d’ici) et cliquez sur celui que vous venez de créer. Vous pourriez créer une adresse courriel ici. Ce serait simple, mais vous payeriez inutilement cher. Cliquez ensuite sur Manage DNS.

5 – À partir d’une autre fenêtre, accédez à ImprovMX. Dans la barre de texte au centre de la page, entrez votre nom de domaine à gauche, puis votre adresse courriel à laquelle vous voulez recevoir vos messages (votre Gmail personnel dans ce cas-ci). Cliquez sur Create a free alias.

6 – Après avoir vérifié votre adresse courriel, suivez les indications à l’écran. En gros, vous aurez besoin de cliquer en premier lieu sur « Email forwarding needs setup », et ImprovMX vous donnera deux lignes à entrer dans le DNS de GoDaddy, ouvert dans l’autre fenêtre. En haut à droite de la page, cliquez sur Step-By-Step pour obtenir les instructions étape par étape, en fonction de votre fournisseur de noms de domaine. Je suis bref ici, car il y a beaucoup d’étapes à suivre, mais qu’elles sont simples et bien expliquées.

7 – Une fois votre courriel relié à votre nom de domaine, cliquez sur Aliases dans votre compte ImprovMX et créez une nouvelle adresse (Mastodon.App@votrenomdedomaine.com), et redirigez là vers votre compte Gmail. Si vous le voulez, vous pouvez aussi en créer une seconde, par exemple votrenom@votrenomdedomaine.com, que vous redirigerez vers l’adresse de votre choix, que vous possédez déjà.

8 – Ne fermez pas les fenêtres de GoDaddy et d’ImprovMX, puisque vous en aurez besoin plus tard.

Ce que vous avez fait

Vous possédez maintenant un nom de domaine pour votre serveur Mastodon. Si vous l’entrez dans un navigateur web, rien ne se passera toutefois pour l’instant, puisqu’il n’est pas encore relié à l’adresse IP de votre serveur.

Vous avez aussi créé une adresse courriel allant avec ce nom de domaine. Vous pouvez déjà recevoir des courriels à cette adresse. Si vous avez suivi les instructions mentionnées ici, les courriels envoyés aux deux alias créés seront redirigés automatiquement vers votre adresse personnelle. Vous ne pouvez toutefois pas encore envoyer de courriel avec ces adresses (ça s’en vient).

Étape 3 : installer Cloudron

Les étapes que vous avez réalisées jusqu’ici sont essentielles pour n’importe quelle installation de Mastodon. À ce point du guide, les stratégies que vous retrouverez sur le web pour procéder à la suite des choses varient toutefois beaucoup d’un guide à l’autre.

La façon la plus pure de procéder à l’installation serait de suivre le guide officiel, ici. Aucune étape n’est difficile, mais vous aurez beaucoup de logiciels à installer et de codes à entrer dans Ubuntu.

Pour ma part, je n’étais pas chaud à l’idée. J’ai plutôt choisi d’utiliser Cloudron, un outil pour développeurs qui installe des applications automatiquement sur les serveurs privés virtuels, dont Mastodon. Ça me semblait plus simple, avec moins de risques de faire d’erreur, et en plus, c’est gratuit. Ce n’est toutefois pas le seul moyen de le faire, et je ne dis pas non plus que c’est le meilleur. Mais ça a bien fonctionné pour moi.

Marche à suivre

1 – Accédez à votre serveur privé virtuel. Si vous avez utilisé Amazon Lightsail, il suffit d’aller sur la page d’accueil de vos instances (ici), et de cliquer sur le petit rectangle orange avec le symbole « <_ » au côté du nom de votre instance nouvellement créée. Ce lien devrait ouvrir une page avec un accès Terminal au serveur. Si vous n’avez jamais utilisé Linux, c’est un peu comme DOS à une autre époque, ou comme l’Invite de commandes dans Windows. Si vous avez utilisé un autre service que Lightsail pour créer votre VPS, vous devrez créer un lien SSH avec un logiciel spécialisé (j’utilise personnellement Bitvise SSH Client) pour y accéder.

2 – Maintenant que vous êtes dans votre ordinateur virtuel, vous devez y installer Cloudron. Pour les prochaines étapes, je vous suggère de suivre la documentation officielle, ici, puisqu’elle permet d’avoir des exemples en fonction des services que vous utilisez vraiment, et qu’elle est complète.

3 – Si vous préférez mes indications (je ne vous juge pas), accédez au Terminal que vous avez ouvert à l’étape 2, et inscrivez ces commandes, une ligne à la fois, en appuyant sur Retour après chaque ligne. Attention : vous ne pouvez pas coller avec Ctrl-V dans le Terminal, vous devez plutôt cliquer avec le bouton droit de votre souris, et sélectionner coller.

wget https://cloudron.io/cloudron-setup

chmod +x cloudron-setup

sudo ./cloudron-setup

4 – Vous aurez l’impression qu’il ne se passe rien après avoir entré les deux premières commandes. La seconde est plus longue. Patientez. L’installation prend quelques minutes, après quoi il vous faudra redémarrer l’instance en appuyant sur Y lorsqu’on vous demande si vous voulez redémarrer. Vous pouvez aussi le faire en entrant « sudo reboot »

5 – Cloudron vous indiquera une adresse IP à suivre. Notez-la (incluant le https:// devant), et essayez de la suivre. Dans Chrome, vous devrez cliquer sur Paramètres avancés pour dire que vous voulez suivre le lien, même s’il n’est pas protégé. Si cette partie a fonctionné, passez au point 7. Sinon, passez au point 6.

6 – Si votre site n’est pas accessible (Connection timed out), ouvrez Lightsail, cliquez sur le nom de votre instance et accédez à l’onglet Networking. Vous devez permettre aux connexions externes de rejoindre votre serveur en HTTPS. Dans la section IPv4 Firewall, cliquez sur Add rule, puis sélectionnez l’application HTTPS (conservez les autres paramètres par défaut). Cliquez sur Create pour créer la règle. Votre site devrait maintenant être accessible à l’adresse IP notée précédemment.

7 – Vous devez maintenant relier votre Cloudron à votre adresse web en remplissant les cases à l’écran. Suivez le même guide officiel, plus complet que ce que je pourrais faire ici, et spécifique à chaque fournisseur de noms de domaine, pour savoir comment procéder.

En résumé, si vous avez pris GoDaddy comme dans l’exemple plus haut, vous devrez simplement créer une clé API à partir du portail pour développeurs. Vous n’aurez qu’une clé et un code à entrer dans Cloudron pour qu’il puisse paramétrer automatiquement votre nom de domaine. La procédure est sensiblement la même pour tous les vendeurs de noms, et vous pouvez aussi changer les paramètres du vôtre manuellement s’il n’est pas sur la liste (c’est ce que j’avais fait).

9 – Vous devrez ensuite créer un compte Cloudron pour votre instance locale pour compléter l’installation de Cloudron. Attention : le nom que vous créerez sera celui qui vous sera attribué par défaut sur votre compte Mastodon par la suite. Tout ceci se change, mais par souci de simplicité, choisissez tout de suite le nom que vous voulez.

Ce que vous avez fait

À cette étape, vous avez installé Cloudron sur le serveur que vous aviez créé plus tôt. Cloudron est un outil qui permet d’installer automatiquement des applications sur votre serveur, comme Mastodon et WordPress. C’est un peu comme une boutique d’applications pour les serveurs privés virtuels.

Vous avez aussi donné à Cloudron la permission de programmer votre nom de domaine pour qu’il soit redirigé vers votre serveur.

Étape 4 : installer Mastodon

Ce qu’il faut considérer

Rendu ici, il n’y a plus vraiment de questions à se poser : vous devez suivre les indications dans les guides de Cloudron et de Mastodon.

Marche à suivre

1 – Accédez au tableau de bord de Cloudron à partir de l’adresse my.votrenomdedomaine.com.

2 – Cliquez sur App Store

3 – Créez un compte pour le site cloudron.io. Il ne s’agit pas du compte que vous utilisez pour accéder à votre instance locale, mais celui que vous allez utiliser pour télécharger des applications Cloudron.

4 – Trouvez Mastodon dans la liste des applications, cliquez sur le logo et cliquez sur Install.

5 – Choisissez si vous souhaitez que votre serveur soit accessible à la racine de votre domaine (exemple : votrenomdedomaine.com), vous devrez alors laisser la barre de texte vide, ou entrez un sous-domaine (comme mastodon.votrenomdedomaine.com). Cliquez sur Install. Le processus devrait prendre quelques minutes.

Ce que vous avez fait

Vous avez créé votre serveur Mastodon. Si vous allez à son adresse (exemple : mastodon.votrenomdedomaine.com), vous devriez le voir en ligne. En bas à droite, vous noterez qu’aucun administrateur n’a été défini, et que le serveur ne compte aucun utilisateur.

Étape 5 : modifier les paramètres de Mastodon

Ce qu’il faut considérer

Vous devez maintenant vous assurer de créer votre utilisateur Mastodon, et de le rendre administrateur. Vous devrez aussi vous assurer que votre instance est capable d’envoyer des courriels. Ensuite, vous pourrez modifier les paramètres du réseau à votre guise, pour accepter ou non d’autres utilisateurs, par exemple, créer des règles de modération, changer la langue, etc.

Je vous laisserai faire cette dernière partie seul, mais voici quand quelques instructions pour la création de votre compte Mastodon avec Cloudron, puisque le guide officiel est cette fois-ci un peu moins intuitif.

 

Marche à suivre

1 – Accédez à votre instance Mastodon (exemple :  mastodon.votrenomdedomaine.com).

2 – Enregistrez-vous. Vous devrez utiliser l’adresse courriel et le mot de passe que vous avez utilisé plus tôt pour créer votre compte Cloudron local. Votre compte Mastodon est maintenant créé et associé à votre instance Mastodon. Vous pourrez changer votre description et ajouter des gens, mais je vous suggère plutôt d’attendre que votre instance soit prête pour ça.

3 – Vous devez maintenant donner des privilèges d’administrateur à votre compte, et c’est ici que ça se complique légèrement (ou du moins que le guide officiel de Cloudron pour Mastodon pourrait être plus clair). Retournez à votre compte local Cloudron, à l’adresse my.votrenomdedomaine.com, placez votre curseur devant le logo Mastodon et cliquez sur l’engrenage.

4 – Vous devriez maintenant voir les paramètres Mastodon de votre interface Cloudron. C’est ici que vous pouvez changer par exemple l’adresse courriel que votre instance utilisera pour vous contacter, créer des copies de sauvegarde de votre Mastodon, etc. Cliquez sur le signe « >_ » en haut à droite de la fenêtre, qui vous permet d’ouvrir une fenêtre du Terminal de votre Cloudron (c’est cette partie qui pourrait être plus claire dans le guide).

5 – Entrez la commande suivante pour donner un rôle d’administrateur à votre compte : « bin/tootctl accounts modify VOTRENOMDUTILISATEUR –role admin », puis appuyez sur Retour. Après quelques instants, un OK vert devrait apparaître, signifiant que vous possédez maintenant les privilèges administrateurs.

6 – Pendant que vous êtes dans Cloudron, enregistrer les paramètres de votre serveur courriel, dans l’onglet Email de votre application Mastodon, dans l’interface Cloudron (je sais, c’est complexe, mais vous pouvez aussi y accéder directement à cette adresse : https://my.votrenomdedomaine.com/#/email.

7 – Cliquez sur le logo de crayon en haut à droite pour entrer vos informations SMTP. Sélectionnez l’onglet Outbound, puis Google dans le menu déroulant. Vous devrez alors entrer le nom d’utilisateur et le mot de passe du serveur courriel Google de votre adresse web mastodon.app@votrenomdedomaine.com. Vous obtiendrez ces identifiants au point 8. Ne fermez pas cet onglet.

8 – Suivez les instructions de ce guide ImprovMX pour obtenir vos identifiants SMTP de Google. Le guide vous permet d’envoyer des courriels avec votre Gmail directement (ce qui est pratique et que vous pouvez faire par la même occasion). Utilisez ces mêmes identifiants pour remplir le formulaire au point 7. Appuyez sur Save.

9 – Ajustez maintenant les paramètres de votre instance à votre goût, à partir de mastodon.votrenomdedomaine.com/settings. Je vous suggère de visiter chacun des menus, ce qui vous permettra de vous assurer que vous n’oubliez rien, mais aussi de comprendre un peu mieux comment Mastodon fonctionne.

Si vous souhaitez créer une véritable instance Mastodon publique, vous devrez probablement modifier quelques paramètres supplémentaires, notamment pour optimiser les performances du serveur et mieux gérer le stockage de documents (sur un site d’hébergement de fichiers distinct, comme Amazon S3 ou un autre service du genre).

Ce que vous avez fait

Votre instance Mastodon est maintenant prête à être partagée au monde entier, ou seulement à quelques-uns de vos amis, si c’est ce que vous voulez. Tel Elon Musk avec Twitter, c’est vous qui tirez les ficelles.