GNU/Linux >> Znalost Linux >  >> Cent OS

Jak nainstalovat Mastodon na CentOS 7

Mastodon je open-source bezplatná sociální síť založená na otevřeném webovém protokolu. Pro back-end používal Ruby on Rails a pro front-end React.js a Redux. V tomto tutoriálu vám ukážeme, jak nainstalovat Mastodon na server CentOS 7.

1. Aktualizujte svůj server CentOS 7 a nainstalujte potřebné balíčky

Přihlaste se do svého VPS přes SSH jako uživatel sudo:

ssh userame@IP_Address

Jakmile se přihlásíte, zadejte následující příkazy, abyste se ujistili, že všechny nainstalované balíčky jsou aktuální:

sudo yum update

Dále nainstalujte instalační balíky nezbytné pro sestavení Mastodon pomocí následujícího příkazu:

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. Nainstalujte Node.js a Yarn

Node.js v8 LTS nainstalujeme z úložiště NodeSource, které závisí na aktivovaném úložišti EPEL.

Chcete-li povolit úložiště EPEL na vašem CentOS 7 VPS, zadejte následující příkaz:

sudo yum install epel-release curl

Jakmile je úložiště EPEL povoleno, spusťte následující příkaz pro přidání úložiště Node.js v8 LTS:

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

Jakmile je úložiště NodeSource povoleno, nainstalujte soubor Node.js pomocí následujícího příkazu:

sudo yum install nodejs

Povolte úložiště Yarn RPM pomocí:

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

Nainstalujte nejnovější verzi Yarn pomocí:

sudo yum install yarn

3. Nainstalujte PostgreSQL

Povolte úložiš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

Pro instalaci serveru PostgreSQL spusťte následující příkaz:

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

Po dokončení instalace vytvořte nový databázový cluster s:

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

Spusťte službu PostgreSQL a povolte její spuštění při bootování:

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

Přihlaste se do prostředí PostgreSQL:

sudo -u postgres psql

Vytvořte nového uživatele pro instanci Mastodon:

CREATE USER mastodon CREATEDB;

4. Nainstalujte Redis

Instalace Redis je docela jednoduchá, stačí spustit následující příkaz:

sudo yum install redis

5. Vytvořte nového uživatele systému

Chcete-li vytvořit nového systémového uživatele pro Mastodon, spusťte následující příkaz:

sudo adduser mastodon

6. Nainstalujte Ruby

Ruby nainstalujeme pomocí skriptu Rbenv.

Před klonováním úložiště rbenv přepněte na nového uživatele mastodonta:

sudo su - mastodon

Nastavte rbenv a ruby-build pomocí následujících příkazů:

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

Jakmile jsou rbenv i ruby-build nastaveny, nainstalujte nejnovější verzi Ruby pomocí “

rbenv install 2.5.1
rbenv global 2.5.1

Pro ověření, že je vše provedeno správně, použijte příkaz ruby --version .

Výstup by měl být podobný následujícímu:

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

7. Klonujte repozitář git Mastodon a nainstalujte závislosti

Následující příkazy jsou také spuštěny jako uživatel mastodonta.

Naklonujte repozitář mastodont git do ~/live adresář a pokladnu do nejnovější stabilní větve 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)

Nainstalujte závislosti bundleru a ruby ​​pomocí následujících příkazů:

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

Nainstalujte závislosti node.js pomocí:

yarn install --pure-lockfile

8. Nakonfigurujte Mastodon

Následující příkazy jsou spuštěny jako uživatel mastodonta.

Přejděte do instalačního adresáře Mastodon a spusťte následující příkaz pro spuštění instalace:

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

Instalační program vám položí několik otázek, vygeneruje nový tajný klíč aplikace, nastaví schéma databáze a zkompiluje prostředky.

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. Vytvořte systémové jednotky Mastodon

Následující příkazy jsou spouštěny jako uživatel root nebo sudo.

Otevřete textový editor a vytvořte následující soubory jednotek systemd:

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

Povolit a spustit všechny služby:

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. Nainstalujte a nakonfigurujte Nginx

Chcete-li nainstalovat Nginx, spusťte následující příkaz:

sudo yum install nginx

Jakmile je nginx nainstalován, vytvořte blok serveru pro vaši doménu. Nezapomeňte nastavit správnou cestu k SSL certifikátu a soukromému klíči.

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

Uložte soubor a restartujte službu nginx:

sudo systemctl restart nginx

Nyní můžete otevřít svůj prohlížeč, zadat svou doménu a zobrazí se vám přihlašovací formulář Mastodon.

Samozřejmě nemusíte instalovat Mastodon na CentOS 7, pokud používáte některou z našich spravovaných hostingových služeb, v takovém případě můžete jednoduše požádat naše zkušené administrátory Linuxu, aby vám Mastodon nainstalovali. Jsou k dispozici 24×7 a okamžitě se postarají o váš požadavek.

PS . Pokud se vám tento příspěvek líbil, přečtěte si o Jak nainstalovat Mastodon na CentOS 7 prosím sdílejte jej se svými přáteli na sociálních sítích pomocí tlačítek vlevo nebo jednoduše zanechte odpověď níže. Děkuji.


Cent OS
  1. Jak nainstalovat PHP 7, 7.2 a 7.3 na CentOS 7

  2. Jak nainstalovat Java 11 &12 na CentOS 7

  3. Jak nainstalovat Wine 4.0 na CentOS 7

  1. Jak nainstalovat Vim 8.2 na CentOS 7

  2. Jak nainstalovat VirtualBox na CentOS 7

  3. Jak nainstalovat Git na CentOS 8

  1. Jak nainstalovat Docker na CentOS 8

  2. Jak nainstalovat Java 8 &11 na Centos 8

  3. Jak nainstalovat MySQL na CentOS 8