GNU/Linux >> Belajar Linux >  >> Debian

Cara Memasang Platform Jejaring Sosial Mastodon di Debian 10

Mastodon adalah platform jejaring sosial open-source yang sangat mirip dengan Twitter. Anda dapat mengikuti pengguna lain dan memposting pesan dan gambar dengan Mastodon. Itu ditulis dalam Ruby dan JavaScript, dan siapa pun dapat menggunakannya secara pribadi dan aman. Mastodon juga menyediakan aplikasi untuk berbagai platform seperti Android dan iOS.

Dalam tutorial ini, kami akan menunjukkan cara menginstal Mastodon di Debian 10.

Persyaratan

  • Server yang menjalankan Debian 10.
  • Kata sandi root dikonfigurasi di server Anda.
  • Nama domain yang valid ditunjukkan dengan alamat IP server Anda. Dalam tutorial ini, kita akan menggunakan test.linuxbuz.com.

Memulai

Pertama, disarankan untuk memperbarui sistem Anda dengan versi terbaru. Anda dapat melakukannya dengan menjalankan perintah berikut:

apt-get update -y
apt-get upgrade -y

Setelah memperbarui sistem Anda, Anda perlu menginstal beberapa dependensi yang diperlukan oleh Mastodon. Anda dapat menginstal semuanya dengan perintah berikut:

apt-get install software-properties-common dirmngr apt-transport-https ca-certificates curl gcc g++ make imagemagick ffmpeg libpq-dev libxml2-dev libxslt1-dev file git-core libprotobuf-dev protobuf-compiler pkg-config autoconf bison build-essential libssl-dev libyaml-dev libreadline-dev libidn11-dev libicu-dev libjemalloc-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm-dev -y

Setelah semua dependensi terinstal, Anda dapat melanjutkan ke langkah berikutnya.

Instal Node.js

Mastodon membutuhkan Node.js versi 8.x dan Yarn untuk diinstal pada sistem Anda. Untuk menginstal Node.js, tambahkan repositori Node.js ke server Anda dengan perintah berikut:

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

Setelah repositori ditambahkan, instal Node.js versi 8 dengan perintah berikut:

apt-get install nodejs -y

Selanjutnya, unduh dan tambahkan kunci GPG Benang dan aktifkan repositori dengan perintah berikut:

curl -sL 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

Setelah ditambahkan, perbarui repositori dan instal Yarn dengan perintah berikut:

apt-get update -y
apt-get install yarn -y

Setelah selesai, Anda dapat melanjutkan ke langkah berikutnya.

Instal dan Konfigurasi PostgreSQL

Mastodon menggunakan PostgreSQL untuk menyimpan data mereka. Anda dapat menginstal PostgreSQL versi terbaru dengan perintah berikut:

apt-get install postgresql postgresql-contrib -y

Setelah terinstal, masuk ke PostgreSQL dengan perintah berikut:

su - postgres
[email protected]:~$ psql
psql (11.5 (Debian 11.5-1+deb10u1))
Type "help" for help.

Selanjutnya, buat pengguna untuk Mastodon dengan perintah berikut:

postgres=# CREATE USER mastodon CREATEDB;

Selanjutnya, keluar dari shell PostgreSQL dengan perintah berikut:

postgres=#exit

Instal Ruby

Mastodon menggunakan Ruby on Rails untuk tujuan back-end. Pertama, Anda perlu membuat pengguna sistem baru untuk menjalankan server Mastodon.

Anda dapat membuatnya dengan perintah berikut:

adduser --disabled-login --gecos 'Mastodon Server' mastodon

Setelah dibuat, login ke pengguna mastodon dengan perintah berikut:

su - mastodon

Selanjutnya, clone repositori rbenv dengan perintah berikut:

git clone https://github.com/rbenv/rbenv.git ~/.rbenv

Selanjutnya, atur rbenv dan ruby-build dengan perintah berikut:

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 selesai, instal Ruby versi terbaru dengan perintah berikut:

RUBY_CONFIGURE_OPTS=--with-jemalloc rbenv install 2.6.1

Setelah diinstal, Anda akan mendapatkan output berikut:

Downloading ruby-2.6.1.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.1.tar.bz2
Installing ruby-2.6.1...

Installed ruby-2.6.1 to /home/mastodon/.rbenv/versions/2.6.1

Selanjutnya, atur Ruby tersedia secara global dengan perintah berikut:

rbenv global 2.6.1

Selanjutnya, perbarui permata dan instal bundler dengan perintah berikut:

gem update --system
gem install bundler --no-document

Setelah selesai, Anda dapat memeriksa Ruby dengan perintah berikut:

ruby --version

Konfigurasi Mastodon

Pertama, login ke pengguna mastodon dan unduh repositori mastodon git dengan perintah berikut:

su - mastodon
git clone https://github.com/tootsuite/mastodon.git ~/live
cd ~/live

Selanjutnya, periksa cabang terbaru dengan perintah berikut:

git checkout $(git tag -l | grep -v 'rc[0-9]*$' | sort -V | tail -n 1)

Anda akan mendapatkan output berikut:

Note: checking out 'v2.9.3'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b 

HEAD is now at 06f906aca Bump version to 2.9.3

Selanjutnya, instal semua dependensi yang diperlukan oleh Ruby dan Node.js dengan perintah berikut:

bundle install -j$(getconf _NPROCESSORS_ONLN) --deployment --without development test
yarn install --pure-lockfile

Sekarang, atur Mastodon dengan perintah berikut:

RAILS_ENV=production bundle exec rake mastodon:setup

Selama proses penyiapan, Anda akan ditanyai beberapa pertanyaan. Jawab semua pertanyaan seperti yang ditunjukkan di bawah ini:

Your instance is identified by its domain name. Changing it afterward will break things.
Domain name: test.linuxbuz.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

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: a9a78a4c2eb442d72eb946f94ebe9a00
You can change your password once you login.

Setelah selesai, keluar dari pengguna mastodon dengan perintah berikut:

exit

Konfigurasi Nginx untuk Mastodon

Selanjutnya, Anda perlu menginstal Nginx dan Certbot ke sistem Anda. Secara default, Certbot versi terbaru tidak tersedia di repositori default Debian 10. Jadi, Anda perlu menambahkan repositori Certbot ke sistem Anda.

Anda dapat menambahkannya dengan perintah berikut:

add-apt-repository ppa:certbot/certbot

Selanjutnya, perbarui repositori dan instal Certbot dengan Nginx dengan menjalankan perintah berikut:

apt-get update -y
apt-get install nginx python-certbot-nginx -y

Setelah kedua paket diinstal, salin file konfigurasi Nginx dari direktori Mastodon ke Nginx dengan perintah berikut:

cp /home/mastodon/live/dist/nginx.conf /etc/nginx/sites-available/mastodon.conf

Selanjutnya, aktifkan file konfigurasi virtual host Mastodon dengan perintah berikut:

ln -s /etc/nginx/sites-available/mastodon.conf /etc/nginx/sites-enabled/

Secara default, file konfigurasi host virtual Mastodon dikonfigurasi dengan domain example.com. Jadi Anda perlu mengganti domain example.com dengan nama domain Anda di file mastodon.conf. Anda dapat menggantinya dengan perintah berikut:

sed -i 's/example.com/test.linuxbuz.com/g' /etc/nginx/sites-enabled/mastodon.conf

Selanjutnya, restart layanan Nginx untuk menerapkan konfigurasi:

systemctl restart nginx

Selanjutnya, unduh sertifikat SSL gratis Let's Encrypt dan konfigurasikan Nginx untuk menggunakan sertifikat ini dengan menjalankan perintah certbot:

certbot --nginx -d test.linuxbuz.com

Ini akan mengunduh sertifikat SSL Let's Encrypt gratis dan mengonfigurasi Nginx untuk domain Anda test.linuxbuz.com.

File konfigurasi Nginx Anda untuk Mastodon sekarang terlihat seperti berikut:

cat /etc/nginx/sites-enabled/mastodon.conf

Keluaran:

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 {
    if ($host = test.linuxbuz.com) {
        return 301 https://$host$request_uri;
    } # managed by Certbot


  listen 80;
  listen [::]:80;
  server_name test.linuxbuz.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 test.linuxbuz.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/test.linuxbuz.com/fullchain.pem;
  # ssl_certificate_key /etc/letsencrypt/live/test.linuxbuz.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_valid 410 24h;
    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;

    ssl_certificate /etc/letsencrypt/live/test.linuxbuz.com/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/test.linuxbuz.com/privkey.pem; # managed by Certbot
}

Konfigurasi Layanan Systemd untuk Mastodon

Nginx sekarang diinstal dan dikonfigurasi untuk melayani Mastodon. Selanjutnya, Anda perlu mengonfigurasi file layanan systemd untuk Mastodon. Untuk melakukannya, salin template layanan systemd dari direktori Mastodon:

cp /home/mastodon/live/dist/mastodon-web.service /etc/systemd/system/
cp /home/mastodon/live/dist/mastodon-sidekiq.service /etc/systemd/system/
cp /home/mastodon/live/dist/mastodon-streaming.service /etc/systemd/system/

Selanjutnya, mulai semua layanan dan aktifkan untuk memulai setelah reboot dengan perintah berikut:

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

Akses Antarmuka Web Mastodon

Sekarang, buka browser web Anda dan ketik URL https://test.linuxbuz.com . Anda akan diarahkan ke halaman berikut:

Sekarang, berikan email dan kata sandi admin Anda yang telah Anda buat sebelumnya dan klik Log di tombol. Anda akan melihat halaman berikut:

Sekarang, klik tombol LEWATKAN! tombol. Anda akan melihat halaman berikut:

Sekarang, klik Berikutnya tombol. Anda akan melihat halaman berikut:

Sekarang, klik tombol SELESAI TUTORIAL ! tombol. Anda akan melihat dasbor Mastodon di halaman berikut:

Selamat! Anda telah berhasil menginstal dan mengkonfigurasi Mastodon di server Debian 10. Anda sekarang dapat dengan mudah membuat jaringan media sosial Anda sendiri menggunakan Mastodon. Jangan ragu untuk bertanya kepada saya jika Anda memiliki pertanyaan.


Debian
  1. Cara Menginstal Apache ZooKeeper di Debian 10

  2. Cara Menginstal osquery di Debian 10

  3. Cara Instal Apache Cassandra di Debian 11

  1. Cara Menginstal Platform Jejaring Sosial Friendica di Ubuntu 20.04

  2. Cara Menginstal WildFly di Debian 11

  3. Cara Menginstal Mastodon di Debian 9

  1. Cara Menginstal Kerangka Ionic di Debian 10

  2. Cara Memasang Kerangka Kerja Django di Debian 11

  3. Cara Menginstal PHP 8 di Debian 11