การติดตั้ง Mastodon บน CentOS 7

Mastodon เป็น microblogging แบบโอเพ่นซอร์สที่โฮสต์และเซิร์ฟเวอร์เครือข่ายสังคมออนไลน์ มันมีคุณสมบัติเช่นเดียวกับ Twitter; แต่แทนที่จะถูกควบคุมโดย บริษัท เดียวมันเป็นพันธมิตรของเซิร์ฟเวอร์กระจายอำนาจที่เชื่อมต่อกันเพื่อสร้างระบบเครือข่ายสังคมออนไลน์ทั้งหมด ทีมเล็ก ๆ สามารถเริ่มต้นเซิร์ฟเวอร์ Mastodon ของพวกเขาเพื่อสื่อสารระหว่างกันเช่นเดียวกับผู้ใช้รายอื่นของชุมชนรวม นอกจากนี้ยังช่วยให้คุณสามารถเลือกนโยบายความเป็นส่วนตัวและการกลั่นกรองของคุณเองและกำหนดวิธีการสื่อสารกับผู้ใช้อื่นของเซิร์ฟเวอร์ที่แตกต่างกัน เนื้อหาที่ผู้ใช้แต่ละรายสร้างและสมัครรับข้อมูลนั้นโฮสต์บนเซิร์ฟเวอร์ที่บัญชีของเขา / เธอถูกสร้างขึ้น ผู้ใช้สามารถติดตามกันได้แม้ว่าพวกเขาจะไม่ได้โฮสต์บนเซิร์ฟเวอร์เดียวกัน ผู้ใช้แต่ละคนในเครือข่าย Mastodon มีชื่อหรือ ID ที่ไม่ซ้ำกันซึ่งอยู่ใน@[email protected]รูปแบบ. แอปพลิเคชันไคลเอนต์สำหรับ Mastodon พร้อมใช้งานสำหรับแพลตฟอร์มเกือบทั้งหมด

ข้อกำหนดเบื้องต้น

  • อินสแตนซ์ของเซิร์ฟเวอร์ Vultr CentOS 7
  • sudo ผู้ใช้

หมายเหตุ: เราจะใช้social.example.comเป็นชื่อโดเมนที่ใช้สำหรับอินสแตนซ์ Mastodon แทนที่เกิดขึ้นทั้งหมดsocial.example.comด้วยชื่อโดเมนจริงที่คุณต้องการที่จะใช้สำหรับแอพลิเคชันของคุณสูญพันธุ์

อัปเดตระบบพื้นฐานของคุณโดยใช้คำแนะนำวิธีอัปเดต CentOS 7หากจำเป็น เมื่อระบบของคุณอัปเดตแล้วให้ดำเนินการติดตั้งการอ้างอิงที่ต้องการ

การติดตั้งการพึ่งพา

สูญพันธุ์ต้องสูญเสียการทำงานหลายอย่าง ติดตั้งเวอร์ชันล่าสุดNode.jsซึ่งจะใช้ในการรวบรวมไฟล์ JavaScript

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

ติดตั้งYarnซึ่งเป็นแอพพลิเคชั่นตัวจัดการการพึ่งพาที่รวดเร็วเชื่อถือได้และปลอดภัย เราจะใช้ Yarn เพื่อติดตั้งการพึ่งพา Node.js

sudo wget https://dl.yarnpkg.com/rpm/yarn.repo -O /etc/yum.repos.d/yarn.repo
sudo yum -y install yarn

Redisติดตั้ง Redis เป็นที่เก็บโครงสร้างข้อมูลในหน่วยความจำและแอปพลิเคชันแคช

sudo yum -y install redis

เริ่ม Redis และเปิดใช้งานเพื่อเริ่มการบูทโดยอัตโนมัติ

sudo systemctl start redis
sudo systemctl enable redis

ติดตั้งการขึ้นต่ออีกสองสามครั้งซึ่งจำเป็นสำหรับการสร้างการRubyติดตั้งและการพึ่งพาอื่น ๆ

sudo yum -y install ImageMagick git libxml2-devel libxslt-devel gcc bzip2 openssl-devel zlib-devel gdbm-devel ncurses-devel autoconf automake bison gcc-c++ libffi-devel libtool patch readline-devel sqlite-devel glibc-headers glibc-devel libyaml-devel libicu-devel libidn-devel

คุณจะต้องติดตั้งเครื่องมือพัฒนา

sudo yum -y groupinstall 'Development Tools'

การติดตั้งและกำหนดค่า PostgreSQL

PostgreSQL เป็นระบบฐานข้อมูลเชิงวัตถุ คุณจะต้องเพิ่มที่เก็บ PostgreSQL ในระบบของคุณเนื่องจากที่yumเก็บเริ่มต้นมีแอปพลิเคชันรุ่นเก่ากว่า

sudo rpm -Uvh https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm

ติดตั้งเซิร์ฟเวอร์ฐานข้อมูล PostgreSQL

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

เริ่มต้นฐานข้อมูล

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

แก้ไขpg_hba.confไฟล์เพื่อเปิดใช้งานการMD5ตรวจสอบตาม

sudo nano /var/lib/pgsql/9.6/data/pg_hba.conf

ค้นหาบรรทัดต่อไปนี้และการเปลี่ยนแปลงpeerไปtrustและการidentmd5

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     peer
# IPv4 local connections:
host    all             all             127.0.0.1/32            ident
# IPv6 local connections:
host    all             all             ::1/128                 ident

เมื่ออัปเดตแล้วการกำหนดค่าควรมีลักษณะเช่นนี้

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     trust
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5

เริ่มต้นเซิร์ฟเวอร์ PostgreSQL และเปิดใช้งานให้เริ่มการบู๊ตอัตโนมัติ

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

เปลี่ยนรหัสผ่านสำหรับผู้ใช้ PostgreSQL เริ่มต้น

sudo passwd postgres

ล็อกอินเข้าสู่เชลล์ในฐานะPostgreSQLผู้ใช้

sudo su - postgres

สร้างPostgreSQLผู้ใช้ใหม่สำหรับ Mastodon

createuser mastodon

PostgreSQL จัดเตรียมpsqlเชลล์เพื่อรันเคียวรีบนฐานข้อมูล สลับไปยังเชลล์ PostgreSQL โดยเรียกใช้

psql

ตั้งรหัสผ่านสำหรับผู้ใช้ที่สร้างขึ้นใหม่สำหรับฐานข้อมูล Mastodon และให้สิทธิ์ในการเพิ่มฐานข้อมูลใหม่

ALTER USER mastodon WITH ENCRYPTED password 'DBPassword' CREATEDB;

แทนที่DBPasswordด้วยรหัสผ่านที่คาดเดายาก ออกจากpsqlเปลือก:

\q

เปลี่ยนเป็นsudoผู้ใช้

exit

ติดตั้งการขึ้นต่อกันของ PostgreSQL ที่จำเป็นเพิ่มเติม

sudo yum -y install libpqxx-devel protobuf-devel

ติดตั้ง Ruby

สร้างผู้ใช้ใหม่สำหรับ Mastodon และเปลี่ยนเป็นผู้ใช้ที่สร้างขึ้นใหม่

sudo adduser mastodon -d /opt/mastodon
sudo su - mastodon

เราจะติดตั้ง Ruby เวอร์ชันล่าสุดโดยใช้ Ruby Version Manager หรือ RVM มันถูกใช้เพื่อติดตั้งและจัดการ Ruby หลายเวอร์ชัน

เพิ่มGPGรหัสของ RVM ไปยังเซิร์ฟเวอร์ของคุณ

gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB

ติดตั้ง RVM

curl -sSL https://get.rvm.io | bash -s stable
source /opt/mastodon/.rvm/scripts/rvm

ตอนนี้ดึงรายชื่อรุ่นที่มีของ Ruby

rvm list known

คุณจะเห็นผลลัพธ์ต่อไปนี้

[mastodon@vultr ~]$ rvm list known
# MRI Rubies
[ruby-]1.8.6[-p420]
[ruby-]1.8.7[-head] # security released on head
[ruby-]1.9.1[-p431]
[ruby-]1.9.2[-p330]
[ruby-]1.9.3[-p551]
[ruby-]2.0.0[-p648]
[ruby-]2.1[.10]
[ruby-]2.2[.7]
[ruby-]2.3[.4]
[ruby-]2.4[.1]
ruby-head

...

ตอนนี้ติดตั้ง Ruby เวอร์ชั่นล่าสุดจากรายการ

rvm install 2.4

ใช้ Ruby รุ่นที่ติดตั้งไว้

rvm use 2.4

คุณควรจะตรวจสอบเวอร์ชันของมัน

ruby -v

คุณควรเห็นผลลัพธ์ที่คล้ายกัน

[mastodon@vultr ~]$ ruby -v
ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-linux]

ติดตั้งbundlerซึ่งเป็นตัวจัดการการพึ่งพาสำหรับแอปพลิเคชัน Ruby

gem install bundler

ตอนนี้เปลี่ยนเป็นโฮมไดเรกทอรีของผู้ใช้ Mastodon และโคลนไฟล์ที่เก็บแอปพลิเคชันจาก Github

cd ~
git clone https://github.com/tootsuite/mastodon.git app

ย้ายไดเรกทอรีแอปพลิเคชันและเช็คเอาต์แอปพลิเคชั่นรุ่นล่าสุด

cd ~/app
git checkout $(git describe --tags `git rev-list --tags --max-count=1`)

กำหนดค่าการbundleใช้เส้นทางที่กำหนดเองสำหรับการกำหนดค่า PostgreSQL รวมถึงติดตั้ง Ruby dependencies

bundle config build.pg --with-pg-config=/usr/pgsql-9.6/bin/pg_config
bundle install --deployment --without development test

ติดตั้งการพึ่งพา Node.js โดยใช้ Yarn

yarn install --pure-lockfile

คุณจะต้องสร้างไฟล์กำหนดค่าสำหรับแอปพลิเคชัน Mastodon คัดลอกไฟล์การกำหนดค่าตัวอย่าง

cd ~/app
cp .env.production.sample .env.production

ก่อนที่จะแก้ไขไฟล์ให้สร้างสามแบบsecretsด้วยการรันคำสั่งต่อไปนี้สามครั้ง คุณจะต้องตั้งค่าความลับเหล่านี้ในไฟล์กำหนดค่า

RAILS_ENV=production bundle exec rake secret

คุณควรได้ผลลัพธ์ที่คล้ายกัน

[mastodon@vultr app]$ RAILS_ENV=production bundle exec rake secret
0f17dab1cf4a07f6fac671ecd5815adcb59d012b338dae9350c66402250c6c729dccd6182b1a8f75c4fde55453ce283ea66e07ed4466cdc6d4d6974c98512967

แก้ไขไฟล์การกำหนดค่าโดยใช้nanoโปรแกรมแก้ไข

nano .env.production

ค้นหาบรรทัดต่อไปนี้และเปลี่ยนค่าให้สอดคล้อง

REDIS_HOST=127.0.0.1
REDIS_PORT=6379

จัดเตรียมหนังสือรับรองฐานข้อมูลตามผู้ใช้ฐานข้อมูลที่คุณสร้างขึ้นระหว่างการติดตั้ง PostgreSQL ระบุชื่อใด ๆ สำหรับชื่อฐานข้อมูลเนื่องจาก Mastodon จะสร้างฐานข้อมูลโดยอัตโนมัติด้วยชื่อที่คุณให้

DB_HOST=127.0.0.1
DB_USER=mastodon
DB_NAME=mastodon
DB_PASS=DBPassword
DB_PORT=5432

ตั้งค่าชื่อโดเมนของแอปพลิเคชัน

LOCAL_DOMAIN=social.example.com

ค้นหาบรรทัดต่อไปนี้และตั้งค่าเป็นความลับที่คุณสร้างขึ้น

PAPERCLIP_SECRET=
SECRET_KEY_BASE=
OTP_SECRET=

บันทึกไฟล์และออกจากตัวแก้ไข

ตอนนี้รันคำสั่งต่อไปนี้เพื่อสร้างWeb Push VAPIDคีย์ คุณจะได้รับข้อผิดพลาดขณะสร้างคีย์ Web Push VAPID หากคุณยังไม่ได้ตั้งค่าความลับในไฟล์กำหนดค่าที่กล่าวถึงข้างต้น

RAILS_ENV=production bundle exec rake mastodon:webpush:generate_vapid_key

คุณควรเห็นผลลัพธ์ต่อไปนี้

[mastodon@vultr app]$ RAILS_ENV=production bundle exec rake mastodon:webpush:generate_vapid_key
VAPID_PRIVATE_KEY=DCMQdSPkdm-mepsNh4F3suc-UIvsABCvwFd03jSVemM=
VAPID_PUBLIC_KEY=BMMVcVXmqnV0C8S_ybZ7eQH-MXBEX2exqfdPSYQiMMUF2rRxfhoEtVF931i26ebMgmslHB_nvVadOdcBPhaFEjw=

เปิดไฟล์การกำหนดค่าอีกครั้งและตั้งค่าคีย์ที่สร้างในบรรทัดที่เกี่ยวข้อง

VAPID_PRIVATE_KEY=
VAPID_PUBLIC_KEY=

สุดท้ายให้ข้อมูลของเซิร์ฟเวอร์อีเมล SMTP ของคุณเพื่อให้แอปพลิเคชันสามารถส่งอีเมลไปยังผู้ใช้ สิ่งสำคัญคือคุณต้องใช้เซิร์ฟเวอร์ SMTP ที่ใช้งานได้เนื่องจากผู้ใช้จะได้รับอีเมลพร้อมลิงก์การเปิดใช้งานเมื่อลงทะเบียนใหม่ ผู้ใช้ใหม่จะต้องคลิกที่ลิงค์การเปิดใช้งานเพื่อเปิดใช้งานบัญชีของพวกเขา

SMTP_SERVER=mail.example.com
SMTP_PORT=456
[email protected]
SMTP_PASSWORD=MailPassword
[email protected]
SMTP_TLS=true

เมื่อเสร็จแล้วให้บันทึกไฟล์และออกจากโปรแกรมแก้ไข คุณได้กำหนดค่าพื้นฐานของอินสแตนซ์ Mastodon แล้ว

ตั้งค่าฐานข้อมูล PostgreSQL เป็นครั้งแรก

RAILS_ENV=production bundle exec rails db:setup

ขั้นแรกคำสั่งด้านบนจะสร้างฐานข้อมูลใหม่ด้วยชื่อที่กล่าวถึงในการกำหนดค่า จากนั้นมันจะเขียนฐานข้อมูลตามการกำหนดค่า

เตรียมคอมไพล์CSSและJavaScriptไฟล์ทั้งหมดเพื่อสร้างแคช

RAILS_ENV=production bundle exec rails assets:precompile

ติดตั้ง Mastodon บนเซิร์ฟเวอร์ของคุณแล้ว ตอนนี้คุณจะต้องตั้งค่าNginxเว็บเซิร์ฟเวอร์เพื่อให้บริการแอพพลิเคชั่นและSystemdบริการติดตั้งเพื่อใช้บริการ Mastodon

จากนี้ไปเราจะต้องดำเนินการคำสั่งโดยใช้sudoผู้ใช้

ติดตั้ง Nginx ด้วย Let's Encrypt SSL

เราจะใช้เว็บเซิร์ฟเวอร์ Nginx เป็น reverse proxy เพื่อให้บริการแก่ผู้ใช้ นอกจากนี้เรายังจะได้รับและติดตั้งใบรับรอง SSL จาก Let's Encrypt

ติดตั้ง Nginx และ Certbot Certbot เป็นลูกค้าออกใบรับรองอย่างเป็นทางการสำหรับ Let's Encrypt CA

sudo yum -y install nginx certbot

ปรับการตั้งค่าไฟร์วอลล์ของคุณเพื่ออนุญาตมาตรฐานHTTPและHTTPSพอร์ตผ่านไฟร์วอลล์เนื่องจาก Certbot จำเป็นต้องทำการเชื่อมต่อ HTTP เพื่อตรวจสอบสิทธิ์ของโดเมน

sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload

หมายเหตุ: ในการรับใบรับรองจาก Let's Encrypt CA คุณต้องตรวจสอบให้แน่ใจว่าโดเมนที่คุณต้องการสร้างใบรับรองนั้นชี้ไปที่เซิร์ฟเวอร์ ถ้าไม่เช่นนั้นให้ทำการเปลี่ยนแปลงที่จำเป็นในระเบียน DNS ของโดเมนของคุณและรอให้ DNS เผยแพร่ก่อนทำการขอใบรับรองอีกครั้ง Certbot ตรวจสอบผู้มีอำนาจโดเมนก่อนที่จะให้ใบรับรอง

ตอนนี้ใช้เว็บเซิร์ฟเวอร์ในตัวใน Certbot เพื่อสร้างใบรับรองสำหรับโดเมนของคุณ

sudo certbot certonly --standalone -d social.example.com

ใบรับรองที่สร้างขึ้นมีแนวโน้มที่จะถูกเก็บไว้ใน/etc/letsencrypt/live/social.example.com/ไดเรกทอรี ใบรับรอง SSL จะถูกเก็บไว้เป็นและคีย์ส่วนตัวจะถูกบันทึกเป็นfullchain.pemprivkey.pem

ลองเข้ารหัสใบรับรองหมดอายุใน 90 วันดังนั้นขอแนะนำให้ตั้งค่าการต่ออายุอัตโนมัติสำหรับใบรับรองที่ใช้งาน Cron Cron เป็นบริการระบบที่ใช้ในการทำงานเป็นระยะ

เปิดไฟล์งาน cron

sudo crontab -e

เพิ่มบรรทัดต่อไปนี้

0 0 * * * /usr/bin/certbot renew --quiet

งาน cron ข้างต้นจะทำงานทุกวันเวลาเที่ยงคืน หากใบรับรองหมดอายุเนื่องจากหมดอายุใบรับรองจะต่ออายุโดยอัตโนมัติ

ตอนนี้สร้างบล็อกเซิร์ฟเวอร์ Nginx ใหม่สำหรับไซต์ Mastodon

sudo nano /etc/nginx/conf.d/mastodon.conf

เติมไฟล์ด้วยสิ่งนี้

map $http_upgrade $connection_upgrade {
  default upgrade;
  ''      close;
}

server {
  listen 80;
  listen [::]:80;
  server_name social.example.com;
  return 301 https://$host$request_uri;
}

server {
  listen 443 ssl http2;
  listen [::]:443 ssl http2;
  server_name social.example.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/letsencrypt/live/social.example.com/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/social.example.com/privkey.pem;

  keepalive_timeout    70;
  sendfile             on;
  client_max_body_size 0;

  root /opt/mastodon/app/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 @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;
}

ต้องแน่ใจว่าได้เปลี่ยนชื่อโดเมนและเส้นทางไปยังใบรับรอง SSL

ตอนนี้คุณสามารถเริ่มเว็บเซิร์ฟเวอร์ Nginx และเปิดใช้งานเพื่อเริ่มการบูทอัตโนมัติ

sudo systemctl start nginx
sudo systemctl enable nginx

คุณจะต้องอนุญาตให้พอร์ต4000ผ่านไฟร์วอลล์เนื่องจากพอร์ตจะให้บริการสตรีมมิ่ง API

sudo firewall-cmd --permanent --zone=public --add-port=4000/tcp
sudo firewall-cmd --reload

ให้สิทธิ์การดำเนินการสำหรับไดเรกทอรี Mastodon

sudo chmod +x /opt/mastodon

การตั้งค่าบริการ Systemd

คุณจะต้องเริ่มกระบวนการที่แตกต่างกันสามกระบวนการเพื่อเริ่มต้นเซิร์ฟเวอร์ Mastodon ได้สำเร็จ การใช้บริการ Systemd จะช่วยให้มั่นใจได้ว่าเซิร์ฟเวอร์ Mastodon จะเริ่มต้นโดยอัตโนมัติเมื่อบูตและกระบวนการล้มเหลว

สร้างบริการ systemd ใหม่เพื่อเรียกใช้บริการเว็บ Mastodon 3000บริการนี้จะเปิดตัวในเว็บเซิร์ฟเวอร์บนพอร์ต

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

เติมไฟล์ด้วยเนื้อหาต่อไปนี้

[Unit]
Description=Mastodon Web Service
After=network.target

[Service]
Type=simple
User=mastodon
Group=mastodon
WorkingDirectory=/opt/mastodon/app
Environment="RAILS_ENV=production"
Environment="PORT=3000"
ExecStart=/bin/bash -lc 'bundle exec puma -C config/puma.rb'
TimeoutSec=15
Restart=always

[Install]
WantedBy=multi-user.target

สร้างบริการ Systemd ที่สองเพื่อเรียกใช้บริการคิวพื้นหลัง Mastodon บริการคิว Mastodon จะดูแลภารกิจเบื้องหลังทั้งหมด

sudo nano /etc/systemd/system/mastodon-queue.service

เติมไฟล์ด้วยเนื้อหาต่อไปนี้

[Unit]
Description=Mastodon Queue Service
After=network.target

[Service]
Type=simple
User=mastodon
WorkingDirectory=/opt/mastodon/app
Environment="RAILS_ENV=production"
Environment="DB_POOL=5"
ExecStart=/bin/bash -lc 'bundle exec sidekiq -c 5 -q default -q mailers -q pull -q push'
TimeoutSec=15
Restart=always

[Install]
WantedBy=multi-user.target

สุดท้ายให้สร้างไฟล์บริการสุดท้ายสำหรับบริการ Mastodon API API

sudo nano /etc/systemd/system/mastodon-api.service

เติมไฟล์ด้วยเนื้อหาต่อไปนี้

[Unit]
Description=Mastodon Streaming
After=network.target

[Service]
Type=simple
User=mastodon
WorkingDirectory=/opt/mastodon/app
Environment="NODE_ENV=production"
Environment="PORT=4000"
ExecStart=/bin/npm run start
TimeoutSec=15
Restart=always

[Install]
WantedBy=multi-user.target

เปิดใช้งานบริการ Mastodon เพื่อเริ่มต้นในเวลาบูตโดยอัตโนมัติ

sudo systemctl enable mastodon-web mastodon-queue mastodon-api 

ในการเริ่มบริการ Mastodon คุณสามารถเรียกใช้บริการนี้ได้

sudo systemctl start mastodon-web mastodon-queue mastodon-api 

ในการตรวจสอบสถานะของบริการคุณสามารถเรียกใช้สิ่งนี้ได้

sudo systemctl status mastodon-web mastodon-queue mastodon-api 

ข้อสรุป

https://social.example.comตอนนี้คุณสามารถเข้าถึงแอปพลิเคสูญพันธุ์โดยไปที่ สร้างบัญชีผู้ใช้ใหม่บนเซิร์ฟเวอร์ของคุณและตรวจสอบบัญชีผู้ใช้โดยเปิดลิงก์ที่ส่งในอีเมล หากต้องการมอบสิทธิ์ผู้ดูแลระบบให้กับบัญชีที่คุณเพิ่งสร้างขึ้น

sudo su - mastodon && cd ~/app
RAILS_ENV=production bundle exec rails mastodon:make_admin USERNAME=<user_name>

แทนที่<user_name>ด้วยชื่อผู้ใช้จริงที่คุณใช้ในการสร้างบัญชีในส่วนต่อประสานกับ Mastodon

อินสแตนซ์ Mastodon ของคุณได้รับการติดตั้งและกำหนดค่าให้ทำงานแล้ว เริ่มต้นด้วยการเชิญเพื่อนของคุณให้เข้าร่วมอินสแตนซ์ของคุณและสำรวจคุณสมบัติที่ Mastodon จัดหาให้ คุณสามารถใช้เว็บไซต์เครือข่ายสังคมของคุณในมือถือโดยดาวน์โหลดแอปพลิเคชันใด ๆ ที่มีให้สำหรับแพลตฟอร์มต่าง ๆ



Leave a Comment

วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7 LAMP VPS

วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7 LAMP VPS

เรียนรู้วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7; ระบบการจัดการเนื้อหา Headless ที่มีความยืดหยุ่นสูงและปลอดภัย

การติดตั้ง Pagekit CMS บน CentOS 7

การติดตั้ง Pagekit CMS บน CentOS 7

ใช้ระบบที่แตกต่างกันอย่างไร Pagekit เป็น CMS โอเพนซอร์สที่เขียนด้วย PHP ซอร์สโค้ดของ Pagekit นั้นโฮสต์บน GitHub คำแนะนำนี้จะแสดงให้คุณเห็นว่า

วิธีการติดตั้ง TestLink บน CentOS 7

วิธีการติดตั้ง TestLink บน CentOS 7

TestLink เป็นระบบดำเนินการจัดการทดสอบบนเว็บโอเพ่นซอร์ส ช่วยให้ทีมงานประกันคุณภาพสามารถสร้างและจัดการกรณีทดสอบได้เช่นกัน

วิธีการที่ปลอดภัย vsFTPd ด้วย SSL / TLS

วิธีการที่ปลอดภัย vsFTPd ด้วย SSL / TLS

FTP ที่ปลอดภัยมากหรือเพียงแค่ vsFTPd เป็นซอฟต์แวร์น้ำหนักเบาที่มีความสามารถในการปรับแต่ง ในบทช่วยสอนนี้เราจะรักษาความปลอดภัยของข้อความ

วิธีการติดตั้ง GCC บน CentOS 6

วิธีการติดตั้ง GCC บน CentOS 6

CentOS ติดตามการพัฒนา Red Hat Enterprise Linux (RHEL) RHEL พยายามที่จะเป็นแพลตฟอร์มเซิร์ฟเวอร์ที่มั่นคงซึ่งหมายความว่าจะไม่รีบเร่งในการรวม

ตั้งค่าบัญชีผู้ใช้ SFTP เท่านั้นบน CentOS 7

ตั้งค่าบัญชีผู้ใช้ SFTP เท่านั้นบน CentOS 7

ในบางโอกาสผู้ดูแลระบบอาจต้องสร้างบัญชีผู้ใช้และ จำกัด การเข้าถึงเพื่อจัดการไฟล์ของตัวเองผ่าน sFTP เท่านั้น

วิธีการติดตั้ง Moodle บน CentOS 7

วิธีการติดตั้ง Moodle บน CentOS 7

ใช้ระบบที่แตกต่างกันอย่างไร Moodle เป็นแพลตฟอร์มการเรียนรู้โอเพนซอร์ซหรือระบบจัดการหลักสูตร (CMS) - ชุดซอฟต์แวร์โอเพ่นซอร์สฟรีที่ออกแบบมาเพื่อช่วย

ติดตั้ง NGINX พร้อม ModSecurity บน CentOS 6

ติดตั้ง NGINX พร้อม ModSecurity บน CentOS 6

ในบทความนี้ฉันจะอธิบายวิธีสร้าง LEMP สแต็คที่ได้รับการป้องกันโดย ModSecurity ModSecurity เป็นไฟร์วอลล์เว็บแอพพลิเคชันแบบโอเพนซอร์สที่มีประโยชน์

วิธีการติดตั้ง Apache, MySQL และ PHP บน CentOS 6

วิธีการติดตั้ง Apache, MySQL และ PHP บน CentOS 6

Introduction LAMP เป็นคำย่อที่ย่อมาจาก Linux, Apache, MySQL และ PHP ซอฟต์แวร์นี้เป็นโซลูชันโอเพ่นซอร์สที่ได้รับความนิยมสูงสุดสำหรับการติดตั้ง o

การปรับเปลี่ยน Icinga2 ให้ใช้โมเดลต้นแบบ / ไคลเอ็นต์บน CentOS 6 หรือ CentOS 7

การปรับเปลี่ยน Icinga2 ให้ใช้โมเดลต้นแบบ / ไคลเอ็นต์บน CentOS 6 หรือ CentOS 7

Icinga2 เป็นระบบการตรวจสอบที่มีประสิทธิภาพและเมื่อใช้ในโมเดลลูกค้าหลักจะสามารถแทนที่ความต้องการการตรวจสอบที่อิง NRPE ปรมาจารย์

การติดตั้ง Netdata บน CentOS 7

การติดตั้ง Netdata บน CentOS 7

ใช้ระบบที่แตกต่างกันอย่างไร Netdata เป็นดาวรุ่งพุ่งแรงในด้านการติดตามการวัดในระบบแบบเรียลไทม์ เมื่อเปรียบเทียบกับเครื่องมือชนิดเดียวกัน Netdata:

วิธีการติดตั้งและกำหนดค่า Buildbot บน CentOS 7

วิธีการติดตั้งและกำหนดค่า Buildbot บน CentOS 7

Buildbot เป็นโอเพ่นซอร์สเครื่องมือที่ใช้การรวมอย่างต่อเนื่องของ Python สำหรับการสร้างซอฟต์แวร์การทดสอบและการปรับใช้โดยอัตโนมัติ Buildbot ประกอบด้วยหนึ่งหรือหมอ

ติดตั้งเซิร์ฟเวอร์มัลติเพลเยอร์ SA-MP San Andreas บน CentOS 6

ติดตั้งเซิร์ฟเวอร์มัลติเพลเยอร์ SA-MP San Andreas บน CentOS 6

ยินดีต้อนรับสู่การกวดวิชา Vultr อื่น ที่นี่คุณจะได้เรียนรู้วิธีการติดตั้งและเรียกใช้เซิร์ฟเวอร์ SAMP คู่มือนี้เขียนขึ้นสำหรับ CentOS 6 ข้อกำหนดเบื้องต้นคุณจะต้อง

ติดตั้ง dotProject บน CentOS 7

ติดตั้ง dotProject บน CentOS 7

แอปพลิเคชั่น dotProject เป็นเครื่องมือการจัดการโครงการแบบโอเพ่นซอร์สบนเว็บ สำหรับตอนนี้มันวางจำหน่ายภายใต้ GPL ดังนั้นคุณสามารถปรับใช้และใช้งานได้บนบริการของคุณ

ติดตั้ง TaskServer (taskd) บน CentOS 7

ติดตั้ง TaskServer (taskd) บน CentOS 7

ใช้ระบบที่แตกต่างกันอย่างไร TaskWarrior เป็นเครื่องมือจัดการเวลาแบบโอเพ่นซอร์สที่เป็นการปรับปรุงแอพพลิเคชั่น Todo.txt และโคลนของมัน เนื่องมาจาก

วิธีการติดตั้ง Selfoss RSS Reader บน CentOS 7 LAMP VPS

วิธีการติดตั้ง Selfoss RSS Reader บน CentOS 7 LAMP VPS

ใช้ระบบที่แตกต่างกันอย่างไร Selfoss RSS Reader เป็นฟรีและเปิดตัวเองบนเว็บโฮสต์อเนกประสงค์, สตรีมสด, ตอบโต้กับผู้ใช้ได้, ฟีดข่าว (RSS / Atom) reade

วิธีการติดตั้ง Kanboard บน CentOS 7

วิธีการติดตั้ง Kanboard บน CentOS 7

ใช้ระบบที่แตกต่างกันอย่างไร Kanboard เป็นซอฟต์แวร์ซอฟต์แวร์การจัดการโครงการโอเพ่นซอร์สฟรีที่ออกแบบมาเพื่ออำนวยความสะดวกและมองเห็นภาพการทำงานเป็นทีม

การตั้งค่าเซิร์ฟเวอร์ Half Life 2 บน CentOS 6

การตั้งค่าเซิร์ฟเวอร์ Half Life 2 บน CentOS 6

บทช่วยสอนนี้จะกล่าวถึงกระบวนการติดตั้งเซิร์ฟเวอร์เกม Half Life 2 บนระบบ CentOS 6 ขั้นตอนที่ 1: การติดตั้งข้อกำหนดเบื้องต้นเพื่อตั้งค่า ou

ไดรฟ์ที่แชร์ความพร้อมใช้งานสูงใช้ Vultr Block Storage และ GlusterFS

ไดรฟ์ที่แชร์ความพร้อมใช้งานสูงใช้ Vultr Block Storage และ GlusterFS

GlusterFS เป็นระบบไฟล์ที่เชื่อมต่อกับเครือข่ายซึ่งช่วยให้คุณแบ่งปันไดรฟ์สองตัวในอุปกรณ์หลายตัวบนเครือข่ายได้อย่างมีประสิทธิภาพ ระบบไฟล์นี้คือ

วิธีโยกย้ายกล่องจดหมายอย่างง่ายดายด้วย Imapsync บน CentOS 7

วิธีโยกย้ายกล่องจดหมายอย่างง่ายดายด้วย Imapsync บน CentOS 7

ใช้ระบบที่แตกต่างกันอย่างไร ในขณะที่การโยกย้ายเว็บไซต์มักจะไม่มีปัญหาบางครั้งก็ยากที่จะโยกย้ายกล่องอีเมล นี่คือ CAS โดยเฉพาะอย่างยิ่ง

วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7 LAMP VPS

วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7 LAMP VPS

เรียนรู้วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7; ระบบการจัดการเนื้อหา Headless ที่มีความยืดหยุ่นสูงและปลอดภัย

ตั้งค่า Nginx บน Ubuntu เพื่อสตรีมวิดีโอสด HLS

ตั้งค่า Nginx บน Ubuntu เพื่อสตรีมวิดีโอสด HLS

เรียนรู้วิธีการตั้งค่า Nginx บน Ubuntu สำหรับการสตรีมวิดีโอสด HLS ด้วยคำแนะนำที่ชัดเจนและเป็นประโยชน์

การสำรองข้อมูลยอดนิยมด้วย Percona XtraBackup บนแอพ WordPress แบบคลิกเดียว

การสำรองข้อมูลยอดนิยมด้วย Percona XtraBackup บนแอพ WordPress แบบคลิกเดียว

เรียนรู้การใช้ Percona XtraBackup สำหรับการสำรองข้อมูลด้วยวิธีที่เป็นระบบและง่ายดายบน WordPress ออนไลน์ของคุณ

ReactOS: นี่คืออนาคตของ Windows หรือไม่?

ReactOS: นี่คืออนาคตของ Windows หรือไม่?

ReactOS ซึ่งเป็นโอเพ่นซอร์สและระบบปฏิบัติการฟรีพร้อมเวอร์ชันล่าสุดแล้ว สามารถตอบสนองความต้องการของผู้ใช้ Windows ยุคใหม่และล้ม Microsoft ได้หรือไม่? มาหาข้อมูลเพิ่มเติมเกี่ยวกับรูปแบบเก่านี้ แต่เป็นประสบการณ์ OS ที่ใหม่กว่ากัน

AI สามารถต่อสู้กับการโจมตีของแรนซัมแวร์ที่เพิ่มขึ้นได้หรือไม่

AI สามารถต่อสู้กับการโจมตีของแรนซัมแวร์ที่เพิ่มขึ้นได้หรือไม่

การโจมตีของ Ransomware กำลังเพิ่มขึ้น แต่ AI สามารถช่วยจัดการกับไวรัสคอมพิวเตอร์ตัวล่าสุดได้หรือไม่? AI คือคำตอบ? อ่านที่นี่รู้ว่า AI boone หรือ bane

เชื่อมต่อผ่าน WhatsApp Desktop App 24*7

เชื่อมต่อผ่าน WhatsApp Desktop App 24*7

ในที่สุด Whatsapp ก็เปิดตัวแอพเดสก์ท็อปสำหรับผู้ใช้ Mac และ Windows ตอนนี้คุณสามารถเข้าถึง Whatsapp จาก Windows หรือ Mac ได้อย่างง่ายดาย ใช้ได้กับ Windows 8+ และ Mac OS 10.9+

AI จะนำกระบวนการอัตโนมัติไปสู่อีกระดับได้อย่างไร

AI จะนำกระบวนการอัตโนมัติไปสู่อีกระดับได้อย่างไร

อ่านข้อมูลนี้เพื่อทราบว่าปัญญาประดิษฐ์กำลังได้รับความนิยมในหมู่บริษัทขนาดเล็กอย่างไร และเพิ่มโอกาสในการทำให้พวกเขาเติบโตและทำให้คู่แข่งได้เปรียบ

การอัปเดตเสริม macOS Catalina 10.15.4 ทำให้เกิดปัญหามากกว่าการแก้ปัญหา

การอัปเดตเสริม macOS Catalina 10.15.4 ทำให้เกิดปัญหามากกว่าการแก้ปัญหา

เมื่อเร็ว ๆ นี้ Apple เปิดตัว macOS Catalina 10.15.4 การอัปเดตเสริมเพื่อแก้ไขปัญหา แต่ดูเหมือนว่าการอัปเดตทำให้เกิดปัญหามากขึ้นที่นำไปสู่การสร้างเครื่อง Mac อ่านบทความนี้เพื่อเรียนรู้เพิ่มเติม

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

ระบบไฟล์บันทึกคืออะไรและทำงานอย่างไร

ระบบไฟล์บันทึกคืออะไรและทำงานอย่างไร

คอมพิวเตอร์ของเราจัดเก็บข้อมูลทั้งหมดในลักษณะที่เรียกว่าระบบไฟล์บันทึก เป็นวิธีการที่มีประสิทธิภาพที่ช่วยให้คอมพิวเตอร์สามารถค้นหาและแสดงไฟล์ได้ทันทีที่คุณกดค้นหาhttps://wethegeek.com/?p=94116&preview=true