Ubuntu 20.04でMastodonをインストールする方法

以下の文章を日本語で言い換えてください。選択肢は1つだけです:

イントロダクション

マストドンは分散モデル、または連邦と呼ばれる方式を利用したマイクロブログのソーシャルネットワーキングアプリケーションです。マストドンはオープンソースであり、どのサーバーでも誰でも展開することができます。各サーバーは独自のインスタンスとなり、各インスタンスには独自のポリシーやモデレーションが存在します。また、マストドンサーバーの連邦内では、各インスタンスは他のインスタンスとの情報共有も可能です。これにより、単一のサーバー内だけでなく、複数のインスタンスをまたいで他のユーザーとの相互作用が可能となります。

このチュートリアルでは、この時点での最新バージョンであるMastodon 4.0.2をインストールします。公式のMastodonインストールリポジトリを設定し、他のすべての依存関係をインストールするための環境を準備します。対話型セットアップを使用して、ストレージ、メール、資産、管理者アカウントのためのカスタムMastodonインスタンスを設定します。最後に、Let’s Encryptを通じてSSL/TLS証明書でインスタンスをセキュアにします。

Note

注意:このチュートリアルでは、Mastodonの開発チームが推奨する通り、ベアメタルサーバーへのインストールについて詳しく説明します。また、次の代替Mastodonのインストール方法も検討することができます:

マーケットプレイスにある「1クリック解決法」です。Silicon Cloud Marketplace 1-ClickでのMastodonのインストール方法についてのチュートリアルに従って、始めることができます。

前提条件

このチュートリアルに従って進めるためには、以下のものが必要です:

  • An Ubuntu 20.04 server with a sudo-enabled non-root user and firewall. You can set this up by following our Initial Server Setup with Ubuntu 20.04 tutorial.
  • PostgreSQL installed on your server following Step 1 of our guide on How To Install and Use PostgreSQL on Ubuntu 20.04.
  • Node.js version 16.xx installed on your server. Use Option 2 in our How To Install Node.js on Ubuntu 20.04 tutorial.
  • Nginx installed on your server following Step 1 of our How To Install Nginx on Ubuntu 20.04 tutorial.
  • A registered domain name. This tutorial uses your_domain throughout. You can get one for free at Freenom, or use the domain registrar of your choice.
  • An A DNS record with your_domain pointing to your server’s public IP address. You can manage your domains and DNS records using a Silicon Cloud account.

すべてを設定したら、最初のステップを始める準備ができました。

ステップ1 — マストドンのシステムユーザーとPostgreSQLのロールを作成します。

Mastodonのソースコードは、サーバーが特定のシステムユーザーである「mastodon」という名前で管理されることを前提としています。現在、Mastodonの多くの部分にはそれがハードコードされています。このチュートリアルでは、PostgreSQLデータベースのシステムレベルとして、また役割として「mastodon」ユーザーを作成して使用することを推奨します。

このチュートリアルでは、前提条件で初期サーバーセットアップでユーザーを作成したと想定しています。ただし、以下のコマンドはsudoを省略してrootとして実行することもできます。まず、adduserコマンドを使用してマストドンのユーザーを作成してください。

  1. sudo adduser mastodon

 

次に、管理者権限を付与するために、マストドンのユーザーをsudoグループに追加してください。

  1. sudo usermod -aG sudo mastodon

 

システムレベルのマストドンユーザーを作成したら、次にデータベース内に対応する役割を作成してください。PostgreSQLでは、peer認証が使用され、作成した役割がシステムユーザーと一致します。マストドンという名前のユーザーを作成してください。

  1. sudo -u postgres createuser –interactive

 

インタラクティブフラグが次のプロンプトを表示し、そこで新しい役割(マストドン)の名前を選ぶことができます。新しい役割をスーパーユーザーにするには、yを入力してください。

Output

Enter name of role to add: mastodon Shall the new role be a superuser? (y/n) y

今度は新しく作成したマストドンのユーザーアカウントにログインできます。

  1. su – mastodon

 

今後のチュートリアルでは、すべてのコマンドをこのMastodonユーザーとして実行します。

ステップ2- 依存関係のインストールとMastodonのクローン作成

Mastodonのほとんどの設定は、後の手順で行う対話型のセットアップを通じて処理されます。最初に、その依存関係をインストールする必要があります。Mastodonは、RubyとNode.jsを中心に構築されたプロジェクトであり、Linux環境で動作しています。そのため、APT(Linuxシステムレベルのパッケージマネージャー)、RubyのgemsのBundler、およびNode.jsのパッケージのYarnの3つのパッケージマネージャーが必要です。ソースからインストールするには、Mastodonリポジトリをクローンする必要があります。このプロセスは以下の順序で進行します。

  • Install APT dependencies.
  • Clone Mastodon from source.
  • Install Ruby and Mastodon’s Ruby dependencies.
  • Install Node.js dependencies.

最初のステップは、Redisをキーストアデータベースとして使用するための依存関係をaptを通じてインストールすることです。また、TLS/SSL暗号化を処理するためのCertbotや、ビルド、コンパイル、画像処理のためのさまざまなライブラリも含まれています。これらをインストールするには、apt updateを使ってパッケージのインデックスを更新してください。

  1. sudo apt update

 

apt installを使用してパッケージをインストールしてください。

  1. sudo apt install \
  2. imagemagick ffmpeg libpq-dev libxml2-dev libxslt1-dev \
  3. libprotobuf-dev protobuf-compiler pkg-config \
  4. redis-server redis-tools \
  5. certbot python3-certbot-nginx libidn11-dev libicu-dev libjemalloc-dev

 

マストドンの複製を作成する

今、サーバーは公式リポジトリからMastodonソースをクローンする準備が整いました。先ほど述べた通り、このチュートリアルでは最新バージョンのMastodonを使用します。現在のバージョンはv4.0.2ですが、これにより最新の機能、セキュリティ、およびバグ修正が得られます。

最初に、Mastodonのリポジトリを新しいディレクトリ「live」という名前でサーバーにクローンしてください。

  1. git clone https://github.com/mastodon/mastodon.git live

 

このディレクトリの命名規則は、Mastodonのドキュメンテーション全体で使用され、一貫性を保つために推奨されています。次に、作成したディレクトリに移動してください。これはチュートリアルの残りの部分でプロジェクトディレクトリとして使用されます。

  1. cd live

 

最新バージョンv4.0.2をチェックアウトするために、今ではgitを使用することができます。

  1. git checkout v4.0.2

 

RubyのインストールとMastodonのRubyの依存関係のインストール

Mastodonのソースコードが準備できたら、RubyとMastodonのRubyの依存関係のインストールに進むことができます。Rubyのプログラミング言語をインストールするために使用するバージョン管理ツールであるrbenvをインストールします。rbenvはシステムレベルではなくユーザーレベルでインストールされるため、この手順はマストドンのユーザーを作成し切り替えた後に行う必要があります。Ubuntu 20.04でのrbenvを使用したRuby on Railsのインストールチュートリアルのステップ1から3に従って、Rubyのバージョン3.0.4をインストールします。ステップ2には明示的にリストされていませんが、インストールコマンドでこのバージョンを指定すれば動作します。このチュートリアルはRuby on Railsのためのものですが、rbenvを使用してRubyをインストールする手順のみを使用します。

Rubyの依存関係はBundlerによって管理されます。BundlerはMastodonに必要なすべてのRubyジェムをインストールしますが、最初に本番環境でインストールするように設定する必要があります。

Bundlerの設定システムと対話するために、バンドル構成コマンドを使用してください。デプロイメントをtrueに設定するために使用してください。

  1. bundle config deployment ‘true’

 

次に、開発とテストに必要な依存関係がインストールされないように、依存関係なしで使用してください。

  1. bundle config without ‘development test’

 

インストールできるようになりましたので、Rubyの依存関係をインストールしてください。これには何度かの一時停止がありますが、これは正常な動作です。

  1. bundle install

 

Output

Fetching gem metadata from https://rubygems.org/……… Fetching https://github.com/ClearlyClaire/webpush.git Fetching rake 13.0.6 Installing rake 13.0.6 Fetching concurrent-ruby 1.1.10 Installing concurrent-ruby 1.1.10 . . .

一度これが終わると、最後にたくさんのアウトプットがあるかもしれませんが、対応が必要なように見えるかもしれません。しかし、追加の行動は必要ありませんので、安心して進めます。

MastodonのJavaScriptの依存関係をインストールする。

MastodonのRubyの依存関係のインストールが完了したら、JavaScriptの依存関係に移ることができます。Mastodonは、npmの代わりにJavaScriptパッケージを管理およびインストールするためにyarnを使用しています。16.10以上のNode.jsのインストールバージョンでは、yarnがデフォルトでcorepack経由で利用可能です。

ヤーンにアクセスするために、Node.jsの添付されているコアパックを有効にしてください。

  1. sudo corepack enable

 

ヤーンは、1.0バージョン(クラシックとも呼ばれる)と2.0バージョンの開発履歴が異なっています。マストドウンでは、クラシックバージョンのヤーンが必要であり、それはヤーンのバージョンを有効にすることで可能です。

  1. yarn set version classic

 

現在、yarn installを使用してMastodonのJavaScriptの依存関係をインストールできます。追加のフラグを使用することで、yarn.lockファイルが生成されないようになります。

  1. yarn install –pure-lockfile

 

Output

yarn install v1.22.19 [1/6] Validating package.json… [2/6] Resolving packages… [3/6] Fetching packages… [4/6] Linking dependencies… warning Workspaces can only be enabled in private projects. [5/6] Building fresh packages… [6/6] Cleaning modules… Done in 50.84s.

あなたは今、サーバー用のカスタムMastodon設定ファイルを作成する準備ができました。

ステップ3 – インタラクティブセットアップを使用してMastodonの設定ファイルを生成します。

Mastodonは、設定ファイルとして.envファイルのバリエーションを使用しています。そのサンプルは~/live/.env.production.sampleで閲覧できますが、そのファイルをコピーする代わりに、対話型の設定プロセスを使用します。完了すると、~/live/.env.productionにカスタムファイルが生成されます。この対話型のセットアップでは、基本的なサーバー情報をカバーし、PostgreSQLとRedisの接続を確立し、クラウドストレージとメールの処理を設定し、CSSとJavaScriptのアセットをコンパイルし、Mastodon内に管理者アカウントを作成します。

多段階のセットアッププロセスを開始する前に、ファイアウォールが適切なポートを介してSMTPトラフィックを許可していることを確認してください。セキュアなTLS接続のデフォルトSMTPポートはポート587であり、後で電子メールのセットアップ部分で説明されます。現時点では、ファイアウォール内でこのポートへのアクセスを許可してください。

  1. sudo ufw allow 587

 

対話型のセットアップを始めるために、`production`の環境変数を設定しながら、`bundle exec rake`を実行して、Mastodonのセットアップを行います。

  1. RAILS_ENV=production bundle exec rake mastodon:setup

 

あなたのドメイン名を入力してください。事後にこれを変更することは困難ですので、正確性を確認するために入力内容を二重でチェックしてください。

Output

Your instance is identified by its domain name. Changing it afterward will break things. Domain name: your_domain

Mastodonには、登録が無効化されたシングルユーザーモードがあります。他のユーザーと共有スペースを作成する意図でサーバーを設定する場合、シングルユーザーモードを有効にしないようにしてください。

Output

Single user mode disables registrations and redirects the landing page to your public profile. Do you want to enable single user mode? No

Dockerの使用についてのプロンプトには「いいえ」と答えてください。なぜなら、このチュートリアルでは裸のメタルサーバーに従来のインストールをカバーしているからです。

Output

Are you using Docker to run Mastodon? no

データベースの設定

PostgreSQLの設定全ては、各プロンプトでEnterキーを押すことでデフォルトのままにしておくことができます。データベースの認証にはパスワードを使用せず、代わりに後ほど説明するピア認証を使用します。今の段階では、空白のままにしておくことができます。

Output

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設定はデフォルトのままにしておくこともできます。パスワード欄は空白のままにしておけます。このデータベースはサーバー上でのみアクセス可能なため、パスワードを設定する必要はありません。各プロンプトでEnterキーを押すことができます。

Output

Redis host: localhost Redis port: 6379 Redis password: Redis configuration works!

両方のデータベースへの接続が正常に動作するかテストされます。

ストレージの設定

次に、クラウドストレージへのファイルのアップロードについて質問されます。Mastodonストレージは、ローカルストレージを使用するか、さまざまなプロバイダーを介してクラウドストレージを使用するように設定することができます。もしローカルストレージを使用したい場合、もしくは即座のクラウドストレージの解決策が用意されていない場合は、「いいえ」と答えてください。

ただし、これは長期間のストレージソリューションとして持続不能であり、本番目的にはオブジェクトストレージソリューションが推奨されます。Mastodonは、Silicon Cloud SpacesやMinIOなどのS3互換ソリューションを含む複数の人気のあるオブジェクトストレージソリューションをサポートしています。MinIOはオープンソースなので、独自のMinIOオブジェクトストレージサーバーを設定する方法に関して、当社のチュートリアルに従うことができます。このチュートリアルでは、Silicon Cloud Spacesの例を使用して”Yes”と選択することができます。Spacesに関する詳細は、自分自身のSilicon Cloud Spaceとアクセスキーを作成する方法に関するこのチュートリアルに従ってください。

Do you want to store uploaded files on the cloud? yes
Provider Silicon Cloud Spaces
Space name: your_spaces_name
Space region: your_spaces_region
Space endpoint: your_spaces_endpoint
Space access key: your_spaces_access_key
Space secret key: your_spaces_secret_key
Do you want to access the uploaded files from your own domain? No

あなたのマストドンインスタンスにアップロードされたファイルにアクセスするためのオプションとして、直接のクラウドストレージへのリンクではなく、ドメイン上のリンクを使用することも可能です。もちろん、このオプションを選ぶこともできますが、このチュートリアルでは選択しません。ストレージに関して変更したい場合は、後で生成された設定ファイルを編集することもできます。ファイルストレージに関する設定ファイルのパラメータについては、公式のマストドンドキュメントを参照してください。

アウトバウンドメールの設定

マストドンは、メールの送信手段としてSMTPメールサーバーへのアクセスが必要です。独自のサーバーを運用する代わりに、外部のメールサービスプロバイダーが推奨されています。マストドンの例では、Mailgunが使用されています。安全で信頼性のあるメールサーバーを維持することは困難な作業ですので、外部のサードパーティーのメールサービスプロバイダーに頼ることをお勧めします。ただし、ほとんどのサードパーティーのメールサービスプロバイダーは、利用量に応じて料金が発生する場合があり、一定の利用基準以下の場合に無料の利用枠があるかどうかも異なります。この場面では、ご自身の判断にお任せいただきますようお願いいたします。

Note

注意:このチュートリアルは即時のSMTPソリューションなしでも完了することができますが、すべての認証情報フィールドを空白またはデフォルトにすることで、Mastodonの全機能が制限され、推奨されません。後でメールプロバイダーでアカウントを設定し、認証情報を設定ファイルに追加するオプションもあります。ただし、これを行うまでMastodonのメールは送信されず、他のアカウントのフォローなどの機能が使用できないことに注意してください。
Output

Do you want to send e-mails from localhost? No

すべての電子メールプロバイダーでは、アカウントを作成し設定する必要があります。これはプロバイダーによって異なります。おそらく登録後に、メールの送信を有効にするためにデメインをプロバイダーで確認する必要があり、その過程でデメインにDNSレコードを追加する必要があります。さらに、安全な認証のための認証情報としてAPIキーを取得または生成する必要もあります。

このチュートリアルでは、Mailgunを例として使用しますが、メールサービスプロバイダーの選択肢は他でも問題ありません。これらの選択肢は他のメールサービスプロバイダーのガイドラインとしても使用できます。特にMailgunは、追加されたドメインごとに自動的にSMTPの資格情報を生成します。ただし、使用するメールサービスによって異なるため、対応するドキュメントを確認する必要があります。

Output

SMTP server: smtp.mailgun.org SMTP port: 587 SMTP username: your_smtp_username SMTP password: your_smtp_password SMTP authentication: plain SMTP OpenSSL verify mode: peer Enable STARTTLS: auto E-mail address to send e-mails “from”: Mastodon <notifications@your_domain>

SMTP認証のはデフォルトのプレーンは場違いのように思われますが、電子メールサービスプロバイダーがサポートするSMTP認証の一般的なオプションには、プレーンとログインがあります。これらは両方ともBase64でエンコードされていますが、Base64エンコード自体は十分なセキュリティ対策ではありません。本当に重要なのは、安全なTLS/SSL接続を介してメールプロバイダーにリクエストを送信することです。SMTP接続のポート587は、電子メールプロバイダーとのTLS接続のデフォルトです。ただし、TLSが適切に保護されている場合には安全な選択肢です。メールサービスプロバイダーの公式ドキュメントを参照すると、SMTPサービスとの安全な連携方法に関して詳細かつ具体的な回答が得られます。

SMTPの資格情報が正常に動作するかどうかを確認するため、テストメールを送信し、個人用のアクセス権限を持っている受信者のメールアドレスを指定してください。

Output

Send a test e-mail with this configuration right now? yes

このテストメールは、あなたのメールサービスによっては届くまでに1分かかるかもしれません。また、後で生成されたMastodon構成ファイルでSMTPの資格情報を変更することもできますので、後で戻ってくることができます。

設定の最終確定

次に、設定を保存するようにプロンプトが表示されます。それをMastodonがデータベースを作成するために使用します。

Output

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 Running `RAILS_ENV=production rails db:setup` … Created database ‘mastodon_production’ Done!

その後、MastodonのCSSとJavaScriptのアセットをコンパイルするよう促されます。時間とリソース消費に関する警告に注意してください。

Output

The final step is compiling CSS/JS assets. This may take a while and consume a lot of RAM. Compile the assets now? Yes Running `RAILS_ENV=production rails assets:precompile` … yarn install v1.22.19 [1/6] Validating package.json… [2/6] Resolving packages… [3/6] Fetching packages… [4/6] Linking dependencies… . . . All done! You can now power on the Mastodon server

あなたのマストドンサーバーは準備完了していますが、まだ稼働していません。マストドンサーバーにログインするための管理者アカウントを作成するための別のプロンプトがあります。

Output

Do you want to create an admin user straight away? Yes Username: mastodon E-mail: your_email You can login with the password: your_generated_password You can change your password once you login.

ただし、現時点では管理者アカウントのパスワードを選択するオプションはありません。代わりに、新たに生成された一意のパスワードが提供されるので、別の場所にメモしておく必要があります。管理者UIにアクセスできるようになったら、パスワードを変更する機会があります。

nanoやお好みのテキストエディタを使用して、生成されたMastodonの設定ファイルを開き、その内容を確認してください。

  1. nano ~/live/.env.production

 

以下の内容は似ているものになります。

~/live/.env.productionを日本語に自然な言い方で言い換えにしてください:

~ /live/.env.production

# Generated with mastodon:setup on 2022-11-22 18:22:25 UTC

# Some variables in this file will be interpreted differently whether you are
# using docker-compose or not.

LOCAL_DOMAIN=your_domain
SINGLE_USER_MODE=false
SECRET_KEY_BASE=your_generated_key_base
OTP_SECRET=your_generated_secret
VAPID_PRIVATE_KEY=your_generated_private_key
VAPID_PUBLIC_KEY=your_generated_public_key
DB_HOST=/var/run/postgresql
DB_PORT=5432
DB_NAME=mastodon_production
DB_USER=mastodon
DB_PASS=
REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_PASSWORD=
S3_ENABLED=true
S3_PROTOCOL=https
S3_BUCKET=your_spaces_name
S3_REGION=your_spaces_region
S3_HOSTNAME=your_spaces_endpoint
S3_ENDPOINT=https://your_spaces_endpoint
AWS_ACCESS_KEY_ID=your_spaces_access_key
AWS_SECRET_ACCESS_KEY=your_spaces_secret_key
SMTP_SERVER=smtp.mailgun.org
SMTP_PORT=587
SMTP_LOGIN=your_smtp_username
SMTP_PASSWORD=your_smtp_password
SMTP_AUTH_METHOD=plain
SMTP_OPENSSL_VERIFY_MODE=peer
SMTP_ENABLE_STARTTLS=auto
SMTP_FROM_ADDRESS='Mastodon <notifications@test.do-community.com>'

インタラクティブなセットアッププロセス後に、このファイルを手動で編集することができます。中身を確認し終えたら、ファイルを保存して閉じてください。もしnanoを使用している場合は、CTRL + Xで終了し、Yとプロンプトが表示されたらEnterを押します。

ステップ4 – CertbotとLet’s Encryptを使用してMastodonのためにNginxを設定する。

現在、お使いのMastodonアプリケーションサーバーはローカルネットワークのみでアクセス可能です。インターネット経由でアクセスするためには、リバースプロキシを使用して公開する必要があります。Mastodonアプリケーションを提供するために、Nginxが推奨されています。リバースプロキシに関する詳細は、Nginxをリバースプロキシとして構成する方法についてのチュートリアルまたはプロキシに関する一般的な紹介をご覧ください。

Mastodonリポジトリには、使用できるデフォルトのNginx設定ファイルが付属していますが、独自のドメインに合わせていくつかの変更を行い、CertbotとLet’s Encryptでセキュアにする必要があります。Mastodonが提供するNginxファイルは、完全な展開に必要なブロックと指示がすべて備わっていますが、デフォルトのSSL/TLS設定ではCertbotとのスムーズな連携ができません。この手順では、Certbotの使用前後にNginx設定ファイルを2回編集することで、この制約を回避します。

最初に、NginxサーバーへのHTTPおよびHTTPSトラフィックを許可するために、ファイアウォール設定を調整してください。

  1. sudo ufw allow ‘Nginx Full’

 

ユーザーがあなたのMastodonウェブサイトにアクセスするためには、これが必要ですが、証明書の必要な検証をCertbotが行うためにも必要です。次に、Mastodonリポジトリから提供されたNginxの設定をコピーしてください。

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

 

Nginxは、有効化されているサーバーブロックを追跡するために、シンボリックリンク(シンリンク)と呼ばれる一般的な方法を使用しています。シンボリックリンクの作成は、ディスク上のショートカットの作成と同様であり、後でそのショートカットを削除することができますが、サーバーブロックをsites-availableディレクトリに残しておくことができます。新しく作成したファイルとのリンクを作成してください。

  1. sudo ln -s /etc/nginx/sites-available/mastodon /etc/nginx/sites-enabled/mastodon

 

Nginxは、この設定ファイルを使ってMastodonのウェブサイトを提供するために必要な設定を知っています。ただし、Nginxの設定に必要な変更を行っていません。お好みのテキストエディタでコピーした設定ファイルを開いてください。

  1. sudo nano /etc/nginx/sites-enabled/mastodon

 

サーバー名のディレクティブが、あなたのドメインとそのwwwバージョンを指すように確認する必要があります。server_nameのインスタンスは2つあります。1つはHTTPのポート80をリッスンするサーバーブロック内にあり、もう一つはHTTPSのポート443をリッスンするブロック内にあります。両方のserver_nameディレクティブがあなたのドメインを指すようにしてください。

また、2番目のサーバーブロックでのlistenディレクティブに#シンボルを行の先頭に追加してコメントアウトする必要があります。まだSSL証明書が設定されていないため、このlistenディレクティブにsslパラメータを持たせると、Nginxはこの構成を無効として検出します。これにより、Certbotはあなたのために証明書を作成しません。これを修正するために、一時的にこのディレクティブをコメントアウトし、証明書を作成した後に再度有効にしてください。

以下の文を日本語で自然に言い換えてください。
「/etc/nginx/sites-enabled/mastodon」
. . .
server {
  listen 80;
  listen [::]:80;
  server_name your_domain www.your_domain;
  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 www.your_domain;
. . .

作業が完了したら、ファイルを保存して閉じてください。これで、セキュアなSSL/TLSアクセスのための証明書の作成準備が整いました。MastodonのデフォルトのNginx設定ファイルを使用しているため、Certbotコマンドはcertonlyと呼ばれています。これにより、設定ファイルを手動で構成することができます。そうでない場合、CertbotはMastodonと互換性のないNginx環境に関して推測を行う可能性があります。

  1. sudo certbot certonly –nginx -d your_domain -d www.your_domain

 

Output

. . . IMPORTANT NOTES: – Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/your_domain/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/your_domain/privkey.pem . . .

生成された証明書とキーファイルのパスをメモしておいてください。これを設定ファイルに追加する必要があります。お好みのテキストエディタで再度設定ファイルを開いてください。

  1. sudo nano /etc/nginx/sites-enabled/mastodon

 

以前コメントアウトしたポート443のリッスンディレクティブを思い出してください。それらを安全にコメント解除できます。以前は、証明書の不在によりこれらの行がエラーを引き起こしていました。Certbotを使用して新しく作成した証明書により、これらの行は有効になりました。

同じブロック内で、ssl_certificateとssl_certificate_keyの指令をコメントアウト解除してください。それがCertbotによって前もって生成された証明書ファイルのパスと一致していることを確認してください。

/etc/nginx/sites-enabled/mastodonを日本語で言い換えると「/etc/nginx/sites-enabled/mastodonです」となります。
. . .
server {
   listen 443 ssl http2;
   listen [::]:443 ssl http2;
  server_name your_domain www.your_domain;
. . . 
  # Uncomment these lines once you acquire a certificate:
   ssl_certificate 	/etc/letsencrypt/live/your_domain/fullchain.pem;
   ssl_certificate_key /etc/letsencrypt/live/your_domain/privkey.pem;
. . .

ファイルを保存してテキストエディタを終了してください。次のコマンドでNginxの設定ファイルが正常であることを確認してください。

  1. sudo nginx -t

 

最後に、変更を適用するためにNginxを再起動してください。

  1. sudo systemctl reload nginx

 

あなたのMastodonサーバーは現在Nginxによって提供されていますが、ウェブサイトをチェックする前にいくつかのサービスを設定する必要があります。

第5ステップ:Mastodonサービスのセットアップ

マストドンは、機能性とアップタイムを保つために、3つのシステムサービスで構成されています: マストドンウェブ、マストドンサイドキュー、そしてマストドンストリーミングです。これにより、マストドンは常に再起動し、ウェブアプリケーションと非同期タスクスケジューリングを維持することができます。マストドンにはこれらのサービスが付属しており、それらを適切な場所に配置して有効にする必要があります。

まず、Mastodonソースからサービスをコピーします。

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

 

これらのファイルは、すべてがデフォルト設定でインストールされていることを前提としています。例えば、ユーザーとしてmastodonを使用している場合です。このチュートリアルのデフォルトまたは推奨事項と異なるものを使用した場合は、好きなテキストエディタでこれらのファイルを開き、変更が必要なユーザー名やパスを確認してください。

  1. sudo nano /etc/systemd/system/mastodon-*.service

 

このチュートリアルの手順に従えば、何も変更する必要はありません。ファイルを確認した後は、それらを閉じてこれらのサービスをアクティベートしましょう。まず、これらを認識させるためにdaemon-reloadを呼び出す必要があります。

  1. sudo systemctl daemon-reload

 

それから、新たに認識されたサービスを有効にすることができます。

  1. sudo systemctl enable –now mastodon-web mastodon-sidekiq mastodon-streaming

 

Created symlink /etc/systemd/system/multi-user.target.wants/mastodon-web.service → /etc/systemd/system/mastodon-web.service.
Created symlink /etc/systemd/system/multi-user.target.wants/mastodon-sidekiq.service → /etc/systemd/system/mastodon-sidekiq.service.
Created symlink /etc/systemd/system/multi-user.target.wants/mastodon-streaming.service → /etc/systemd/system/mastodon-streaming.service.

あなたのMastodonのインストールが完了しました。https://your_domainにアクセスすることで、ブラウザでMastodonを開くことができます。ただし、最初の試みでMastodonをブラウザで開くと、バックエンドの初期化がまだ完了していない場合があり、We’re sorry, but something went wrong on our endなどのエラーが発生することがあります。この場合は、数秒待ってから、ブラウザを更新する際にShiftキーを押してハードリフレッシュを行ってください。これにより問題が解決し、Mastodonを読み込む際にのみ発生します。

Mastodon Homepage

以前生成された管理者ユーザー名とパスワードを使用してログインし、始めることができます。

結論

このチュートリアルでは、独自のMastodonサーバーを設定します。これには、Mastodonに特有のデータベースやウェブサーバー、逆プロキシを設定するだけでなく、すべての要件や依存関係を設定する必要があります。Mastodon内でメール、ストレージ、アセットを設定した後、最初の管理者アカウントを作成します。最後に、CertbotとLet’s Encryptを使用してSSL/TLSでセットアップを安全に保護します。

今、新しいマストドンサーバーのパスワードと管理設定を変更することがおすすめされています。新しいマストドンインスタンスの使い方を学び、機能を探索するには、Silicon Cloud Marketplaceの「1-Clickチュートリアルでのマストドンのインストール方法」の4〜6の手順をチェックしてください。

コメントを残す 0

Your email address will not be published. Required fields are marked *