Avec votre propre serveur Mastodon, vous avez le contrôle total de vos données et de la mo­dé­ra­tion de votre com­mu­nauté. Vous obtenez ainsi une ex­pé­rience uti­li­sa­teur per­son­na­li­sée, conforme à la pro­tec­tion des données et sans publicité.

Mastodon server : quelles sont les con­di­tions préa­lables requises ?

Vous pouvez commencer votre serveur à petite échelle pour ensuite le dé­ve­lop­per selon vos besoins afin de suivre la crois­sance de votre com­mu­nauté. Pour mettre en place un serveur Mastodon, vous avez besoin de :

  • Un VPS ou un autre serveur : bien que vous puissiez également faire fonc­tion­ner 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’ex­ploi­ta­tion et vous donner un accès root pour effectuer les con­fi­gu­ra­tions né­ces­saires.
  • Un domaine ou sous-domaine : vous avez besoin d’un domaine ou d’un sous-domaine personnel pour iden­ti­fier votre serveur Mastodon. Cela permet aux uti­li­sa­teurs de trouver votre instance et de s’y connecter.
Domain checker
  • Une haute dis­po­ni­bi­lité : votre serveur doit être en ligne 24h/24 et 7j/7 pour que d’autres uti­li­sa­teurs puissent utiliser votre instance Mastodon.
  • Un four­nis­seur de mes­sa­ge­rie : Mastodon envoie des no­ti­fi­ca­tions et des liens de con­fir­ma­tion par email, vous avez donc besoin d’un four­nis­seur de mes­sa­ge­rie pour prendre en charge ces fonc­tion­na­li­tés. Vous pouvez installer votre propre serveur SMTP. Toutefois, un logiciel tiers est gé­né­ra­le­ment plus pratique. Mastodon re­com­mande entre autres Mailgun, SparkPost ou Sendgrid.
  • Une solution de stockage object (fa­cul­ta­tif) : il est conseillé d’utiliser un four­nis­seur de stockage d’objets com­pa­tible 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 sup­plé­men­taire garantit le bon fonc­tion­ne­ment de votre instance Mastodon et offre suf­fi­sam­ment de place pour les données des uti­li­sa­teurs.
IONOS Cloud Object Storage
Stockage de données sûr et éco­no­mique

Augmentez votre ren­ta­bi­lité grâce à un stockage évolutif, qui s'intègre à vos scénarios d'ap­pli­ca­tion. Vos données sont protégées par nos serveurs d'une grande fiabilité et un contrôle des accès per­son­na­lisé.

Votre serveur doit également répondre aux exigences tech­niques 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 (Post­greSQL) pour stocker les données des uti­li­sa­teurs et d’autres in­for­ma­tions. Si le nombre d’uti­li­sa­teurs 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 suf­fi­sam­ment de res­sources (CPU et RAM) pour gérer ef­fi­ca­ce­ment 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 per­for­mants avec des res­sources dédiées et un trafic illimité, et ce à des prix abor­dables !

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 res­sources, vous pouvez ajouter des fonctions sup­plé­men­taires à tout moment après l’achat ou passer à un plan plus per­for­mant.

Scénarios de serveur Mastodon possibles et tarifs IONOS cor­res­pon­dants

Lorsque vous choi­sis­sez un VPS, vous devez évaluer le nombre potentiel d’uti­li­sa­teurs de votre instance Mastodon. En fonction du trafic attendu, nous re­com­man­dons les tarifs IONOS suivants :

Scénario de serveur Mastodon Serveur VPS IONOS cor­res­pon­dant
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 fonc­tion­ner votre serveur Mastodon en parallèle avec d’autres services. Si votre com­mu­nauté est assez res­treinte, vous pouvez commencer avec ces tarifs :

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

Créer un serveur Mastodon : ins­truc­tions étape par étape

Étape 1 : préparer le serveur

Choi­sis­sez le système d’ex­ploi­ta­tion lors de la con­fi­gu­ra­tion du serveur. Mastodon fonc­tionne mieux sous Ubuntu 20.04 et Debian 11. Si vous en avez la pos­si­bi­lité, choi­sis­sez l’un de ces systèmes d’ex­ploi­ta­tion. 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 con­fi­gu­rer 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’en­re­gis­tre­ment A de votre domaine ou sous-domaine vers l’adresse IP du VPS. Pour IPv6, ajoutez également un en­re­gis­tre­ment AAAA.

Effectuez une mise à jour du ges­tion­naire de paquets et des paquets système :

apt update && apt upgrade -y
bash

Étape 2 : installer les paquets né­ces­saires

Mastodon nécessite plusieurs paquets et dé­pen­dances pour fonc­tion­ner cor­rec­te­ment. Ceux-ci com­pren­nent entre autres Node.js, Yarn, Post­greSQL, 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

Post­greSQL

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’uti­li­sa­teur sous lequel Mastodon doit fonc­tion­ner :

adduser --disabled-login mastodon
bash

Main­te­nant, passez au compte uti­li­sa­teur 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’uti­li­sa­teur root avec exit.

Étape 3 : con­fi­gu­rer Post­greSQL

Post­greSQL 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’uti­li­sa­teur Postgres pour accéder au shell Post­greSQL :

sudo -u postgres psql
bash

Mastodon se connecte au serveur de base de données sans mot de passe. Par con­sé­quent, le nom d’uti­li­sa­teur du système Linux et le nom d’uti­li­sa­teur de la base de données doivent être iden­tiques. Dans le shell Post­greSQL, exécutez les commandes suivantes pour créer la base de données :

CREATE USER mastodon CREATEDB;
\q
sql

Vous pouvez améliorer les per­for­mances de votre base de données Post­greSQL en l’ajustant aux res­sources système dis­po­nibles. Un outil utile pour cela est le gé­né­ra­teur de con­fi­gu­ra­tion pgTune. En four­nis­sant des in­for­ma­tions telles que le nombre de cœurs du pro­ces­seur et la taille de la RAM, vous ob­tien­drez une con­fi­gu­ra­tion Post­greSQL optimisée à insérer dans le fichier postgresql.conf.

Étape 4 : installer Mastodon

Ensuite, retournez à l’uti­li­sa­teur de Mastodon :

su - mastodon
bash

Té­lé­char­gez 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é­pen­dances Ruby et Ja­vaS­cript :

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’ins­tal­la­tion de Mastodon :

RAILS_ENV=bundle de production exec rake mastodon:setup
bash

Vous allez main­te­nant être interrogé sur dif­fé­rents réglages, qui seront fi­na­le­ment en­re­gis­tré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
  • Post­greSQL host : par défaut - Entrée
  • Post­greSQL port : par défaut - Entrée
  • Name of Post­greSQL database : par défaut - Entrée
  • Name of Post­greSQL user : par défaut - Entrée
  • Password of Post­greSQL 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’uti­li­sa­teur pour la connexion
  • SMTP au­then­ti­ca­tion : plain (simple)
  • SMTP OpenSSL verify mode : aucun
  • E-mail address to send e-mails “from” : gé­né­ra­le­ment comme le login SMTP
  • Send a test e-mail with this con­fi­gu­ra­tion right now? : Y
  • Send test e-mail to : indiquer n’importe quelle adresse email comme des­ti­na­taire
  • Save con­fi­gu­ra­tion? : 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 per­son­nelle

Revenez à l’uti­li­sa­teur root :

exit
bash

Étape 5 : installer le cer­ti­fi­cat SSL

Les serveurs VPS de IONOS sont livrés avec un cer­ti­fi­cat SSL par défaut. Mais si votre con­fi­gu­ra­tion ne contient pas de cer­ti­fi­cat, vous pouvez fa­ci­le­ment l’installer ul­té­rieu­re­ment.

Vous pouvez obtenir un cer­ti­fi­cat SSL gratuit de Let’s Encrypt. Let’s Encrypt propose des cer­ti­fi­cats au­to­ma­ti­sés qui sont faciles à installer et à re­nou­ve­ler.

certbot certonly --nginx -d example.com
bash

Le cer­ti­fi­cat est stocké dans le dossier /etc/letsencrypt/live/example.com/ sur votre serveur Mastodon.

Étape 6 : con­fi­gu­rer Nginx

Vous devez copier le template de con­fi­gu­ra­tion pour Nginx depuis le ré­per­toire de Mastodon et le coller dans le ré­per­toire sites-available de Nginx :

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

Créez un lien sym­bo­lique du fichier de con­fi­gu­ra­tion dans sites-enabled pour l’activer et supprimez la con­fi­gu­ra­tion 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 con­fi­gu­ra­tion de votre serveur Mastodon :

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

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

Dé­com­men­tez les lignes ssl_certificate et ssl_certificate_key, puis remplacez les chemins d’accès par ceux de votre cer­ti­fi­cat SSL. Si vous utilisez le cer­ti­fi­cat 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 con­fi­gu­ra­tion, vous devez recharger Nginx pour que les chan­ge­ments prennent effet :

systemctl reload nginx
bash

Étape 7 : con­fi­gu­rer les services Systemd

Si vous con­fi­gu­rez les services Systemd, l’ap­pli­ca­tion Web Mastodon ainsi que les fonc­tion­na­li­tés de live stream dé­mar­re­ront au­to­ma­ti­que­ment lors du démarrage du serveur. Cela assure que votre instance de Mastodon est con­ti­nuel­le­ment opé­ra­tion­nelle.

Copiez les templates de service Systemd de Mastodon dans le ré­per­toire cor­res­pon­dant :

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

Si vous avez per­son­na­lisé des valeurs par rapport aux pa­ra­mètres par défaut à un moment donné, assurez-vous que le nom d’uti­li­sa­teur et les chemins d’accès sont cor­rec­te­ment con­fi­gu­ré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 con­fi­gu­ra­tion de Systemd pour prendre en compte les nouveaux templates de service.
  • systemctl enable –now mastodon-web mastodon-sidekiq mastodon-streaming : ces services sont res­pon­sables de l’ap­pli­ca­tion Web, du trai­te­ment en arrière-plan et des fonctions de streaming en direct de Mastodon.

Étape 8 : modifier la limite de ca­rac­tères

En gérant votre propre serveur Mastodon, vous bé­né­fi­ciez de la liberté de per­son­na­li­ser des pa­ra­mètres qui ne sont gé­né­ra­le­ment pas mo­di­fiables sur les serveurs publics. Par exemple, vous pouvez ajuster la limite de ca­rac­tères des messages. Par défaut, cette limite est fixée à 500 ca­rac­tères ; sur votre propre instance, vous avez la pos­si­bi­lité de l’augmenter ou de la réduire selon vos pré­fé­rences.

Pour commencer, vous devez passer à l’uti­li­sa­teur Mastodon dans la console. Ensuite, vous devrez modifier deux fichiers spé­ci­fiques.

Dans ces fichiers, spécifiez la valeur désirée pour la limite de ca­rac­tères :

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

Dans le fichier instance_serializer.rb du ré­per­toire ~/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 mo­di­fi­ca­tions, les services Mastodon doivent être re­dé­mar­rés. Cela se fait en tant qu’uti­li­sa­teur root avec la commande :

service mastodon-* restart
bash

Vous pouvez main­te­nant écrire des messages avec une limite de 1000 ca­rac­tères.

Étape 9 : gérer la mo­dé­ra­tion

La fonction de mo­dé­ra­tion ac­ces­sible via « Pa­ra­mètres > Mo­dé­ra­tion » sur votre serveur Mastodon permet à l’ad­mi­nis­tra­teur de sur­veil­ler et de contrôler le contenu ainsi que l’activité des uti­li­sa­teurs sur votre instance, assurant ainsi le respect des Règles de la com­mu­nauté et la sup­pres­sion de tout contenu in­dé­si­rable.

En tant qu’ad­mi­nis­tra­teur, vous avez la capacité de bloquer ou débloquer des comptes in­di­vi­duels, des domaines, des adresses IP ou des serveurs de mes­sa­ge­rie, ainsi que de supprimer des comptes d’uti­li­sa­teurs. De plus, vous pouvez modérer les contenus publiés par les uti­li­sa­teurs en sup­pri­mant ou en modifiant les con­tri­bu­tions inap­pro­priées ou of­fen­santes.

Aller au menu principal