GNU/Linux >> Tutoriels Linux >  >> Panels >> Panels

Comment installer Mastodon sur Ubuntu 18.04

Dans cet article, nous allons installer Mastodon sur un VPS Ubuntu 18.04.

Mastodon est une plate-forme de réseau gratuite et open source très similaire à la célèbre plate-forme de médias sociaux connue sous le nom de Twitter. Cependant, contrairement à Twitter, il n'y a pas d'autorité centrale unique et il n'y a pas de publicité. Mastodon est écrit en Ruby et JavaScript et sa nature open source garantit qu'il reste ouvert à tous pour une utilisation privée et sécurisée. Tout le monde peut créer un serveur Mastodon et créer sa propre communauté avec des amis. De plus, Mastodon est pris en charge par et disponible via plusieurs applications pour iOS, Android et d'autres plates-formes, ce qui vous permettra de rester en contact avec vos amis où que vous alliez. Commençons par installer Mastodon.

Prérequis :

Avant de commencer l'installation, nous devons remplir les conditions préalables :

  • Un serveur qui exécute Ubuntu 18.04
  • accès root ou utilisateur avec privilèges sudo
  • Un nom de domaine (ou un sous-domaine) pour le serveur Mastodon, par ex. votre_nom_de_domaine.com

Commencez par vous connecter à votre VPS en utilisant le protocole SSH.

Nous exécuterons toutes les commandes en tant que root dans ce tutoriel, donc si vous n'utilisez pas le compte root, passez en root ou utilisez la commande sudo devant les commandes. Sinon, assurez-vous d'exécuter chaque commande avec le préfixe "sudo".

sudo -i

Étape 1 :Ajouter les référentiels requis

Dans cette étape, nous ajouterons les référentiels requis à notre système.

Pour vous assurer que curl est installé sur votre système, exécutez la commande :

apt install -y curl

Activez le référentiel NodeSource avec la commande curl suivante :

curl -sL https://deb.nodesource.com/setup_8.x | bash -

En utilisant les commandes suivantes, nous importerons la clé GPG du référentiel. Après cela, nous activerons le référentiel Yarn APT :

curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list

Étape 2 :Installer les packages

Nous allons maintenant installer les packages système requis pour Mastodon :

apt update

apt install -y \
imagemagick ffmpeg libpq-dev libxml2-dev libxslt1-dev file git-core \
g++ libprotobuf-dev protobuf-compiler pkg-config nodejs gcc autoconf \
bison build-essential libssl-dev libyaml-dev libreadline6-dev \
zlib1g-dev libncurses5-dev libffi-dev libgdbm5 libgdbm-dev \
nginx redis-server redis-tools postgresql postgresql-contrib \
certbot yarn libidn11-dev libicu-dev libjemalloc-dev

Voici une brève explication des dépendances que nous venons d'installer :

  • magique de l'image – Mastodon utilise ImageMagick pour les opérations liées aux images
  • ffmpeg – Mastodon utilise FFmpeg pour la conversion des GIF en MP4
  • libprotobuf-dev et protobuf-compiler – Mastodon les utilise pour la détection de la langue
  • nginx – Nginx est utilisé comme serveur Web
  • redis-* – Mastodon utilise Redis pour son magasin de structure de données en mémoire
  • postgresql-* – Mastodon utilise PostgreSQL comme base de données SQL
  • nodejs – Node est utilisé pour l'API de streaming de Mastodon
  • fil – Yarn est un gestionnaire de packages Node.js
  • Autres packages -dev, g++ – ceux-ci sont nécessaires pour la compilation de Ruby à l'aide de ruby-build.

Étape 3 :Installer Ruby

Ruby est également l'une des exigences pour Mastodon et nous l'installerons à cette étape. Nous utiliserons 'rbenv' pour gérer les versions de Ruby. Mais comme rbenv doit être installé pour un utilisateur Linux spécifique, la première chose à faire est de créer un nouvel utilisateur Mastodon. Pour créer l'utilisateur Mastodon, nous allons exécuter la commande :

adduser --disabled-login mastodon

Passez ensuite au mastodonte utilisateur avec la commande :

su - mastodon

Et avec les commandes suivantes, nous allons installer rbenv et rbenv-build :

git clone https://github.com/rbenv/rbenv.git ~/.rbenv
cd ~/.rbenv && src/configure && make -C src
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

Une fois l'installation de rbenv et rbenv-build terminée, nous pouvons installer la version exacte de Ruby dont nous avons besoin :

RUBY_CONFIGURE_OPTS=--with-jemalloc rbenv install 2.6.0
rbenv global 2.6.0

Étant donné que ruby_2.6.0 est livré avec un bundler qui n'est pas compatible avec la version par défaut de la gemme, nous devrons mettre à jour la gemme :

gem update --system

En plus de cela, nous devons installer bundler :

gem install bundler --no-document

Une fois toutes les étapes traitées, nous pouvons revenir à l'utilisateur root :

exit

Étape 4 :Configurer PostgreSQL

Nous allons créer un utilisateur PostgreSQL qui peut être utilisé par l'utilisateur Linux avec le même nom d'utilisateur sans nécessiter de mot de passe séparé. Il s'agit d'une méthode très simple qui utilise l'authentification "ident" qui permet une configuration facile et permet aux utilisateurs locaux d'accéder à la base de données sans mot de passe.

Vous pouvez ouvrir l'invite Postgres en passant à l'utilisateur postgres, puis en exécutant psql commande, ou vous pouvez exécuter la commande suivante :

sudo -u postgres psql

Exécutez la commande :

CREATE USER mastodon CREATEDB;

Quittez l'invite Postgres avec :

\q

Étape 5 :Configurer Mastodon

Puisque nous avons préparé le serveur pour l'installation de Mastodon, nous pouvons maintenant procéder au téléchargement du code Mastodon. Basculez vers l'utilisateur mastodonte avec la commande :

su - mastodon

Nous allons utiliser git pour cloner la dernière version stable de Mastodon en exécutant les commandes :

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

Étape 6 :Installer les dépendances Ruby et JavaScript

Ce sont les dernières dépendances que nous devons installer. Nous utiliserons bundler pour installer le reste des dépendances Ruby :

bundle install \
-j$(getconf _NPROCESSORS_ONLN) \
--deployment --without development test

et utilisez yarn pour installer les dépendances Node.js :

yarn install --pure-lockfile

Étape 7 :Génération d'un fichier de configuration

Nous pouvons exécuter l'assistant d'installation interactif afin de générer le fichier de configuration :

RAILS_ENV=production bundle exec rake mastodon:setup

Nous pouvons maintenant revenir au compte root car c'est tout ce que nous avions à faire avec l'utilisateur mastodonte.

exit

Étape 8 :Configurer Nginx

Mastodon est livré par défaut avec un modèle de configuration Nginx. Dans l'étape suivante, nous utiliserons une copie de ce modèle de configuration et l'ajusterons à nos besoins.

cp /home/mastodon/live/dist/nginx.conf /etc/nginx/sites-available/mastodon.conf
ln -s /etc/nginx/sites-available/mastodon.conf /etc/nginx/sites-enabled/mastodon.conf

Modifiez ensuite /etc/nginx/sites-available/mastodon.conf et remplacez votre_domaine.com par votre nom de domaine actuel.

nano /etc/nginx/sites-available/mastodon.conf

Nous devons recharger Nginx pour que les modifications prennent effet :

systemctl reload nginx

Si, pour une raison quelconque, vous manquez accidentellement le fichier Nginx à cet emplacement, vous pouvez utiliser la configuration Nginx suivante et la modifier en fonction de vos besoins.

map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}

proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=CACHE:10m inactive=7d max_size=1g;

server {
listen 80;
listen [::]:80;
server_name your_domain.com;
root /home/mastodon/live/public;
location /.well-known/acme-challenge/ { allow all; }
location / { return 301 https://$host$request_uri; }
}

server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name your_domain.com;

ssl_protocols TLSv1.2;
ssl_ciphers HIGH:!MEDIUM:!LOW:!aNULL:!NULL:!SHA;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;

# Uncomment these lines once you acquire a certificate:
# ssl_certificate /etc/letsencrypt/live/your_domain.com/fullchain.pem;
# ssl_certificate_key /etc/letsencrypt/live/your_domain.com/privkey.pem;

keepalive_timeout 70;
sendfile on;
client_max_body_size 80m;

root /home/mastodon/live/public;

gzip on;
gzip_disable "msie6";
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

add_header Strict-Transport-Security "max-age=31536000";

location / {
try_files $uri @proxy;
}

location ~ ^/(emoji|packs|system/accounts/avatars|system/media_attachments/files) {
add_header Cache-Control "public, max-age=31536000, immutable";
add_header Strict-Transport-Security "max-age=31536000";
try_files $uri @proxy;
}

location /sw.js {
add_header Cache-Control "public, max-age=0";
add_header Strict-Transport-Security "max-age=31536000";
try_files $uri @proxy;
}

location @proxy {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header Proxy "";
proxy_pass_header Server;

proxy_pass http://127.0.0.1:3000;
proxy_buffering on;
proxy_redirect off;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;

proxy_cache CACHE;
proxy_cache_valid 200 7d;
proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504;
add_header X-Cached $upstream_cache_status;
add_header Strict-Transport-Security "max-age=31536000";

tcp_nodelay on;
}

location /api/v1/streaming {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header Proxy "";

proxy_pass http://127.0.0.1:4000;
proxy_buffering off;
proxy_redirect off;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;

tcp_nodelay on;
}

error_page 500 501 502 503 504 /500.html;
}

N'oubliez pas de sauvegarder et de quitter le fichier, puis de redémarrer Nginx comme indiqué ci-dessus afin de reconnaître le nouveau fichier.

Étape 9 : Acquérir un certificat SSL

Nous utiliserons Let's Encrypt pour générer un certificat SSL gratuit :

certbot certonly --webroot -d your_domain.com -w /home/mastodon/live/public/

N'oubliez pas de remplacer votre_domaine.com par votre nom de domaine actuel. Nous pouvons maintenant modifier le /etc/nginx/sites-available/mastodon.conf fichier de configuration avec :

nano /etc/nginx/sites-available/mastodon.conf

Décommentez et modifiez le ssl_certificate et ssl_certificate_key lignes. Une fois que nous avons fini de modifier le fichier de configuration, nous devons recharger à nouveau Nginx pour que nos modifications prennent effet :

systemctl reload nginx

À ce stade, si vous essayez d'accéder à votre domaine dans votre navigateur Web préféré, vous ne pourrez pas voir Mastodon. C'est parce que notre processus Mastodon n'a pas encore démarré.

Étape 10 :Configurer les services systemd

Dans cette étape, nous allons démarrer et activer le service Mastodon sur le serveur. Nous pouvons simplement copier les modèles de service systemd depuis le répertoire Mastodon :

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

Nous pouvons revérifier et nous assurer que le nom d'utilisateur et les chemins sont corrects dans ces fichiers :

  • /etc/systemd/system/mastodon-web.service
  • /etc/systemd/system/mastodon-sidekiq.service
  • /etc/systemd/system/mastodon-streaming.service

Enfin, nous pouvons démarrer et activer les services systemd Mastodon :

systemctl start mastodon-web mastodon-sidekiq mastodon-streaming
systemctl enable mastodon-web mastodon-sidekiq mastodon-streaming

Si les fichiers systemd manquent par hasard, vous pouvez utiliser les configurations suivantes. Vous devez créer trois fichiers de service systemd Mastodon.

Pour le service Web Workers de Mastodon, saisissez ce qui suit :

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

Placez le code suivant :

[Unit]
Description=mastodon-web
After=network.target

[Service]
Type=simple
User=mastodon
WorkingDirectory=/home/mastodon/live
Environment="RAILS_ENV=production"
Environment="PORT=3000"
ExecStart=/home/mastodon/.rbenv/shims/bundle exec puma -C config/puma.rb
ExecReload=/bin/kill -SIGUSR1 $MAINPID
TimeoutSec=15
Restart=always

[Install]
WantedBy=multi-user.target

Puis enregistrez et quittez.

Pour le service de file d'attente en arrière-plan Mastodon :

nano /etc/systemd/system/mastodon-sidekiq.service

Collez le code suivant :

[Unit]
Description=mastodon-sidekiq
After=network.target

[Service]
Type=simple
User=mastodon
WorkingDirectory=/home/mastodon/live
Environment="RAILS_ENV=production"
Environment="DB_POOL=25"
Environment="MALLOC_ARENA_MAX=2"
ExecStart=/home/mastodon/.rbenv/shims/bundle exec sidekiq -c 25
TimeoutSec=15
Restart=always

[Install]
WantedBy=multi-user.target

Ensuite, enregistrez et quittez le fichier.

Pour le service d'API de streaming Mastodon :

nano /etc/systemd/system/mastodon-streaming.service

Placez le code suivant :

[Unit]
Description=mastodon-streaming
After=network.target

[Service]
Type=simple
User=mastodon
WorkingDirectory=/home/mastodon/live
Environment="NODE_ENV=production"
Environment="PORT=4000"
Environment="STREAMING_CLUSTER_NUM=1"
ExecStart=/usr/bin/node ./streaming
TimeoutSec=15
Restart=always

[Install]
WantedBy=multi-user.target

Enregistrez et quittez.

Vous devrez recharger la liste des démons systemctl pour que les modifications prennent effet :

systemctl daemon-reload

Vous devriez maintenant pouvoir démarrer et activer les services systemd Mastodon comme nous l'avons fait précédemment.

Toutes nos félicitations! Vous avez installé avec succès Mastodon sur votre serveur. Vous pouvez y accéder en vous rendant sur https://votre_domaine.com/.

Dans cet article, nous vous avons montré comment installer Mastodon sur Ubuntu 18.04. Maintenant, vous pouvez utiliser ces connaissances et créer votre réseau social privé avec cette merveilleuse application.

Bien sûr, si vous êtes l'un de nos clients d'hébergement Ubuntu géré, vous n'avez pas besoin d'installer Mastodon sur votre VPS Ubuntu 18.04 - demandez simplement à nos administrateurs, asseyez-vous et détendez-vous. Nos administrateurs installeront Mastodon sur Ubuntu 18.04 pour vous immédiatement.

PS. Si vous avez aimé cet article sur l'installation de Mastodon sur un VPS Ubuntu 18.04, partagez-le avec vos amis sur les réseaux sociaux à l'aide des boutons ci-dessous, ou laissez simplement un commentaire dans la section des commentaires. Merci.


Panels
  1. Comment installer ISPConfig 3 sur Ubuntu 18.04

  2. Comment installer Webmin sur Ubuntu 18.04

  3. Comment installer Panda3D sur Ubuntu 10.04

  4. Comment installer Zabbix sur Ubuntu

  5. Comment installer Observium sur Ubuntu 14.04

Comment installer R sur Ubuntu 20.04

Comment installer Go sur Ubuntu 18.04

Comment installer R sur Ubuntu 18.04

Comment installer qt sur Ubuntu 20.04

Comment installer Go dans Ubuntu 20.04

Comment installer Go sur Ubuntu 22.04