GNU/Linux >> Belajar Linux >  >> Panels >> Panels

Cara Menginstal Mastodon di Ubuntu 18.04

Pada artikel ini, kita akan menginstal Mastodon pada VPS Ubuntu 18.04.

Mastodon adalah platform jaringan gratis dan sumber terbuka yang sangat mirip dengan platform media sosial terkenal yang dikenal sebagai Twitter. Namun, tidak seperti Twitter, tidak ada otoritas pusat tunggal dan tidak ada iklan. Mastodon ditulis dalam Ruby dan JavaScript dan sifatnya yang open-source memastikan bahwa Mastodon tetap terbuka bagi siapa saja untuk digunakan secara pribadi dan aman. Siapa pun dapat membuat server Mastodon dan membangun komunitas mereka sendiri dengan teman. Selain itu, Mastodon didukung oleh dan tersedia melalui beberapa aplikasi untuk iOS, Android, dan platform lainnya, yang memungkinkan Anda tetap berhubungan dengan teman ke mana pun Anda pergi. Mari kita mulai dengan menginstal Mastodon.

Prasyarat:

Sebelum kita memulai instalasi, kita harus memenuhi prasyarat:

  • Server yang menjalankan Ubuntu 18.04
  • akses root atau pengguna dengan hak sudo
  • Nama domain (atau subdomain) untuk server Mastodon, mis. nama_domain_anda.com

Mulailah dengan masuk ke VPS Anda menggunakan protokol SSH.

Kami akan menjalankan semua perintah sebagai root dalam tutorial ini, jadi jika Anda tidak menggunakan akun root, beralihlah ke root atau gunakan perintah sudo di depan perintah. Atau, pastikan Anda menjalankan setiap perintah dengan awalan 'sudo'.

sudo -i

Langkah 1:Menambahkan Repositori yang Diperlukan

Pada langkah ini, kami akan menambahkan repositori yang diperlukan ke sistem kami.

Untuk memastikan curl terinstal di sistem Anda, jalankan perintah:

apt install -y curl

Aktifkan repositori NodeSource dengan perintah curl berikut:

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

Dengan menggunakan perintah berikut, kami akan mengimpor kunci GPG repositori. Setelah ini, kami akan mengaktifkan repositori APT Benang:

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

Langkah 2:Memasang Paket

Sekarang kita akan menginstal paket sistem yang diperlukan untuk 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

Berikut penjelasan singkat tentang dependensi yang baru saja kita instal:

  • imagemagick – Mastodon menggunakan ImageMagick untuk operasi terkait gambar
  • ffmpeg – Mastodon menggunakan FFmpeg untuk konversi GIF ke MP4
  • libprotobuf-dev dan protobuf-compiler – Mastodon menggunakan ini untuk deteksi bahasa
  • nginx – Nginx digunakan sebagai server web
  • redis-* – Mastodon menggunakan Redis untuk penyimpanan struktur data dalam memorinya
  • postgresql-* – Mastodon menggunakan PostgreSQL sebagai database SQL-nya
  • nodejs – Node digunakan untuk API streaming Mastodon
  • benang – Benang adalah pengelola paket Node.js
  • Paket -dev lainnya, g++ – ini diperlukan untuk kompilasi Ruby menggunakan ruby-build.

Langkah 3:Menginstal Ruby

Ruby juga merupakan salah satu persyaratan untuk Mastodon dan kami akan menginstalnya pada langkah ini. Kami akan menggunakan 'rbenv' untuk mengelola versi Ruby. Tetapi karena rbenv perlu diinstal untuk pengguna Linux tertentu, hal pertama yang perlu kita lakukan adalah membuat pengguna Mastodon baru. Untuk membuat pengguna Mastodon, kita akan menjalankan perintah:

adduser --disabled-login mastodon

Kemudian beralih ke pengguna mastodon dengan perintah:

su - mastodon

Dan dengan perintah berikut kita akan menginstal rbenv dan 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

Setelah kita menyelesaikan instalasi rbenv dan rbenv-build, kita dapat menginstal versi Ruby yang kita butuhkan:

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

Karena ruby_2.6.0 hadir dengan bundler yang tidak kompatibel dengan versi permata default, kami perlu memperbarui permata:

gem update --system

Selain itu, kita perlu menginstal bundler:

gem install bundler --no-document

Setelah semua langkah diproses, kita dapat kembali ke pengguna root:

exit

Langkah 4:Menyiapkan PostgreSQL

Kami akan membuat pengguna PostgreSQL yang dapat digunakan oleh pengguna Linux dengan nama pengguna yang sama tanpa memerlukan kata sandi terpisah. Ini adalah metode yang sangat sederhana yang menggunakan otentikasi “ident” yang memungkinkan penyiapan yang mudah serta memungkinkan pengguna lokal mengakses database tanpa kata sandi.

Anda dapat membuka perintah Postgres dengan beralih ke pengguna postgres, lalu menjalankan psql perintah, atau Anda dapat menjalankan perintah berikut:

sudo -u postgres psql

Jalankan perintah:

CREATE USER mastodon CREATEDB;

Keluar dari perintah Postgres dengan:

\q

Langkah 5:Menyiapkan Mastodon

Karena kami telah menyiapkan server untuk menginstal Mastodon, sekarang kami dapat melanjutkan dengan mengunduh kode Mastodon. Beralih ke pengguna mastodon dengan perintah:

su - mastodon

Kami akan menggunakan git untuk mengkloning rilis stabil terbaru Mastodon dengan menjalankan perintah:

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)

Langkah 6:Memasang Ketergantungan Ruby dan JavaScript

Ini adalah dependensi terakhir yang perlu kita instal. Kami akan menggunakan bundler untuk menginstal dependensi Ruby lainnya:

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

dan gunakan benang untuk menginstal dependensi Node.js:

yarn install --pure-lockfile

Langkah 7:Membuat File Konfigurasi

Kita dapat menjalankan wizard pengaturan interaktif untuk menghasilkan file konfigurasi:

RAILS_ENV=production bundle exec rake mastodon:setup

Sekarang kita dapat beralih kembali ke akun root karena hanya itu yang harus kita lakukan dengan pengguna mastodon.

exit

Langkah 8:Menyiapkan Nginx

Mastodon hadir secara default dengan template konfigurasi Nginx. Pada langkah selanjutnya, kita akan menggunakan salinan template konfigurasi ini dan menyesuaikannya dengan kebutuhan kita.

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

Kemudian edit /etc/nginx/sites-available/mastodon.conf dan ganti your_domain.com dengan nama domain Anda yang sebenarnya.

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

Kita perlu memuat ulang Nginx agar perubahan diterapkan:

systemctl reload nginx

Jika karena alasan tertentu Anda secara tidak sengaja kekurangan file Nginx di lokasi tersebut, maka Anda dapat menggunakan konfigurasi Nginx berikut dan memodifikasinya sesuai kebutuhan Anda.

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

Ingatlah untuk menyimpan dan keluar dari file, dan restart Nginx seperti yang ditunjukkan di atas untuk mengakui file baru.

Langkah 9:Memperoleh Sertifikat SSL

Kami akan menggunakan Let's Encrypt untuk menghasilkan sertifikat SSL gratis:

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

Harap jangan lupa untuk mengganti your_domain.com dengan nama domain Anda yang sebenarnya. Sekarang kita dapat mengedit /etc/nginx/sites-available/mastodon.conf file konfigurasi dengan:

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

Batalkan komentar dan ubah ssl_certificate dan ssl_certificate_key garis. Setelah selesai mengedit file konfigurasi, kita perlu memuat ulang Nginx sekali lagi agar perubahan dapat diterapkan:

systemctl reload nginx

Pada titik ini, jika Anda mencoba mengakses domain di browser web pilihan Anda, Anda tidak akan dapat melihat Mastodon. Ini karena proses Mastodon kami belum dimulai.

Langkah 10:Menyiapkan Layanan systemd

Pada langkah ini, kita akan memulai dan mengaktifkan layanan Mastodon di server. Kita cukup menyalin template layanan systemd dari direktori Mastodon:

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

Kami dapat memeriksa ulang dan memastikan bahwa nama pengguna dan jalur dalam file ini benar:

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

Terakhir, kita dapat memulai dan mengaktifkan layanan sistem Mastodon:

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

Jika file systemd hilang, Anda dapat menggunakan konfigurasi berikut. Anda perlu membuat tiga file layanan Mastodon systemd.

Untuk layanan pekerja web Mastodon masukkan berikut ini:

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

Tempatkan kode berikut:

[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

Kemudian simpan dan keluar.

Untuk layanan antrian latar belakang Mastodon:

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

Rekatkan kode berikut:

[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

Kemudian simpan dan keluar dari file.

Untuk layanan API streaming Mastodon:

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

Tempatkan kode berikut:

[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

Simpan dan keluar.

Anda harus memuat ulang daftar daemon systemctl agar perubahan diterapkan:

systemctl daemon-reload

Anda sekarang seharusnya dapat memulai dan mengaktifkan layanan sistem Mastodon seperti yang kami lakukan sebelumnya.

Selamat! Anda telah berhasil menginstal Mastodon di server Anda. Anda dapat mengaksesnya dengan membuka https://domain_anda.com/.

Pada artikel ini, kami menunjukkan kepada Anda cara menginstal Mastodon di Ubuntu 18.04. Sekarang Anda dapat menggunakan pengetahuan ini dan membuat jejaring sosial pribadi Anda dengan aplikasi luar biasa ini.

Tentu saja, jika Anda adalah salah satu pelanggan Managed Ubuntu Hosting, Anda tidak perlu menginstal Mastodon di VPS Ubuntu 18.04 Anda – cukup tanyakan kepada admin kami, duduk, dan bersantai. Admin kami akan segera menginstal Mastodon di Ubuntu 18.04 untuk Anda.

PS. Jika Anda menyukai posting ini tentang cara menginstal Mastodon di VPS Ubuntu 18.04, silakan bagikan dengan teman-teman Anda di jejaring sosial menggunakan tombol di bawah ini, atau cukup tinggalkan komentar di bagian komentar. Terima kasih.


Panels
  1. Cara Menginstal ISPConfig 3 di Ubuntu 18.04

  2. Cara Menginstal Webmin di Ubuntu 18.04

  3. Cara menginstal Panda3D di Ubuntu 10.04

  1. Cara menginstal Zabbix di Ubuntu

  2. Cara menginstal Observium di Ubuntu 14.04

  3. Cara Menginstal Java di Ubuntu 16.04

  1. Cara Menginstal ATutor di Ubuntu 14.04

  2. Cara Menginstal Odoo 10 di Ubuntu 16.04

  3. Cara Menginstal Go di Ubuntu 18.04