GNU/Linux >> Tutoriels Linux >  >> Cent OS

Comment installer Mastodon sur CentOS 7

Mastodon est un réseau social gratuit open source basé sur un protocole Web ouvert. Il a utilisé Ruby on Rails pour le back-end et React.js et Redux pour le front-end. Dans ce tutoriel, nous allons vous montrer comment installer Mastodon sur un serveur CentOS 7.

1. Mettez à jour votre serveur CentOS 7 et installez les packages nécessaires

Connectez-vous à votre VPS via SSH en tant qu'utilisateur sudo :

ssh userame@IP_Address

Une fois connecté, exécutez les commandes suivantes pour vous assurer que tous les packages installés sont à jour :

sudo yum update

Ensuite, installez les packages prérequis nécessaires à la construction de Mastodon avec la commande suivante :

sudo yum install curl git gpg gcc git-core zlib zlib-devel gcc-c++ patch readline readline-devel libyaml-devel libffi-devel openssl-devel make autoconf automake libtool bison curl sqlite-devel ImageMagick libxml2-devel libxslt-devel gdbm-devel ncurses-devel glibc-headers glibc-devel libicu-devel libidn-devel protobuf-devel protobuf

2. Installez Node.js et Yarn

Nous installerons Node.js v8 LTS à partir du référentiel NodeSource qui dépend du référentiel EPEL activé.

Pour activer le référentiel EPEL sur votre VPS CentOS 7, exécutez la commande suivante :

sudo yum install epel-release curl

Une fois le référentiel EPEL activé, exécutez la commande suivante pour ajouter le référentiel Node.js v8 LTS :

curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -

Une fois le référentiel NodeSource activé, installez Node.js avec la commande suivante :

sudo yum install nodejs

Activez le référentiel Yarn RPM avec :

curl --silent --location https://dl.yarnpkg.com/rpm/yarn.repo | sudo tee /etc/yum.repos.d/yarn.repo

Installez la dernière version de Yarn avec :

sudo yum install yarn

3. Installer PostgreSQL

Activez le dépôt PostgreSQL :

sudo rpm -Uvh https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm

Pour installer le serveur PostgreSQL, exécutez la commande suivante :

sudo yum install postgresql96-server postgresql96-contrib postgresql96-devel

Une fois l'installation terminée, créez un nouveau cluster de base de données avec :

sudo /usr/pgsql-9.6/bin/postgresql96-setup initdb

Démarrez le service PostgreSQL et activez-le pour qu'il démarre au démarrage :

sudo systemctl enable postgresql-9.6
sudo systemctl start postgresql-9.6

Connectez-vous au shell PostgreSQL :

sudo -u postgres psql

Créez un nouvel utilisateur pour l'instance Mastodon :

CREATE USER mastodon CREATEDB;

4. Installer Redis

L'installation de Redis est assez simple, il suffit d'exécuter la commande suivante :

sudo yum install redis

5. Créer un nouvel utilisateur système

Pour créer un nouvel utilisateur système pour Mastodon, exécutez la commande suivante :

sudo adduser mastodon

6. Installer Ruby

Nous allons installer Ruby en utilisant le script Rbenv.

Avant de cloner le référentiel rbenv, passez au nouvel utilisateur mastodonte :

sudo su - mastodon

Configurez rbenv et ruby-build avec les commandes suivantes :

cd
git clone git://github.com/sstephenson/rbenv.git .rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
exec $SHELL

git clone git://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
echo 'export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.bash_profile
exec $SHELL

Une fois que rbenv et ruby-build sont configurés, installez la dernière version de Ruby avec "

rbenv install 2.5.1
rbenv global 2.5.1

Pour vérifier que tout est fait correctement, utilisez la commande ruby --version .

Le résultat doit ressembler à ce qui suit :

ruby --version
ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux]

7. Clonez le dépôt git de Mastodon et installez les dépendances

Les commandes suivantes sont également exécutées en tant qu'utilisateur Mastodon.

Clonez le dépôt mastodon git dans le ~/live répertoire et paiement vers la dernière branche stable de Mastodon :

cd
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)

Installez les dépendances bundler et ruby ​​avec les commandes suivantes :

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

Installez les dépendances node.js avec :

yarn install --pure-lockfile

8. Configurer Mastodonte

Les commandes suivantes sont exécutées en tant qu'utilisateur Mastodon.

Accédez au répertoire d'installation de Mastodon et exécutez la commande suivante pour démarrer l'installation :

cd ~/live
RAILS_ENV=production bundle exec rake mastodon:setup

Le programme d'installation vous posera plusieurs questions, générera un nouveau secret d'application, configurera le schéma de la base de données et compilera les actifs.

Your instance is identified by its domain name. Changing it afterward will break things.
Domain name: your-domain.com

Single user mode disables registrations and redirects the landing page to your public profile.
Do you want to enable single user mode? No

Are you using Docker to run Mastodon? no

PostgreSQL host: /var/run/postgresql
PostgreSQL port: 5432
Name of PostgreSQL database: mastodon_production
Name of PostgreSQL user: mastodon
Password of PostgreSQL user:
Database configuration works! 🎆

Redis host: localhost
Redis port: 6379
Redis password:
Redis configuration works! 🎆

Do you want to store uploaded files on the cloud? No

Do you want to send e-mails from localhost? yes
E-mail address to send e-mails "from": Mastodon <[email protected]>
Send a test e-mail with this configuration right now? no

This configuration will be written to .env.production
Save configuration? Yes

Now that configuration is saved, the database schema must be loaded.
If the database already exists, this will erase its contents.
Prepare the database now? Yes
Running `RAILS_ENV=production rails db:setup` ...


Created database 'mastodon_production'

...

Done!

The final step is compiling CSS/JS assets.
This may take a while and consume a lot of RAM.
Compile the assets now? Yes
Running `RAILS_ENV=production rails assets:precompile` ...


yarn install v1.9.4

...

Using /home/mastodon/live/config/webpacker.yml file for setting up webpack paths
Compiling…
  Compiled all packs in /home/mastodon/live/public/packs
  Rendering errors/500.html.haml within layouts/error
  Rendered errors/500.html.haml within layouts/error (2596.9ms)
Done!

All done! You can now power on the Mastodon server 🐘

Do you want to create an admin user straight away? Yes
Username: admin
E-mail: [email protected]
You can login with the password: 80b4aA233adaeS86d095Scbf79302f81
You can change your password once you login.

9. Créer des unités systemd Mastodon

Les commandes suivantes sont exécutées en tant qu'utilisateur root ou sudo.

Ouvrez votre éditeur de texte et créez les fichiers unitaires systemd suivants :

sudo nano /etc/systemd/system/mastodon-web.service
[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
sudo nano /etc/systemd/system/mastodon-sidekiq.service
[Unit]
Description=mastodon-sidekiq
After=network.target

[Service]
Type=simple
User=mastodon
WorkingDirectory=/home/mastodon/live
Environment="RAILS_ENV=production"
Environment="DB_POOL=5"
ExecStart=/home/mastodon/.rbenv/shims/bundle exec sidekiq -c 5 -q default -q push -q mailers -q pull
TimeoutSec=15
Restart=always

[Install]
WantedBy=multi-user.target
sudo nano /etc/systemd/system/mastodon-streaming.service
[Unit]
Description=mastodon-streaming
After=network.target

[Service]
Type=simple
User=mastodon
WorkingDirectory=/home/mastodon/live
Environment="NODE_ENV=production"
Environment="PORT=4000"
ExecStart=/usr/bin/npm run start
TimeoutSec=15
Restart=always

[Install]
WantedBy=multi-user.target

Activer et démarrer tous les services :

sudo systemctl enable mastodon-web.service
sudo systemctl enable mastodon-sidekiq.service
sudo systemctl enable mastodon-streaming.service

sudo systemctl start mastodon-web.service
sudo systemctl start mastodon-sidekiq.service
sudo systemctl start mastodon-streaming.service

10. Installer et configurer Nginx

Pour installer Nginx, exécutez la commande suivante :

sudo yum install nginx

Une fois nginx installé, créez un bloc serveur pour votre domaine. N'oubliez pas de définir le chemin d'accès correct au certificat SSL et à la clé privée.

sudo nano /etc/nginx/conf.d/your-domain.com.conf
map $http_upgrade $connection_upgrade {
  default upgrade;
  ''      close;
}

server {
  listen 80;
  listen [::]:80;
  server_name your-domain.com;
  root /home/mastodon/live/public;
  # Useful for Let's Encrypt
  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;

  ssl_certificate     /etc/ssl/certs/certificate.crt;
  ssl_certificate_key /etc/ssl/private/certificate.key;

  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";
    try_files $uri @proxy;
  }
  
  location /sw.js {
    add_header Cache-Control "public, max-age=0";
    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 off;
    proxy_redirect off;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $connection_upgrade;

    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;
}

Enregistrez le fichier et redémarrez le service nginx :

sudo systemctl restart nginx

Vous pouvez maintenant ouvrir votre navigateur, saisir votre domaine et le formulaire de connexion Mastodon vous sera présenté.

Bien sûr, vous n'êtes pas obligé d'installer Mastodon sur CentOS 7, si vous utilisez l'un de nos services d'hébergement géré, auquel cas vous pouvez simplement demander à nos administrateurs Linux experts d'installer Mastodon pour vous. Ils sont disponibles 24h/24 et 7j/7 et prendront immédiatement en charge votre demande.

PS . Si vous avez aimé cet article, sur Comment installer Mastodon sur CentOS 7 partagez-le avec vos amis sur les réseaux sociaux en utilisant les boutons à gauche ou laissez simplement une réponse ci-dessous. Merci.


Cent OS
  1. Comment installer PHP 7, 7.2 et 7.3 sur CentOS 7

  2. Comment installer Java 11 et 12 sur CentOS 7

  3. Comment installer Wine 4.0 sur CentOS 7

  4. Comment installer Vim 8.2 sur CentOS 7

  5. Comment installer VirtualBox sur CentOS 7

Comment installer Ruby sur CentOS 7

Comment installer PostgreSQL sur CentOS 7

Comment installer Go sur CentOS 7

Comment installer Python 3 sur CentOS 7

Comment installer R sur CentOS 7

Comment installer R sur CentOS 8