GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment installer la plate-forme de réseau social Pleroma sur Ubuntu 20.04

Pleroma est une plate-forme de réseau social fédérée open-source, compatible avec Mastodon et d'autres plates-formes ActivityPub. Il fait partie du Fediverse, un réseau fédéré d'instances qui peuvent communiquer à l'aide d'un protocole commun. Un seul compte sur une instance peut communiquer avec l'ensemble du réseau Fediverse.

Ce guide vous montrera comment créer votre propre instance Pleroma en l'installant sur un serveur basé sur Ubuntu 20.04.

Prérequis

  • Un serveur exécutant Ubuntu 20.04.

  • Un utilisateur sudo non root.

  • Assurez-vous que tout est mis à jour.

    $ sudo apt update
    $ sudo apt upgrade
    
  • Quelques packages et dépendances dont vous avez besoin avant d'installer Pleroma.

    $ sudo apt install wget curl gnupg2 ca-certificates lsb-release gnupg zip libncurses5 libmagic-dev -y
    

Étape 1 - Configurer le pare-feu

La première étape consiste à configurer le pare-feu. Ubuntu est livré avec ufw (pare-feu non compliqué) par défaut.

Vérifiez si le pare-feu est en cours d'exécution.

$ sudo ufw status

Vous devriez obtenir le résultat suivant.

Status: inactive

Autorisez le port SSH afin que le pare-feu n'interrompe pas la connexion actuelle en l'activant.

$ sudo ufw allow OpenSSH

Autorisez également les ports HTTP et HTTPS.

$ sudo ufw allow 80
$ sudo ufw allow 443

Activer le pare-feu

$ sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup

Vérifiez à nouveau l'état du pare-feu.

$ sudo ufw status

Vous devriez voir une sortie similaire.

Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
80                         ALLOW       Anywhere
443                        ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
80 (v6)                    ALLOW       Anywhere (v6)
443 (v6)                   ALLOW       Anywhere (v6)

Étape 2 - Installer PostgreSQL

Ajoutez le référentiel PostgreSQL officiel à la liste des sources d'Ubuntu.

$ sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'

Ajoutez la clé GPG du dépôt.

$ wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -

Mettre à jour la liste des packages système.

$ sudo apt update

Étape 3 - Installer Nginx

Ubuntu 20.04 est livré avec la version stable Nginx 18 par défaut.

$ sudo apt install nginx

Étape 4 - Installer Pleroma

Ce guide installe Pleroma à partir d'une version OTP. La première étape consiste à créer un utilisateur Pleroma sans capacité de connexion. Il créera également son répertoire personnel à /opt/pleroma .

$ sudo adduser --system --shell  /bin/false --home /opt/pleroma pleroma

Passez à l'utilisateur Pleroma. Mais d'abord, nous devons passer à l'utilisateur root.

$ sudo su
$ su pleroma -s $SHELL -l

Téléchargez Pleroma dans un emplacement temporaire.

$ curl "https://git.pleroma.social/api/v4/projects/2/jobs/artifacts/stable/download?job=amd64" -o /tmp/pleroma_amd64.zip

Décompressez l'archive.

$ unzip /tmp/pleroma_amd64.zip -d /tmp/

Installez Pleroma.

$ mv /tmp/release/* /opt/pleroma

Supprimez les fichiers temporaires.

$ rm -rf /tmp/pleroma_amd64.zip /tmp/release

Basculez vers l'utilisateur root.

$ exit

Créez des répertoires pour les téléchargements et les fichiers publics.

$ mkdir -p /var/lib/pleroma/{uploads,static}

Créez le répertoire pour la configuration de Pleroma.

$ mkdir -p /etc/pleroma

Changez la propriété des répertoires Pleroma en l'utilisateur Pleroma.

$ chown -R pleroma /var/lib/pleroma /etc/pleroma

Étape 5 - Configurer Pleroma

Revenez à l'utilisateur Pleroma.

$ su pleroma -s /bin/bash -l

Exécutez la commande suivante pour générer le fichier de configuration de l'instance Pleroma.

$ ./bin/pleroma_ctl instance gen --output /etc/pleroma/config.exs --output-psql /tmp/setup_db.psql

On vous posera plusieurs questions sur la configuration de Pleroma. Si vous recevez un avertissement indiquant que le fichier de configuration est introuvable, ignorez-le.

[email protected]:~$ ./bin/pleroma_ctl instance gen --output /etc/pleroma/config.exs --output-psql /tmp/setup_db.psql
!!! /etc/pleroma/config.exs not found! Please ensure it exists and that PLEROMA_CONFIG_PATH is unset or points to an existing file

What domain will your instance use? (e.g pleroma.soykaf.com) [] example.com

What is the name of your instance? (e.g. The Corndog Emporium) [nspeaks.com] Howtoforge Pleroma
What is your admin email address? [] [email protected]
What email address do you want to use for sending email notifications? [[email protected]] <Press Enter>
Do you want search engines to index your site? (y/n) [y] y
Do you want to store the configuration in the database (allows controlling it from admin-fe)? (y/n) [n] n
What is the hostname of your database? [localhost] localhost
What is the name of your database? [pleroma] pleroma
What is the user used to connect to your database? [pleroma] pleroma
What is the password used to connect to your database? [autogenerated] yourpassword
Would you like to use RUM indices? [n] n
What port will the app listen to (leave it if you are using the default setup with nginx)? [4000] <Press Enter>
What ip will the app listen to (leave it if you are using the default setup with nginx)? [127.0.0.1] <Press Enter>
What directory should media uploads go in (when using the local uploader)? [/var/lib/pleroma/uploads] <Press Enter>
What directory should custom public files be read from (custom emojis, frontend bundle overrides, robots.txt, etc.)? [/var/lib/pleroma/static] <Press Enter>
Do you want to strip location (GPS) data from uploaded images? This requires exiftool, it was detected as not installed, please install it if you answer yes. (y/n) [n] n
Do you want to anonymize the filenames of uploads? (y/n) [n] n
Do you want to deduplicate uploaded files? (y/n) [n] y
Writing config to /etc/pleroma/config.exs.
Writing the postgres script to /tmp/setup_db.psql.
Writing /var/lib/pleroma/static/robots.txt.

 All files successfully written! Refer to the installation instructions for your platform for next steps.

Vous pouvez choisir un ensemble d'options différent en fonction de vos besoins. Choisissez un mot de passe fort pour votre base de données. Si vous souhaitez configurer votre instance à partir du panneau d'administration, sélectionnez y pour la question sur le stockage de la configuration dans la base de données.

Passez à l'utilisateur PostgreSQL par défaut qui a été créé lors de l'installation de PostgreSQL.

$ exit
$ su postgres -s /bin/bash -l

Créez la base de données à l'aide du fichier SQL fourni par Pleroma.

$ psql -f /tmp/setup_db.psql

Revenez à l'utilisateur Pleroma.

$ exit
$ su pleroma -s /bin/bash -l

Initialisez la base de données que nous venons de créer.

$ ./bin/pleroma_ctl migrate

Quittez pour l'utilisateur racine.

$ exit

Étape 6 - Installer SSL avec Let's Encrypt

Pour installer un certificat SSL avec Let's Encrypt, nous devons télécharger l'outil Certbot.

Pour installer Certbot, nous utiliserons le programme d'installation du package Snapd. Le référentiel officiel de Certbot est obsolète et le package Certbot d'Ubuntu a plus d'un an. Snapd propose toujours la dernière version stable de Certbot et vous devez l'utiliser. Heureusement, Ubuntu 20.04 est livré avec Snapd préinstallé.

Assurez-vous que votre version de Snapd est à jour.

$ snap install core 
$ snap refresh core

Supprimez toutes les anciennes versions de Certbot.

$ apt remove certbot

Installez Certbot.

$ snap install --classic certbot

Utilisez la commande suivante pour vous assurer que la commande Certbot peut être exécutée en créant un lien symbolique vers /usr/bin répertoire.

$ ln -s /snap/bin/certbot /usr/bin/certbot

Arrêtez le service Nginx.

$ systemctl stop nginx

Générez un certificat SSL.

$ certbot certonly --standalone --preferred-challenges http -d example.com

La commande ci-dessus téléchargera un certificat sur /etc/letsencrypt/live/example.com répertoire sur votre serveur.

Créez un répertoire racine Web de défi pour le renouvellement automatique de Let's Encrypt.

$ mkdir -p /var/lib/letsencrypt

Créez une tâche Cron pour renouveler le SSL. Il s'exécutera tous les jours pour vérifier le certificat et le renouveler si nécessaire. Pour cela, créez d'abord le fichier /etc/cron.daily/certbot-renew et ouvrez-le pour le modifier.

$ nano /etc/cron.daily/certbot-renew

Collez le code suivant.

#!/bin/sh
certbot renew --cert-name example.com --webroot -w /var/lib/letsencrypt/ --post-hook "systemctl reload nginx"

Enregistrez le fichier en appuyant sur Ctrl + X et en saisissant Y lorsque vous y êtes invité.

Modifiez les autorisations sur le fichier de tâche pour le rendre exécutable.

$ chmod +x /etc/cron.daily/certbot-renew

Étape 7 - Configurer Nginx

Pleroma est livré avec un fichier de configuration Nginx par défaut. Installez-le en le déplaçant vers le /etc/nginx/sites-available répertoire.

$ mv /opt/pleroma/installation/pleroma.nginx /etc/nginx/sites-available/pleroma.conf

Remplacer toutes les occurrences de example.tld avec votre domaine.

$ sed -i 's/example\.tld/example.com/g' /etc/nginx/sites-available/pleroma.conf

Ouvrez le fichier de configuration pour le modifier.

$ nano /etc/nginx/sites-available/pleroma.conf

Décommentez le location ~ /\.well-known/acme-challenge bloc. Le server bloc de votre fichier de configuration devrait ressembler à ce qui suit.

server {
    server_name    example.com;

    listen         80;
    listen         [::]:80;

    location ~ /\.well-known/acme-challenge {
        root /var/lib/letsencrypt/;
    }

    location / {
        return         301 https://$server_name$request_uri;
    }
}

Enregistrez le fichier en appuyant sur Ctrl + X et en saisissant Y lorsque vous y êtes invité.

Activez la configuration de Pleroma Nginx en créant un lien symbolique.

$ ln -s /etc/nginx/sites-available/pleroma.conf /etc/nginx/sites-enabled/pleroma.conf

Activez le serveur Nginx pour le démarrer au démarrage.

$ systemctl enable nginx.

Démarrez le serveur Nginx.

$ systemctl start nginx

Installez le fichier d'unité de service Pleroma systemd fourni dans la distribution.

$ mv /opt/pleroma/installation/pleroma.service /etc/systemd/system/pleroma.service

Activez et démarrez le service Pleroma.

$ systemctl enable pleroma
$ systemctl start pleroma

Cela peut prendre environ 30 secondes pour que le site Pleroma soit disponible. Maintenant, vous pouvez ouvrir https://example.com dans votre navigateur Web pour visiter Pleroma. Cela devrait ressembler à ceci.

Étape 8 - Configurer Pleroma

Créer un utilisateur administrateur

Vous pouvez créer un utilisateur administratif via la ligne de commande. Passez d'abord à l'utilisateur Pleroma.

$ su pleroma -s /bin/bash -l

Créez un utilisateur administrateur. Remplacer example avec votre nom d'utilisateur, [email protected] avec votre adresse e-mail et password123 avec un mot de passe fort.

$ ./bin/pleroma_ctl user new example [email protected] --password password123 --admin

Revenez à l'utilisateur root une fois que vous avez terminé.

$ exit

Modification des paramètres

Si vous avez sélectionné non comme réponse pour stocker la configuration dans la base de données , cela signifie que vous ne pouvez pas modifier les paramètres depuis le panneau d'administration de Pleroma. Pour changer les paramètres, vous devrez modifier le /etc/pleroma/config.exs fichier.

$ nano /etc/pleroma/config.exs

Une fois que vous avez terminé de modifier le fichier, vous devrez également redémarrer le service Pleroma. Vous devrez peut-être attendre un certain temps avant que le service ne reprenne.

$ systemctl restart pleroma

Mise à jour de Pleroma

Pour mettre à jour Pleroma, la première étape consiste à télécharger la nouvelle version. Exécutez la commande suivante pour télécharger la nouvelle version de Pleroma.

$ su pleroma -s $SHELL -lc "./bin/pleroma_ctl update"

Arrêtez l'instance Pleroma.

$ systemctl stop pleroma

L'étape suivante consiste à migrer la base de données.

$ su pleroma -s $SHELL -lc "./bin/pleroma_ctl migrate"

Démarrez l'instance Pleroma.

$ systemctl start pleroma

Sauvegarder Pleroma

Arrêtez le service Pleroma.

$ systemctl stop pleroma

Basculez vers le répertoire de Pleroma.

$ cd /opt/pleroma

Exécutez la commande suivante pour sauvegarder la base de données.

$ sudo -Hu postgres pg_dump -d <pleroma_db> --format=custom -f </path/to/backup_location/pleroma.pgdump>

Copiez les fichiers pleroma.pgdump , config/prod.secret.exs , config/setup_db.sql et les uploads dossier vers votre destination de sauvegarde.

Redémarrez le service Pleroma.

$ systemctl start pleroma

Restauration du plérome

Pour restaurer Pleroma, vous devez réinstaller Pleroma et vous assurer que le service Pleroma ne fonctionne pas.

Copiez ensuite les fichiers sauvegardés à leur emplacement d'origine.

Supprimez la base de données et l'utilisateur existants à l'aide de la commande suivante.

$ sudo -Hu postgres psql -c 'DROP DATABASE <pleroma_db>;';` `sudo -Hu postgres psql -c 'DROP USER <pleroma_db>;'

Restaurer le schéma de la base de données et le rôle Pleroma Postgres avec le fichier setup_db.sql sauvegardé fichier.

$ sudo -Hu postgres psql -f config/setup_db.psql

Ensuite, restaurez les données de l'instance Pleroma.

$ sudo -Hu postgres pg_restore -d <pleroma_db> -v -1 </path/to/backup_location/pleroma.pgdump>

Migrez la base de données s'il reste des migrations à effectuer au cas où vous passeriez à une version plus récente.

$ su pleroma -s $SHELL -lc "./bin/pleroma_ctl migrate"

Redémarrez le service Pleroma.

$ systemctl restart pleroma

Générez les statistiques afin que Postgres puisse planifier correctement les requêtes.

$ sudo -Hu postgres vacuumdb --all --analyze-in-stages

Conclusion

Ceci conclut notre tutoriel sur l'installation de la plate-forme de réseau social Pleroma sur un serveur alimenté par Ubuntu 20.04. Si vous avez des questions ou des commentaires, postez-les dans les commentaires ci-dessous.


Ubuntu
  1. Comment installer Docker sur Ubuntu 18.04

  2. Comment installer Apache sur Ubuntu 18.04

  3. Comment installer MariaDB 10.4 sur Ubuntu 18.04

  4. Comment installer MongoDB sur Ubuntu 18.04

  5. Comment installer Jenkins sur Ubuntu 18.04

Comment installer Tomcat 8.5 sur Ubuntu 18.04

Comment installer Asterisk sur Ubuntu 18.04

Comment installer le réseau social Elgg sur Ubuntu 18.04 LTS

Comment installer Mastodon Social Network avec Docker sur Ubuntu 18.04 LTS

Comment installer la plate-forme de réseau social Friendica sur Ubuntu 20.04

Comment installer un réseau social open source sur Ubuntu 16.04