Mastodon server : créer une instance étape par étape

Avec votre propre serveur Mastodon, vous avez le contrôle total de vos données et de la modération de votre communauté. Vous obtenez ainsi une expérience utilisateur personnalisée, conforme à la protection des données et sans publicité.

Mastodon server : quelles sont les conditions préalables requises ?

Vous pouvez commencer votre serveur à petite échelle pour ensuite le développer selon vos besoins afin de suivre la croissance de votre communauté. Pour mettre en place un serveur Mastodon, vous avez besoin de :

  • Un VPS ou un autre serveur : bien que vous puissiez également faire fonctionner Mastodon sur un serveur local, un serveur privé virtuel (VPS) est une solution plus flexible et facile à gérer. Ce serveur devrait de préférence utiliser Ubuntu 20.04 ou Debian 11 comme système d’exploitation et vous donner un accès root pour effectuer les configurations nécessaires.
  • Un domaine ou sous-domaine : vous avez besoin d’un domaine ou d’un sous-domaine personnel pour identifier votre serveur Mastodon. Cela permet aux utilisateurs de trouver votre instance et de s’y connecter.
Domain checker
  • Une haute disponibilité : votre serveur doit être en ligne 24h/24 et 7j/7 pour que d’autres utilisateurs puissent utiliser votre instance Mastodon.
  • Un fournisseur de messagerie : Mastodon envoie des notifications et des liens de confirmation par email, vous avez donc besoin d’un fournisseur de messagerie pour prendre en charge ces fonctionnalités. Vous pouvez installer votre propre serveur SMTP. Toutefois, un logiciel tiers est généralement plus pratique. Mastodon recommande entre autres Mailgun, SparkPost ou Sendgrid.
  • Une solution de stockage object (facultatif) : il est conseillé d’utiliser un fournisseur de stockage d’objets compatible avec Amazon S3, car Mastodon stocke des données telles que des images, des vidéos et d’autres médias sur le serveur. L’espace de stockage supplémentaire garantit le bon fonctionnement de votre instance Mastodon et offre suffisamment de place pour les données des utilisateurs.
IONOS Object Storage
Stockage de données sûr et économique

Augmentez votre rentabilité grâce à un stockage évolutif, qui s'intègre à vos scénarios d'application.

Votre serveur doit également répondre aux exigences techniques minimales suivantes :

  • CPU/puissance de calcul : min. 2 cœurs
  • RAM/mémoire vive : min. 2 Go
  • Espace disque : min. 30 Go

Mastodon utilise une base de données (PostgreSQL) pour stocker les données des utilisateurs et d’autres informations. Si le nombre d’utilisateurs sur votre instance est important, les accès à la base de données peuvent être nombreux. Assurez-vous que votre base de données est bien optimisée et que vous disposez de suffisamment de ressources (CPU et RAM) pour gérer efficacement ces accès.

Mastodon server : l’héberger avec IONOS VPS

Vous souhaitez commencer à mettre en place votre propre instance Mastodon, mais vous n’êtes pas sûr du plan VPS qui répondra à vos besoins ? IONOS vous propose des forfaits VPS performants avec des ressources dédiées et un trafic illimité, et ce à des prix abordables !

Pour un simple serveur Mastodon, l’offre VPS Linux S de IONOS est le choix parfait. Vous obtenez 80 Go d’espace de stockage et jusqu’à 1 Gbit/s de bande passante. Si vous avez besoin de plus de ressources, vous pouvez ajouter des fonctions supplémentaires à tout moment après l’achat ou passer à un plan plus performant.

Scénarios de serveur Mastodon possibles et tarifs IONOS correspondants

Lorsque vous choisissez un VPS, vous devez évaluer le nombre potentiel d’utilisateurs de votre instance Mastodon. En fonction du trafic attendu, nous recommandons les tarifs IONOS suivants :

Scénario de serveur Mastodon Serveur VPS IONOS correspondant
Jusqu’à 100 personnes VPS Linux M
De 100 à 1 000 personnes VPS Linux L
De 1 000 à 10 000 personnes VPS Linux XL
À partir de 10 000 personnes VPS Linux XXL

De plus, vous pouvez également faire fonctionner votre serveur Mastodon en parallèle avec d’autres services. Si votre communauté est assez restreinte, vous pouvez commencer avec ces tarifs :

Scénario de serveur Mastodon Serveur VPS IONOS adapté
Exploitation parallèle d’un site Web simple VPS Linux M
Exploitation parallèle d’un serveur vocal VPS Linux M
Exploitation parallèle d’une boutique en ligne VPS Linux L

Créer un serveur Mastodon : instructions étape par étape

Étape 1 : préparer le serveur

Choisissez le système d’exploitation lors de la configuration du serveur. Mastodon fonctionne mieux sous Ubuntu 20.04 et Debian 11. Si vous en avez la possibilité, choisissez l’un de ces systèmes d’exploitation. Une fois votre VPS configuré, connectez-vous à votre serveur via SSH. Utilisez pour cela un terminal (Linux/Mac) ou un client SSH comme PuTTY (Windows).

ssh root@your_server_ip
bash

Remplacez your_server_ip par l’adresse IP de votre VPS.

Pour protéger votre système, vous devez utiliser des clés SSH et configurer des règles de pare-feu avec iptables pour ne laisser ouverts que les ports HTTP(S) et SSH. Ensuite, vous devez faire pointer l’enregistrement A de votre domaine ou sous-domaine vers l’adresse IP du VPS. Pour IPv6, ajoutez également un enregistrement AAAA.

Effectuez une mise à jour du gestionnaire de paquets et des paquets système :

apt update && apt upgrade -y
bash

Étape 2 : installer les paquets nécessaires

Mastodon nécessite plusieurs paquets et dépendances pour fonctionner correctement. Ceux-ci comprennent entre autres Node.js, Yarn, PostgreSQL, Redis et Nginx.

Installez d’abord les paquets de base :

apt install -y curl wget gnupg apt-transport-https lsb-release ca-certificates
bash

Node.js

curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list
bash

PostgreSQL

wget -O /usr/share/keyrings/postgresql.asc https://www.postgresql.org/media/keys/ACCC4CF8.asc
echo "deb [signed-by=/usr/share/keyrings/postgresql.asc] http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/postgresql.list
bash

Paquets système

apt update
bash
apt install -y imagemagick ffmpeg libpq-dev libxml2-dev libxslt1-dev file git-core 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 nginx nodejs redis-server redis-tools postgresql postgresql-contrib certbot python3-certbot-nginx libidn11-dev libicu-dev libjemalloc-dev
bash

Yarn

corepack enable
yarn set version classic
bash

Ruby

Mastodon est écrit en Ruby et nécessite donc Ruby et Bundler. Pour cela, créez d’abord l’utilisateur sous lequel Mastodon doit fonctionner :

adduser --disabled-login mastodon
bash

Maintenant, passez au compte utilisateur que vous avez créé :

su - mastodon
bash

Installez rbenv et rbenv-build :

git clone https://github.com/rbenv/rbenv.git ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
exec bash
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
bash

Une fois cela terminé, installez la bonne version de Ruby et le bundler :

RUBY_CONFIGURE_OPTS=--with-jemalloc rbenv install 3.2.3
rbenv global 3.2.3
gem install bundler --no-document
bash

Retournez à l’utilisateur root avec exit.

Étape 3 : configurer PostgreSQL

PostgreSQL est utilisé par le serveur Mastodon pour stocker et gérer les données. Vous avez déjà installé le serveur de base de données à l’étape précédente. Passez à l’utilisateur Postgres pour accéder au shell PostgreSQL :

sudo -u postgres psql
bash

Mastodon se connecte au serveur de base de données sans mot de passe. Par conséquent, le nom d’utilisateur du système Linux et le nom d’utilisateur de la base de données doivent être identiques. Dans le shell PostgreSQL, exécutez les commandes suivantes pour créer la base de données :

CREATE USER mastodon CREATEDB;
\q
sql

Vous pouvez améliorer les performances de votre base de données PostgreSQL en l’ajustant aux ressources système disponibles. Un outil utile pour cela est le générateur de configuration pgTune. En fournissant des informations telles que le nombre de cœurs du processeur et la taille de la RAM, vous obtiendrez une configuration PostgreSQL optimisée à insérer dans le fichier postgresql.conf.

Étape 4 : installer Mastodon

Ensuite, retournez à l’utilisateur de Mastodon :

su - mastodon
bash

Téléchargez la dernière version de Mastodon :

git clone https://github.com/mastodon/mastodon.git live && cd live
git checkout $(git tag -l | grep '^v[0-9.]*$' | sort -V | tail -n 1)
bash

Installez également les dépendances Ruby et JavaScript :

bundle config deployment 'true'
bundle config without 'test de développement'
bundle install -j$(getconf _NPROCESSORS_ONLN)
yarn install --pure-lockfile
bash

Exécutez l’assistant d’installation de Mastodon :

RAILS_ENV=bundle de production exec rake mastodon:setup
bash

Vous allez maintenant être interrogé sur différents réglages, qui seront finalement enregistrés dans le fichier .env.production.

  • Domain name : indiquer le nom de domaine du serveur VPS
  • Do you want to enable single user mode? : N
  • Are you using Docker to run Mastodon? : N
  • PostgreSQL host : par défaut - Entrée
  • PostgreSQL port : par défaut - Entrée
  • Name of PostgreSQL database : par défaut - Entrée
  • Name of PostgreSQL user : par défaut - Entrée
  • Password of PostgreSQL user : laisser vide - Entrée
  • Redis host : par défaut - Entrée
  • Redis port : par défaut - Entrée
  • Redis password : par défaut - Entrée
  • Do you want to store uploaded files on the cloud? : N
  • Do you want to send e-mails from localhost? : N
  • SMTP server : indiquer le serveur SMTP
  • SMTP port : indiquer le port du serveur SMTP
  • SMTP username : nom d’utilisateur pour la connexion
  • SMTP authentication : plain (simple)
  • SMTP OpenSSL verify mode : aucun
  • E-mail address to send e-mails “from” : généralement comme le login SMTP
  • Send a test e-mail with this configuration right now? : Y
  • Send test e-mail to : indiquer n’importe quelle adresse email comme destinataire
  • Save configuration? : Y
  • Prepare the database now? : Y
  • Compile the assets now? : Y
  • Do you want to create an admin user straight away? : Y
  • Username : admin
  • E-mail : adresse email personnelle

Revenez à l’utilisateur root :

exit
bash

Étape 5 : installer le certificat SSL

Les serveurs VPS de IONOS sont livrés avec un certificat SSL par défaut. Mais si votre configuration ne contient pas de certificat, vous pouvez facilement l’installer ultérieurement.

Vous pouvez obtenir un certificat SSL gratuit de Let’s Encrypt. Let’s Encrypt propose des certificats automatisés qui sont faciles à installer et à renouveler.

certbot certonly --nginx -d example.com
bash

Le certificat est stocké dans le dossier /etc/letsencrypt/live/example.com/ sur votre serveur Mastodon.

Étape 6 : configurer Nginx

Vous devez copier le template de configuration pour Nginx depuis le répertoire de Mastodon et le coller dans le répertoire sites-available de Nginx :

cp /home/mastodon/live/dist/nginx.conf /etc/nginx/sites-available/mastodon
bash

Créez un lien symbolique du fichier de configuration dans sites-enabled pour l’activer et supprimez la configuration par défaut :

ln -s /etc/nginx/sites-available/mastodon /etc/nginx/sites-enabled/mastodon
rm /etc/nginx/sites-enabled/default
bash

Ouvrez le fichier de configuration de votre serveur Mastodon :

nano /etc/nginx/sites-available/mastodon
bash

Inscrivez votre propre nom de domaine au lieu de example.com.

Décommentez les lignes ssl_certificate et ssl_certificate_key, puis remplacez les chemins d’accès par ceux de votre certificat SSL. Si vous utilisez le certificat auto-signé par défaut, laissez les chemins inchangés :

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

Une fois que vous avez ajusté la configuration, vous devez recharger Nginx pour que les changements prennent effet :

systemctl reload nginx
bash

Étape 7 : configurer les services Systemd

Si vous configurez les services Systemd, l’application Web Mastodon ainsi que les fonctionnalités de live stream démarreront automatiquement lors du démarrage du serveur. Cela assure que votre instance de Mastodon est continuellement opérationnelle.

Copiez les templates de service Systemd de Mastodon dans le répertoire correspondant :

cp /home/mastodon/live/dist/mastodon-*.service /etc/systemd/system/
bash

Si vous avez personnalisé des valeurs par rapport aux paramètres par défaut à un moment donné, assurez-vous que le nom d’utilisateur et les chemins d’accès sont correctement configurés dans les modèles de service :

$EDITOR /etc/systemd/system/mastodon-*.service
bash

Démarrez et activez les services Systemd :

systemctl daemon-reload
systemctl enable --now mastodon-web mastodon-sidekiq mastodon-streaming
bash
  • systemctl daemon-reload : met à jour la configuration de Systemd pour prendre en compte les nouveaux templates de service.
  • systemctl enable –now mastodon-web mastodon-sidekiq mastodon-streaming : ces services sont responsables de l’application Web, du traitement en arrière-plan et des fonctions de streaming en direct de Mastodon.

Étape 8 : modifier la limite de caractères

En gérant votre propre serveur Mastodon, vous bénéficiez de la liberté de personnaliser des paramètres qui ne sont généralement pas modifiables sur les serveurs publics. Par exemple, vous pouvez ajuster la limite de caractères des messages. Par défaut, cette limite est fixée à 500 caractères ; sur votre propre instance, vous avez la possibilité de l’augmenter ou de la réduire selon vos préférences.

Pour commencer, vous devez passer à l’utilisateur Mastodon dans la console. Ensuite, vous devrez modifier deux fichiers spécifiques.

Dans ces fichiers, spécifiez la valeur désirée pour la limite de caractères :

  • compose_form.js dans le répertoire ~/live/app/javascript/mastodon/features/compose/components/
  • status_length_validator.rb dans ~/live/app/validators/

Dans le fichier instance_serializer.rb du répertoire ~/live/app/serializers/rest/, trouvez la ligne où se trouve :languages, :registrations, et ajoutez :max_toot_chars, derrière.

Sous la ligne qui commence par private, ajoutez ensuite le code suivant avec la valeur souhaitée :

def max_toot_chars
    1000
end
ruby

Après avoir effectué ces modifications, les services Mastodon doivent être redémarrés. Cela se fait en tant qu’utilisateur root avec la commande :

service mastodon-* restart
bash

Vous pouvez maintenant écrire des messages avec une limite de 1000 caractères.

Étape 9 : gérer la modération

La fonction de modération accessible via « Paramètres > Modération » sur votre serveur Mastodon permet à l’administrateur de surveiller et de contrôler le contenu ainsi que l’activité des utilisateurs sur votre instance, assurant ainsi le respect des Règles de la communauté et la suppression de tout contenu indésirable.

En tant qu’administrateur, vous avez la capacité de bloquer ou débloquer des comptes individuels, des domaines, des adresses IP ou des serveurs de messagerie, ainsi que de supprimer des comptes d’utilisateurs. De plus, vous pouvez modérer les contenus publiés par les utilisateurs en supprimant ou en modifiant les contributions inappropriées ou offensantes.

Cet article vous a-t-il été utile ?
Page top