Xserver VPSでMastodonインスタンスを立ち上げる方法

  mastodon01 https://joinmastodon.org/ja

 

 

Mastodonインスタンス設置の流れ

  

設置の流れ
  • Xserver VPSの契約
  • イメージタイプを選択
  • 独自ドメインの設定
  • DNSレコードの追加
  • Mastodonサーバーの設定
  • TLS証明書を取得・設定する
  • 証明書の自動更新設定
  • Mastodonの設定
  • Mastodonサービスの起動

 

 

 

 Xserver VPSの契約

mastodon04

Xserver VPS

 

mastodon05

  • 推奨プランは4GBプラン(2GBプランでも可)
  • イメージタイプは、アプリケーションタブ→その他のアプリケーションからMastodonを選択
  • rootパスワードは、英字・数字・記号のいずれか2種類を含む9文字以上を記入し、メモしておく

 

 

イメージタイプを選択

x-vps01

 

x-vps02

 

x-vps03

 

x-vps04

 

イメージタイプは、

アプリケーションタブ → 他のアプリケーション からMastodonを選択

 

 

rootパスワード設定

x-vps05

 

rootパスワードは、英字・数字・記号のいずれか2種類を含む9文字以上を記入し、メモしておく。

 

SSH Keyは、「指定しない」でOK。

 

 

独自ドメインの設定

mastodon06

1.XserverVPSの管理画面、左メニューの「DNS設定」をクリック。

2.画面右上の「ドメインの追加」をクリック。

※ドメインは予め取得、設定済とする。

 

 

mastodon07

 

ドメイン名を入力して追加する。

 

 

DNSレコードの追加

 

mastodon08

 

「DNS設定」に戻ると登録したドメインが表示されているので「選択する」をクリック。

 

 

mastodon09

 

「DNSレコード設定の追加」をクリック。

 

 

mastodon10

 

ホスト名:空

種別:Aレコード

内容:サーバーのIPアドレス

 

それぞれ入力し、設定する。

 

 

mastodon11

 

ドメインの設定完了。

反映するまで1~2時間程度待つ。

 

 

確認方法

Windowsの場合は、コマンドプロンプトからping送信して名前解決できているか確認。

 

> ping domain.com

 

mastodon12

 

反応があれば次のステップに進む。

 

 

 

Mastodonサーバーの設定

 

/etc/nginx/sites-available/mastodon を編集する。

cd /etc/nginx/sites-available

 

mastodon13

 

「example.com」と書かれている部分4か所を取得した独自ドメインに書き換えます。

 

 

TLS証明書を取得・設定する

 

証明書の取得

certbot certonly --standalone -d ドメイン名

 

nginx起動

systemctl start nginx

 

webroot認証

certbot certonly --webroot -d ドメイン名 -w /home/mastodon/live/public/

 

 

 

 

証明書の自動更新設定

 /etc/cron.d/のディレクトリへ移動

cd /etc/cron.d

 

letsencrypt-renewファイルを作成する。

 

ファイルの中身

0 0 1 * * root /usr/bin/certbot renew --pre-hook "/usr/sbin/service nginx stop" --post-hook "/usr/sbin/service nginx start"

 

cronデーモンの再起動

systemctl restart cron

 

 

Mastodonの設定

mastodonユーザーにチェンジし、liveディレクトリに移動する。

su - mastodon

cd ~/live

 

Mastodonのセットアップ開始

RAILS_ENV=production bundle exec rake mastodon:setup

 

設定する値 説明
Domain name: 独自ドメインを入力
Do you want to enable single user mode? (y/N) シングルユーザーモードとして設定を行うかどうかの項目
シングルユーザーモードの設定をしない(新規ユーザー作成をしない)場合、何も入力せずEnterキーを押してください。
Are you using Docker to run Mastodon? (Y/n) Xserver VPSのMastodonはDockerを使用していないのでnを入力。
PostgreSQL host: (/var/run/postgresql) 何も入力せずEnterキー。
PostgreSQL port: (5432) 何も入力せずEnterキー。
Name of PostgreSQL database: (mastodon_production) PostgreSQL内における、Mastodonデータベース名「/etc/motd」の「PostgreSQL mastodon db name」項目の値を入力。
デフォルトは「mastodon_production」
Name of PostgreSQL user: (mastodon) PostgreSQL内における、Mastodonデータベースに接続するユーザ名「/etc/motd」の「PostgreSQL mastodon user name」項目の値を入力。
デフォルトは「mastodon」
Password of PostgreSQL user: PostgreSQL内における、Mastodonデータベースに接続する際のパスワード「/etc/motd」の「PostgreSQL mastodon user password」の項目の値を入力。
設定必須:P@ssword0など大文字小文字英数字記号があることが理想
Redis host: (localhost) 何も入力せずエンターキー。
Redis port: (6379) 何も入力せずエンターキー。
Redis password: 何も入力せずエンターキー。
Do you want to store uploaded files on the cloud? (y/N) Mastodonに投稿された画像や動画などのファイルをクラウドサービスのオブジェクトストレージにアップロードするかどうかを設定する項目。
設定は任意(ここではN)。Yを選ぶとオブジェクトストレージへアップロードする際に必要な認証情報などが追加で求めらる。
Do you want to send e-mails from localhost? (y/N) Mastodonのアカウント作成や各種通知を送るメールをlocalhostから送信するかどうかを設定する項目。
適切なメールサーバから送信することが望ましいため、何も入力せずEnterキーを押す。
SMTP server: (smtp.mailgun.org) 利用するSMTPサーバー名を入力してください。
Gmailの場合は「smtp.gmail.com」
SMTP port: (587) 利用するSMTPサーバーのポート番号を入力。
Gmailの場合は587
SMTP username: 利用するSMTPサーバーのユーザーネームを入力。
Gmailの場合はメールアドレス
SMTP password: 利用するSMTPサーバーのパスワードを入力。
Gmailの場合Gmailアカウントのパスワードではなく「Googleアカウントでアプリパスワードを入手して入力
SMTP authentication: (plain) そのままエンターキー
SMTP OpenSSL verify mode: (Use arrow keys, press Enter to select) 証明書の検証方法を選ぶ。特に使わなくてもOK
ここでは、none、autoを選択
E-mail address to send e-mails “from”: (Mastodon ) Mastodonから届いたメールのFROMに表示したいメールアドレスを入力。
デフォルトではMastodonと表示
Send a test e-mail with this configuration right now? (Y/n) ここまで入力したメールの設定でテスト送信するかどうかを決定する項目。
メールの設定に失敗しているとMastodonのアカウントが作成できなくなるで、Yを選んで確認することがおすすめ。
Send test e-mail to: テストメールを送信するメールアドレスを入力。
テストなのでSMTP username:で設定したメールでも構いませんが別メールが理想。
Save configuration? (Y/n) ここまでの設定内容を保存するかどうかを決定する項目。
テストメールの配信状況などに問題が無ければ、Yを選んで保存。
Prepare the database now? (Y/n) Mastodon用のデータベースを構築するかどうか決定する項目。
Mastodonイメージではデータベースが空のため、Yを押してデータベースの構築を行う。
Compile the assets now? (Y/n) Mastodonのウェブ表示で使用するアセットのコンパイルを行うかどうか決定する項目。
実稼動時にかかる負荷などに影響するのでコンパイルする(Yを入力)ことがおすすめ。
Do you want to create an admin user straight away? (Y/n) Mastodonの管理者アカウントを作成するかどうかを決定する項目。
管理者アカウントが無くても正常に利用できるので作成は任意です。
作成する場合はYを入力しAdminユーザー名・Adminユーザー用のEメールを入力。その後、パスワードが自動で発行される。

 

 

 

Mastodonサービスの起動

exitコマンドでmastodonユーザーを抜ける。

exit

 

マストドンのサービスを起動。

systemctl enable mastodon-sidekiq.service

systemctl enable mastodon-streaming.service

systemctl enable mastodon-web.service

systemctl start mastodon-*

 

 警告が出た場合は以下のコマンド。

systemctl start mastodon-sidekiq

systemctl start mastodon-streaming

systemctl start mastodon-web

 

 

マストドンへアクセス

mastodon99

 

 

 

VPSサーバーのセキュリティ強化

攻撃対象となりやすいSSH接続とFTP接続を遮断する設定が必要です。

UbuntuのUncomplicated Firewall (ufw)の設定を行います。

 

ファイアウォールを有効化してポートを閉じる

ファイアウォールを有効化

ufw enable

 

初期値が全通信が拒否の設定なので全通信を許可へ変更

ufw default allow

 

SSH通信を拒否

ufw deny 22

 

FTP通信を拒否

ufw deny 23

 

ファイアウォール設定を再読み込み

ufw reload

 

 

ファイヤーウォールのステータス確認

 

ufw status

 

 

必要に応じてポートを開く

閉じたポートの設定削除。

ufw delete deny 22

ufw delete deny 23

ufw status ufw reload