GNU/Linux >> Znalost Linux >  >> Debian

Jak nainstalovat platformu sociálních sítí Mastodon na Debian 10

Mastodon je open-source platforma sociálních sítí velmi podobná Twitteru. Pomocí Mastodon můžete sledovat ostatní uživatele a posílat zprávy a obrázky. Je napsán v Ruby a JavaScriptu a kdokoli jej může používat soukromě a bezpečně. Mastodon také poskytuje aplikaci pro různé platformy, jako je Android a iOS.

V tomto tutoriálu vám ukážeme, jak nainstalovat Mastodon na Debian 10.

Požadavky

  • Server se systémem Debian 10.
  • Na vašem serveru je nakonfigurováno heslo uživatele root.
  • Platný název domény ukazuje IP adresa vašeho serveru. V tomto tutoriálu budeme používat test.linuxbuz.com.

Začínáme

Nejprve se doporučuje aktualizovat váš systém na nejnovější verzi. Můžete to udělat spuštěním následujícího příkazu:

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

Po aktualizaci vašeho systému budete muset nainstalovat některé závislosti požadované Mastodonem. Všechny je můžete nainstalovat pomocí následujícího příkazu:

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

Jakmile jsou všechny závislosti nainstalovány, můžete přejít k dalšímu kroku.

Instalovat Node.js

Mastodon vyžaduje, aby byl ve vašem systému nainstalován Node.js verze 8.x a Yarn. Chcete-li nainstalovat Node.js, přidejte úložiště Node.js na svůj server pomocí následujícího příkazu:

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

Po přidání úložiště nainstalujte Node.js verze 8 pomocí následujícího příkazu:

apt-get install nodejs -y

Dále si stáhněte a přidejte klíč GPG Yarn a povolte úložiště pomocí následujícího příkazu:

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

Po přidání aktualizujte úložiště a nainstalujte Yarn pomocí následujících příkazů:

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

Po dokončení můžete přejít k dalšímu kroku.

Instalace a konfigurace PostgreSQL

Mastodon používá PostgreSQL k ukládání svých dat. Nejnovější verzi PostgreSQL můžete nainstalovat pomocí následujícího příkazu:

apt-get install postgresql postgresql-contrib -y

Po instalaci se přihlaste do PostgreSQL pomocí následujícího příkazu:

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

Dále vytvořte uživatele pro Mastodon pomocí následujícího příkazu:

postgres=# CREATE USER mastodon CREATEDB;

Dále ukončete prostředí PostgreSQL pomocí následujícího příkazu:

postgres=#exit

Instalovat Ruby

Mastodon používá Ruby on Rails pro účely back-endu. Nejprve budete muset vytvořit nového systémového uživatele pro spuštění serveru Mastodon.

Můžete jej vytvořit pomocí následujícího příkazu:

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

Po vytvoření se přihlaste k uživateli mastodonta pomocí následujícího příkazu:

su - mastodon

Dále naklonujte úložiště rbenv pomocí následujícího příkazu:

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

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

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

Po dokončení nainstalujte nejnovější verzi Ruby pomocí následujícího příkazu:

RUBY_CONFIGURE_OPTS=--with-jemalloc rbenv install 2.6.1

Po instalaci byste měli získat následující výstup:

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

Dále nastavte globálně dostupný Ruby pomocí následujícího příkazu:

rbenv global 2.6.1

Dále aktualizujte drahokam a nainstalujte bundler pomocí následujícího příkazu:

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

Jakmile skončíte, můžete zkontrolovat Ruby pomocí následujícího příkazu:

ruby --version

Konfigurovat Mastodon

Nejprve se přihlaste k uživateli mastodon a stáhněte si úložiště mastodon git pomocí následujícího příkazu:

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

Dále zkontrolujte nejnovější větev pomocí následujícího příkazu:

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

Měli byste získat následující výstup:

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

Dále nainstalujte všechny závislosti požadované ruby ​​a Node.js pomocí následujícího příkazu:

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

Nyní nastavte Mastodon pomocí následujícího příkazu:

RAILS_ENV=production bundle exec rake mastodon:setup

Během procesu nastavení budete dotázáni na několik otázek. Odpovězte na všechny otázky, jak je uvedeno níže:

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.

Jakmile skončíte, ukončete uživatele mastodonta následujícím příkazem:

exit

Konfigurovat Nginx pro Mastodon

Dále budete muset do svého systému nainstalovat Nginx a Certbot. Ve výchozím nastavení není nejnovější verze Certbotu k dispozici ve výchozím úložišti Debian 10. Budete tedy muset do svého systému přidat úložiště Certbot.

Můžete jej přidat pomocí následujícího příkazu:

add-apt-repository ppa:certbot/certbot

Dále aktualizujte úložiště a nainstalujte Certbot s Nginx spuštěním následujícího příkazu:

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

Jakmile jsou oba balíčky nainstalovány, zkopírujte konfigurační soubor Nginx z adresáře Mastodon do Nginx pomocí následujícího příkazu:

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

Dále povolte konfigurační soubor virtuálního hostitele Mastodon pomocí následujícího příkazu:

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

Ve výchozím nastavení je konfigurační soubor virtuálního hostitele Mastodon nakonfigurován s doménou example.com. Budete tedy muset nahradit doménu example.com názvem vaší domény v souboru mastodon.conf. Můžete jej nahradit následujícím příkazem:

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

Poté restartujte službu Nginx, abyste použili konfiguraci:

systemctl restart nginx

Dále si stáhněte bezplatný certifikát SSL Let's Encrypt a nakonfigurujte Nginx tak, aby tento certifikát používal spuštěním příkazu certbot:

certbot --nginx -d test.linuxbuz.com

Tím se stáhne bezplatný certifikát Let's Encrypt SSL a nakonfiguruje se Nginx pro vaši doménu test.linuxbuz.com.

Váš konfigurační soubor Nginx pro Mastodon nyní vypadá takto:

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

Výstup:

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
}

Konfigurovat službu Systemd pro Mastodon

Nginx je nyní nainstalován a nakonfigurován pro obsluhu Mastodon. Dále budete muset nakonfigurovat soubor služby systemd pro Mastodon. Chcete-li tak učinit, zkopírujte šablony služby systemd z adresáře 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/

Dále spusťte všechny služby a povolte jejich spuštění po restartu pomocí následujícího příkazu:

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

Přístup k webovému rozhraní Mastodon

Nyní otevřete webový prohlížeč a zadejte adresu URL https://test.linuxbuz.com . Budete přesměrováni na následující stránku:

Nyní zadejte svůj administrátorský e-mail a heslo, které jste vytvořili dříve, a klikněte na Protokol v knoflík. Měli byste vidět následující stránku:

Nyní klikněte na JEDEME! knoflík. Měli byste vidět následující stránku:

Nyní klikněte na Další knoflík. Měli byste vidět následující stránku:

Nyní klikněte na FINISH NÁVOD ! knoflík. Na následující stránce byste měli vidět řídicí panel Mastodon:

Gratulujeme! úspěšně jste nainstalovali a nakonfigurovali Mastodon na serveru Debian 10. Nyní si můžete snadno vytvořit svou vlastní sociální síť pomocí Mastodon. Pokud máte nějaké dotazy, neváhejte se mě zeptat.


Debian
  1. Jak nainstalovat Apache ZooKeeper na Debian 10

  2. Jak nainstalovat osquery na Debian 10

  3. Jak nainstalovat WildFly na Debian 11

  1. Jak nainstalovat platformu sociální sítě Friendica na Ubuntu 20.04

  2. Jak nainstalovat Apache Cassandra na Debian 11

  3. Jak nainstalovat Mastodon na Debian 9

  1. Jak nainstalovat Ionic Framework na Debian 10

  2. Jak nainstalovat Django Framework na Debian 11

  3. Jak nainstalovat PHP 8 na Debian 11