GNU/Linux >> Belajar Linux >  >> Cent OS

Cara menginstal Mastodon di CentOS 7

Mastodon adalah jaringan sosial gratis sumber terbuka berdasarkan protokol web terbuka. Itu menggunakan Ruby on Rails untuk back-end dan React.js dan Redux untuk front-end. Dalam tutorial ini, kami akan menunjukkan cara menginstal Mastodon di server CentOS 7.

1. Perbarui server CentOS 7 Anda dan instal paket yang diperlukan

Masuk ke VPS Anda melalui SSH sebagai pengguna sudo:

ssh userame@IP_Address

Setelah Anda masuk, jalankan perintah berikut untuk memastikan semua paket yang diinstal sudah diperbarui:

sudo yum update

Selanjutnya, instal instal paket prasyarat yang diperlukan untuk membangun Mastodon dengan perintah berikut:

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. Instal Node.js dan Benang

Kami akan menginstal Node.js v8 LTS dari repositori NodeSource yang bergantung pada repositori EPEL yang diaktifkan.

Untuk mengaktifkan repositori EPEL di CentOS 7 VPS Anda, jalankan perintah berikut:

sudo yum install epel-release curl

Setelah repositori EPEL diaktifkan, jalankan perintah berikut untuk menambahkan repositori Node.js v8 LTS:

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

Setelah repositori NodeSource diaktifkan, instal Node.js dengan perintah berikut:

sudo yum install nodejs

Aktifkan repositori Yarn RPM dengan:

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

Instal versi Benang terbaru dengan:

sudo yum install yarn

3. Instal PostgreSQL

Aktifkan repositori 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

Untuk menginstal server PostgreSQL jalankan perintah berikut:

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

Setelah instalasi selesai, buat cluster database baru dengan:

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

Mulai layanan PostgreSQL dan aktifkan untuk memulai saat boot:

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

Masuk ke shell PostgreSQL:

sudo -u postgres psql

Buat pengguna baru untuk instance Mastodon:

CREATE USER mastodon CREATEDB;

4. Instal Redis

Menginstal Redis cukup mudah, jalankan saja perintah berikut:

sudo yum install redis

5. Buat pengguna sistem baru

Untuk membuat pengguna sistem baru untuk Mastodon, jalankan perintah berikut:

sudo adduser mastodon

6. Instal Ruby

Kami akan menginstal Ruby menggunakan skrip Rbenv.

Sebelum mengkloning repositori rbenv, alihkan ke pengguna mastodon baru:

sudo su - mastodon

Siapkan rbenv dan ruby-build dengan perintah berikut:

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

Setelah rbenv dan ruby-build disiapkan, instal versi Ruby terbaru dengan”

rbenv install 2.5.1
rbenv global 2.5.1

Untuk memverifikasi semuanya dilakukan dengan benar, gunakan perintah ruby --version .

Outputnya harus seperti berikut:

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

7. Kloning repositori git Mastodon dan instal dependensi

Perintah berikut juga dijalankan sebagai pengguna mastodon.

Kloning repositori mastodon git ke ~/live direktori dan checkout ke cabang Mastodon stabil terbaru:

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)

Instal bundler dan dependensi ruby ​​dengan perintah berikut:

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

Instal dependensi node.js dengan:

yarn install --pure-lockfile

8. Konfigurasi Mastodon

Perintah berikut dijalankan sebagai pengguna mastodon.

Ubah ke direktori instalasi Mastodon dan jalankan perintah berikut untuk memulai pengaturan:

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

Pemasang akan menanyakan beberapa pertanyaan kepada Anda, membuat rahasia aplikasi baru, menyiapkan skema basis data, dan mengompilasi aset.

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. Buat unit sistem Mastodon

Perintah berikut dijalankan sebagai pengguna root atau sudo.

Buka editor teks Anda dan buat file unit systemd berikut:

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

Aktifkan dan mulai semua layanan:

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. Instal dan konfigurasikan Nginx

Untuk menginstal Nginx jalankan perintah berikut:

sudo yum install nginx

Setelah nginx diinstal, buat blok server untuk domain Anda. Jangan lupa untuk mengatur jalur yang benar ke sertifikat SSL dan kunci pribadi.

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

Simpan file dan mulai ulang layanan nginx:

sudo systemctl restart nginx

Anda sekarang dapat membuka browser Anda, ketik domain Anda dan Anda akan disajikan dengan formulir login Mastodon.

Tentu saja, Anda tidak perlu menginstal Mastodon di CentOS 7, jika Anda menggunakan salah satu layanan hosting terkelola kami, dalam hal ini Anda dapat meminta admin Linux ahli kami untuk menginstal Mastodon untuk Anda. Mereka tersedia 24×7 dan akan segera memenuhi permintaan Anda.

PS . Jika Anda menyukai postingan ini, tentang Cara Memasang Mastodon di CentOS 7 silakan bagikan dengan teman-teman Anda di jejaring sosial menggunakan tombol di sebelah kiri atau cukup tinggalkan balasan di bawah. Terima kasih.


Cent OS
  1. Cara Menginstal PHP 7, 7.2 &7.3 Pada CentOS 7

  2. Cara Menginstal Java 11 &12 di CentOS 7

  3. Cara Menginstal Wine 4.0 di CentOS 7

  1. Cara Menginstal Vim 8.2 di CentOS 7

  2. Cara Menginstal VirtualBox di CentOS 7

  3. Cara Menginstal Git di CentOS 8

  1. Cara Menginstal Docker di CentOS 8

  2. Cara Menginstal Java 8 &11 di Centos 8

  3. Cara Menginstal MySQL di CentOS 8