Comment installer Mastodon sur un serveur Ubuntu 20.04

Ce tutoriel va vous montrer comment installer Mastodon sur un serveur Ubuntu 20.04. Mastodon est un réseau social décentralisé à code source ouvert. C’est comme Twitter, mais décentralisé. Vous pouvez configurer une instance Mastodon sur votre serveur et vous connecter à d’autres instances Mastodon.

Note: Ubuntu 22.04 est livré avec OpenSSL 3.0. Mastodon n’est actuellement pas compatible avec OpenSSL 3.0.

Caractéristiques de Mastodon

  • Contrôle total des données. Vous pouvez télécharger tous vos messages et les migrer vers une autre instance.
  • Ne vous inquiétez jamais de la résiliation de votre compte par une organisation centrale.
  • Chaque instance de Mastodon peut définir ses propres règles.
  • Limite de 500 caractères par article.
  • Conception Web conviviale et réactive. Les utilisateurs peuvent lire ou poster depuis un ordinateur portable, une tablette et un téléphone.
  • Source ouverte à 100 %. Pas de version commerciale payante offrant des fonctionnalités meilleures ou plus complètes.
  • Des applications mobiles officielles pour Mastodon sont disponibles pour iOS et Android.
  • Et bien d’autres encore.

Mastodon est écrit avec React.js et Ruby on Rails, en utilisant PostgreSQL comme système de gestion de base de données back-end.

Conditions préalables

Voici ce que vous devez préparer avant de mettre en place votre propre instance Mastodon.

1. Un nom de domaine. Vous avez besoin d’un nom de domaine, afin que d’autres personnes puissent accéder à votre instance de Mastodon. J’ai enregistré mon nom de domaine chez NameCheap parce que le prix est bas et qu’ils offrent une protection gratuite de la confidentialité du whois à vie.

2. Un serveur. Pour faire fonctionner Mastodon, vous avez besoin d’un serveur avec au moins 2GB de RAM. Si vous recherchez un serveur privé virtuel (VPS), je vous recommande le Kamatera VPS, qui présente les caractéristiques suivantes :

  • 30 jours d’essai gratuit.
  • À partir de 4 $/mois (1 Go de RAM)
  • VPS haute performance basé sur KVM
  • 9 centres de données dans le monde entier, notamment aux États-Unis, au Canada, au Royaume-Uni, en Allemagne, aux Pays-Bas, à Hong Kong et en Israël.
  • Ajout à chaud de CPU et de RAM. Vous pouvez temporairement mettre à niveau le CPU et la RAM du serveur gratuitement, sans redémarrage.

Suivez le tutoriel lié ci-dessous pour créer votre serveur VPS Linux chez Kamatera.

  • Comment créer un serveur VPS Linux sur Kamatera

3. Service SMTP. Vous devez utiliser un serveur SMTP pour envoyer des emails pour l’enregistrement des comptes et diverses autres notifications. Vous pouvez configurer votre propre serveur de messagerie (ce qui prend un certain temps), ou utiliser un service de relais SMTP gratuit (plus facile).

Une fois que les conditions ci-dessus sont remplies, suivez les étapes ci-dessous pour installer Mastodon.

Etape 1 : Configurer le serveur de base de données PostgreSQL

Connectez-vous à votre serveur via SSH. PostgreSQL est disponible dans le dépôt par défaut d’Ubuntu. Cependant, l’équipe PostgreSQL s’efforce toujours d’améliorer les performances avec chaque nouvelle version, nous allons donc installer la dernière version de PostgreSQL depuis le dépôt amont.

Ajouter le dépôt amont.

echo "deb [signed-by=/etc/apt/keyrings/postgresql.asc] http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list

Importez la clé publique PostgreSQL.

sudo mkdir -p /etc/apt/keyrings/wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo tee /etc/apt/keyrings/postgresql.asc

Mettez à jour l’index du référentiel et installez PostgreSQL.

sudo apt updatesudo apt install -y postgresql postgresql-contrib

Le serveur de base de données PostgreSQL démarre automatiquement et écoute sur 127.0.0.1:5432, comme on peut le voir avec la commande suivante.

sudo ss -lnpt | grep postgres

postgresql create database for mastodon

Étape 2 : Installer Ruby sur Ubuntu 20.04

Mastodon nécessite Ruby 2.5 . Le dépôt d’Ubuntu 20.04 comprend le paquet Ruby, alors exécutez la commande suivante pour l’installer.

sudo apt install ruby ruby-dev

Pour vérifier votre numéro de version de Ruby, exécutez

ruby -v

Exemple de sortie :

ruby 2.7.4p191 (2021-07-07 révision a21a3b7d23) [x86_64-linux-gnu]

Étape 3 : Télécharger et configurer Mastodon

Créer l’utilisateur mastodon.

sudo adduser mastodon --system --group --disabled-login

Installez l’outil git.

sudo apt install git

Exécutez la commande suivante pour cloner le dépôt de code Mastodon depuis Github.

git clone https://github.com/tootsuite/mastodon.git

Créez le répertoire /var/www/, s’il n’est pas déjà créé.

sudo mkdir -p /var/www/

Déplacez le répertoire mastodon dans /var/www/.

sudo mv mastodon/ /var/www/

Changez le propriétaire en mastodon.

sudo chown mastodon:mastodon /var/www/mastodon/ -R

Changez de répertoire et consultez la dernière version stable de Mastodon. Vous pouvez aller sur la page Github releases pour voir la dernière version stable. J’utilise maintenant la version 3.5.3.

cd /var/www/mastodon/sudo -u mastodon git checkout v3.5.3

Installez bundler: le gestionnaire de dépendances Ruby.

sudo gem install bundler

Installez Node.js.

curl -sL https://deb.nodesource.com/setup_16.x | sudo bash -sudo apt install nodejs

Installez Yarn, un gestionnaire de paquets Node.js.

echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.listcurl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -sudo apt updatesudo apt -y install yarn

Installez les paquets requis pour compiler le code source.

sudo apt install redis-server optipng pngquant jhead jpegoptim gifsicle nodejs imagemagick ffmpeg libpq-dev libxml2-dev libxslt1-dev file g libprotobuf-dev protobuf-compiler pkg-config gcc autoconf bison build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm-dev libidn11-dev libicu-dev libjemalloc-dev

Installez ensuite les paquets de dépendance pour Mastodon.

sudo -u mastodon bundle config deployment 'true'sudo -u mastodon bundle config without 'development test'sudo -u mastodon bundle install -j$(getconf _NPROCESSORS_ONLN)

Exécutez l’assistant d’installation.

sudo -u mastodon RAILS_ENV=production bundle exec rake mastodon:setup

D’abord, il vous posera une série de questions.

  • Nom de domaine: Choisissez un nom de domaine à utiliser pour votre instance Mastodon. Par exemple, j’utilise social.linuxbabe.com.
  • Activer le mode utilisateur unique: Si vous souhaitez que les visiteurs puissent s’inscrire sur votre instance Mastodon, alors n’activez pas le mode utilisateur unique.
  • Utilisez-vous Docker pour faire fonctionner Mastodon? Non.
  • Hôte PostgreSQL: 127.0.0.1
  • Port PostgreSQL: 5432
  • Base de données PostgreSQL: mastodon
  • Utilisateur PostgreSQL : mastodon
  • Mot de passe de l’utilisateur PostgreSQL: entrez le mot de passe de l’utilisateur mastodon créé à l’étape 1.
  • Hôte Redis: 127.0.0.1
  • Port Redis: 6379
  • Mot de passe Redis: Appuyez simplement sur Entrée, car il n’y a pas de mot de passe pour Redis.
  • Voulez-vous stocker les fichiers téléchargés sur le nuage ? Si vous voulez stocker les fichiers téléchargés par les utilisateurs dans le stockage d’objets S3, vous pouvez choisir Oui. Je veux juste stocker les fichiers sur mon propre serveur, donc je choisis Non.
  • Voulez-vous envoyer des e-mails à partir de localhost ? S’il s’agit de votre serveur de messagerie, ou si vous avez configuré un relais SMTP, vous pouvez choisir Oui. Si vous choisissez Non, vous devez entrer les informations d’identification de votre serveur SMTP.
  • Adresse e-mail pour envoyer les e-mails "de": Vous pouvez appuyer sur Entrée pour utiliser l’adresse e-mail de l’expéditeur par défaut.
  • Envoyer un e-mail de test avec cette configuration dès maintenant ? Choisissez Oui pour envoyer un e-mail de test.
  • Envoyer un e-mail de test à: Saisissez l’adresse électronique de test.
  • Enregistrer la configuration ? Choisissez Oui.

mastodon Create a configuration file

Ensuite, choisissez Oui pour configurer la base de données.

Maintenant que la configuration est enregistrée, le schéma de la base de données doit être chargé.Si la base de données existe déjà, cela effacera son contenu.Préparer la base de données maintenant ? y

Enfin, choisissez Oui pour compiler les actifs CSS/JS.

La dernière étape est la compilation des actifs CSS/JS, ce qui peut prendre un certain temps et consommer beaucoup de RAM. (O/n) y

ubuntu mastodon setup wizard

Conseil: Si Mastodon ne compile pas, vous devez mettre à niveau le serveur avec 2 cœurs de CPU et 3G de RAM. Si vous utilisez Kamatera VPS, il vous permet de mettre temporairement à niveau le CPU et la RAM du serveur gratuitement sans redémarrage (Hot Add). Ensuite, exécutez à nouveau la commande suivante pour compiler les actifs CSS/JS de Mastodon. Assurez-vous de revenir aux spécifications initiales du serveur, afin que Kamatera ne vous facture pas de frais supplémentaires pour l’ajout à chaud de CPU/RAM.

sudo -u mastodon RAILS_ENV=production bundle exec rake mastodon:setup

Une fois que c’est fait, vous pouvez créer un utilisateur admin.

Voulez-vous créer immédiatement un utilisateur administrateur ? OuiNom d'utilisateur : super_adminE-mail : [email
sudo cp /var/www/mastodon/dist/mastodon*.service /etc/systemd/system/

Ensuite, nous devons apporter quelques modifications aux fichiers .service. Changez le répertoire de travail de /home/mastodon/live/ à /var/www/mastodon/.

sudo sed -i 's/home\/mastodon\/live/var\/www\/mastodon/g' /etc/systemd/system/mastodon-*.service

Remplacez /home/mastodon/.rbenv/shims/bundle par /usr/local/bin/bundle.

sudo sed -i 's/home\/mastodon\/.rbenv\/shims/usr\/local\\/bin/g' /etc/systemd/system/mastodon-*.service

Rechargez systemd pour que les modifications soient prises en compte.

sudo systemctl daemon-reload

Démarrez les 3 services systemd.

sudo systemctl enable --now mastodon-web mastodon-sidekiq mastodon-streaming

Vérifiez l'état. Assurez-vous qu'ils sont tous dans un état actif (en cours d'exécution).

sudo systemctl status mastodon-web mastodon-sidekiq mastodon-streaming

Attendez quelques secondes, puis exécutez la commande suivante pour vérifier si Mastodon est listé sur le port 3000.

sudo ss -lnpt | grep 3000

Si Mastodon fonctionne correctement, il devrait produire un résultat :

LISTEN 0 1024 127.0.0.1:3000 0.0.0.0:* users :(("ruby2.7",pid=43543,fd=5),("ruby2.7",pid=43535,fd=5),("ruby2.7",pid=43520,fd=5))

Si le port 3000 est déjà pris par un autre processus, vous devez modifier le fichier /etc/systemd/system/mastodon-web.service.

sudo nano etc/systemd/system/mastodon-web.service

Trouvez la ligne suivante.

Environment="PORT=3000"

Changez le numéro de port comme 3001, ainsi Mastodon écoutera sur le port 3001. Rechargez systemd et redémarrez Mastodon.

sudo systemctl daemon-reloadsudo systemctl restart mastodon-web

Étape 5 : Configurer le proxy inverse de Nginx

Installez le serveur web Nginx à partir du dépôt de logiciels par défaut d'Ubuntu 20.04.

sudo apt install nginx

Copiez le fichier de configuration du modèle Nginx.

sudo cp /var/www/mastodon/dist/nginx.conf /etc/nginx/conf.d/mastodon.conf

Editez le nouveau fichier.

sudo nano /etc/nginx/conf.d/mastodon.conf

Trouvez la ligne suivante à la fois dans le bloc serveur du port 80 et dans le bloc serveur du port 443.

nom_serveur exemple.com ;

Changez le nom du serveur. N'oubliez pas d'ajouter un enregistrement DNS A pour le nom de domaine.

nom_serveur social.exemple.com;

Trouvez la ligne suivante dans le bloc serveur du port 80 et le bloc serveur du port 443.

root /home/mastodon/live/public ;

Changez-le en :

root /var/www/mastodon/public ;

Trouvez les deux lignes suivantes.

 # ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;# ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem ;

Remplacez-les par ce qui suit, afin que Nginx utilise temporairement un certificat TLS auto-signé. Nous obtiendrons un certificat Let’s Encrypt valide plus tard.

ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key ;

Sauvegardez et fermez le fichier. Créez le répertoire de cache.

sudo mkdir -p /var/nginx/cache/

Testez ensuite la configuration de Nginx.

sudo nginx -t

Si le test est réussi, rechargez Nginx pour que les changements prennent effet.

sudo systemctl reload nginx

Vous devriez maintenant être en mesure de voir le forum Mastodon à l'adresse http://social.example.com.

Étape 7 : Activer HTTPS

Pour crypter le trafic HTTP, nous pouvons activer HTTPS en installant un certificat TLS gratuit émis par Let's Encrypt. Exécutez la commande suivante pour installer le client Let's Encrypt (certbot) sur le serveur Ubuntu 20.04.

sudo apt install certbot python3-certbot-nginx

Ensuite, exécutez la commande suivante pour obtenir et installer le certificat TLS.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email
  • --nginx: Utiliser le plugin nginx.
  • --agree-tos: Accepter les conditions de service.
  • --redirect: Force HTTPS par redirection 301.
  • --hsts: Ajouter l'en-tête Strict-Transport-Security à chaque réponse HTTP. Forcer le navigateur à toujours utiliser TLS pour le domaine. Se défend contre le dépouillement SSL/TLS.
  • --staple-ocsp: Active l'agrafage OCSP. Une réponse OCSP valide est agrafée au certificat que le serveur offre pendant TLS.
  • --email: une adresse e-mail est requise pour recevoir des notifications importantes par e-mail pour vos certificats TLS.

Le certificat devrait maintenant être obtenu et installé automatiquement.

mastodon letsencrypt https

Et vous pouvez accéder au forum Mastodon via HTTPS(https://social.example.com).

mastodon login page

Et vous pouvez vous connecter en utilisant le compte administrateur créé à l'étape 3. Après la connexion, vous devez changer le mot de passe.

Vous ne pouvez pas envoyer d'e-mails ?

Si Mastodon ne parvient pas à envoyer des e-mails, vous pouvez trouver ce qui n'a pas fonctionné en vous rendant à l'URL https://social.example.com/sidekiq/retries, en supposant que vous êtes connecté en tant qu'utilisateur administrateur.

Comment sauvegarder et restaurer la base de données Mastodon

Videz la base de données dans une archive tar.

sudo -u postgres -i pg_dump -F t mastodon > mastodon_pgsql.tar

Restaurez la base de données.

sudo -u postgres -i pg_restore --clean --dbname=mastodon /path/to/the/mastodon_pgsql.tar

Pour sauvegarder le dossier /var/www/mastodon/, je recommande d'utiliser Duplicati.

  • Utiliser Duplicati pour sauvegarder des fichiers sur Debian, Ubuntu, Linux Mint

Dépannage de l'erreur d'exécution de Mastodon

Si la page web de Mastodon ne fonctionne pas, vous devriez vérifier les journaux sysetmd.

sudo journalctl -eu mastodon-websudo journalctl -eu mastodon-sidekiqsudo journalctl -eu mastodon-streaming

Conclusion

J'espère que cet article vous a aidé à installer le logiciel de forum Mastodon sur Ubuntu 20.04. Comme toujours, si vous avez trouvé ce post utile, alors abonnez-vous à notre newsletter gratuite pour recevoir d'autres conseils et astuces. Prenez soin de vous 🙂 .

Scroll to Top