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
É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 choisisNon
. - 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 choisissezNon
, 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
.
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
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 : [emailsudo 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-*.serviceRemplacez
/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-*.serviceRechargez systemd pour que les modifications soient prises en compte.
sudo systemctl daemon-reloadDémarrez les 3 services systemd.
sudo systemctl enable --now mastodon-web mastodon-sidekiq mastodon-streamingVé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-streamingAttendez quelques secondes, puis exécutez la commande suivante pour vérifier si Mastodon est listé sur le port 3000.
sudo ss -lnpt | grep 3000Si 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.serviceTrouvez 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 nginxCopiez le fichier de configuration du modèle Nginx.
sudo cp /var/www/mastodon/dist/nginx.conf /etc/nginx/conf.d/mastodon.confEditez le nouveau fichier.
sudo nano /etc/nginx/conf.d/mastodon.confTrouvez 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 -tSi le test est réussi, rechargez Nginx pour que les changements prennent effet.
sudo systemctl reload nginxVous 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-nginxEnsuite, 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.
Et vous pouvez accéder au forum Mastodon via HTTPS(https://social.example.com)
.
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 🙂 .