自分のフェデレーテッドTwitterをPleromaでインストールする方法

Pleroma Twitter Featured

マイクロブログは、自分の考えを表現する素晴らしい方法です。短く、簡潔で、甘美です。この点で、Twitterは世界で最も人気のあるマイクロブログプラットフォームの1つです。しかし、この特定の会社にマイクロブログのニーズを依存することが、すべての人にとって最良の解決策ではないかもしれません。

幸いなことに、Pleromaのような代替手段があります。これは自己ホスト型のTwitterです。これは軽量のフェデレーテッドマイクロブログプラットフォームです。フェデレーションを使用することで、プラットフォームは他のフェデレーテッドインスタンスと通信できるため、自分のプライベートTwitterを始めるために多くの人を集める必要はありません。この文書は、Pleromaの使い始めを手助けすることを目的としています。

目次

  • Twitterの問題
  • フェデレーションとは何か、どのように機能するのか
  • Pleromaのインストール方法
    1. AおよびAAAA DNSレコードの設定
    1. Pleromaの依存関係を取得
    1. Pleromaユーザーの作成
    1. Pleromaをダウンロード
    1. Pleromaの準備とインストール
    1. Pleromaインストールの構成
    1. メディア特有の設定
    1. Pleroma設定の最終化
    1. Pleromaデータベースの開始
    1. Pleromaサーバーの開始
    1. 最終設定
  • よくある質問

また読む: Ubuntuの代替を探しているなら試すべきDebianベースのディストロ7選

Twitterの問題

Twitterは、あいまいなポリシー違反のためにアカウントをランダムに禁止することで知られています。もしあなたがTwitterに数年分の投稿を蓄積している人であれば、その歴史を失うことは壊滅的です。それだけでなく、Twitterはユーザーデータを広告主や政府機関に渡すことでも知られています。

これにより、データを完全に制御したい人や、物議を醸すトピックを報告しているジャーナリストにとって、Twitterは安全でないプラットフォームとなります。

フェデレーションとは何か、どのように機能するのか

この問題の1つの解決策は、サーバーフェデレーションを通じてソーシャルネットワークを構築することです。これは、同様のソフトウェアを実行している複数のサーバーが透明に相互通信できるシステムです。

そのため、任意のフェデレーテッドサーバーは、全体のネットワークのノードとして機能し、他のサーバーとアクセスし、参加することができます。

Pleroma Server 03 Federated Network

これにより、あらゆる状況に容易に適応できるレジリエントなエコシステムが生まれます。たとえば、Pleromaサーバーがダウンしても、Pleromaフェデレーテッドネットワークが終了することはありません。ネットワーク内の投稿数は減少するかもしれませんが、他のサーバーは引き続き相互に通信できます。

また読む: インターネット経由でDebianをインストールする方法

Pleromaのインストール方法

Pleromaを設定する前に、いくつかの要件があります。

  • まず、公開で発見可能なマシンが必要です。これは、ポートフォワードできる自宅のマシンか、プロバイダーから購入したVPSのいずれかです。
  • さらに、PleromaをインストールするためにVPSを使用している場合、そのVPSにルートアクセスが必要です。これは、Pleromaが正常に動作するために必要なパッケージをインストールするためです。
  • 最後に、ドメイン名が必要です。これは、SSL証明書ユーティリティであるcertbotが、Pleromaインスタンスのために証明書を生成するためにドメイン名を必要とするためです。

これを念頭に置いて、このガイドはDigitaloceanのDebianベースのVPSにPleromaをインストールすることに焦点を当てます。

1. AおよびAAAA DNSレコードの設定

始める前に、まずドメイン名をVPSのIPアドレスにリンクすることが賢明です。

Pleroma Server 05 Sample Dns Record

これにより、以下でドメイン名を参照するコマンドが正しく解決されることが保証されます。このため、後でSSL証明書を設定する際に特に便利です。

  1. ドメイン名をVPSのIPアドレスにリンクするには、ドメイン名のDNSレコードを編集する必要があります。私とは異なるドメインレジストラサービスを使用しているかもしれませんが、ドメイン名をVPSのアドレスにリンクするプロセスは大部分が同じです。
  2. 私の場合、ドメイン名: yetanotherpleromaserver.xyzをNamesiloを通じてDigitalocean VPSにリンクしました。そのために、まずNamesiloのドメインマネージャウィンドウにアクセスしました。

Pleroma Server 06 Domain Manager

  1. ここから、ドメイン名をクリックする必要があります。これにより、その特定のドメインの設定が表示されます。
  2. 次に、「DNSレコード」リンクをクリックします。これにより、ドメイン名のすべての利用可能なDNSレコードが表示されます。

Pleroma Server 38 Dns Records 2

  1. 完了したら、Namesiloのレコードページの「リソースレコードの追加/編集」ボックスで「A」リンクをクリックして、DNSレコードに「A」リソースを追加しました。

Pleroma Server 08 Highlight A Record

  1. そこから、私が必要だったのは、Digitalocean VPSのIPv4アドレスを追加することだけでした。

Pleroma Server 09 Added A Record

  1. 「AAAA」レコードを追加するプロセスも同様です。ただし、「A」リンクをクリックするのではなく、「AAAA」リンクをクリックします。さらに、IPv4アドレスを追加するのではなく、IPv6アドレスを追加します。

Pleroma Server 10 Added Aaaa Record

また読む: より良いセキュリティのための5つのベストLinux-Libreディストリビューション

2. Pleromaの依存関係を取得

次に、Pleromaが必要とするすべてのパッケージをダウンロードする必要があります。上記で説明したように、DebianおよびUbuntuベースのLinuxディストリビューションのインストールプロセスのみを強調します。そのため、aptを使用して必要なすべてのパッケージをインストールします。

これを念頭に置いて、Pleromaは3つの主要なプログラムに依存しています: postgresql, elixirおよびerlang。したがって、これらのプログラムと、それらの作業を補完するいくつかのプログラムをインストールする必要があります。

そのためには、次のコマンドを実行できます:

sudo apt install git build-essential postgresql postgresql-contrib cmake libmagic-dev elixir erlang-dev erlang-nox nginx certbot

Pleroma Server 11 Installing Packages

3. Pleromaユーザーの作成

これが完了したら、次に「pleroma」ユーザーアカウントを作成する必要があります。これは、Pleromaパッケージをダウンロードしてインストールするために使用するアカウントです。この方法で行うことで、Pleromaプログラムがシステムに対してスーパーユーザーアクセスを持たないことが保証されます。

これを行うには、次のコマンドを実行できます:

sudo useradd -r -s /bin/false -m -d /var/lib/pleroma -U pleroma
  • -rオプションは、「pleroma」ユーザーをユーザーアカウントではなくシステムアカウントに設定します。
  • さらに、-sオプションは、このユーザーのログインシェルを「false」に設定します。これにより、pleromaユーザーは自分自身でシェルからコマンドを実行できなくなります。
  • 一方、-mおよび-dフラグは、「pleroma」ユーザーのホームディレクトリを設定します。-mフラグはアカウントにホームディレクトリを持たせることを明示的に設定し、-dフラグはそのディレクトリを「/var/lib/pleroma」にポイントします。
  • 最後に、-Uフラグは同名のユーザーグループを作成し、新しく作成されたPleromaユーザーをそのグループに追加します。

Pleroma Server 12 Add Pleroma User

4. Pleromaをダウンロード

そこから、Pleromaパッケージをリポジトリからダウンロードできます。これを行うには、まずファイルがダウンロードされるディレクトリを作成する必要があります:

sudo mkdir -p /opt/pleroma  
sudo chown -R pleroma:pleroma /opt/pleroma
  • 最初のコマンドは、プログラムのすべてのファイルをダウンロードするための「pleroma」ディレクトリを作成します。
  • 2番目のコマンドは、そのフォルダーの所有権をrootからpleromaに移転します。これにより、pleromaはこのフォルダーから問題なく読み書きできるようになります。

Pleroma Server 13 Create Directory

完了したら、次にPleromaのソースコード自体をダウンロードします。これを行うには、gitを使用する必要があります:

sudo -Hu pleroma git clone -b stable https://git.pleroma.social/pleroma/pleroma /opt/pleroma

Pleroma Server 14 Git Clone

5. Pleromaの準備とインストール

/opt/pleromaディレクトリに移動して、プログラムのインストールプロセスを開始できます:

cd /opt/pleroma

そこから、Mixプログラムを実行してPleromaの追加の依存関係を取得する必要があります。これを行うには、次のコマンドを実行できます:

sudo -Hu pleroma mix deps.get

Pleroma Server 15 Get Deps

完了したら、Pleromaのコンパイルとインストールを進めることができます。そのためには、1つのコマンドを実行するだけです:

sudo -Hu pleroma MIX_ENV=prod mix pleroma.instance gen

このコマンドは3つのことを行います:

  • 最初に、MIX_ENV=prodオプションは、プログラムの環境変数を本番セットアップをターゲットに設定します。これは、プログラムに開発ツールやファイルが含まれないことを意味します。
  • genオプションは、提供された環境変数をターゲットにした設定ファイルを作成します。
  • 最後に、このコマンドはPleromaをソースコードからコンパイルしてインストールします。したがって、このプロセスは、実行しているハードウェアによっては時間がかかります。

Pleroma Server 16 Install And Compile Pleroma

また読む: Ubuntuのログインループを修正する方法

6. Pleromaインストールの構成

Pleromaのコンパイルが完了すると、サーバーに関するいくつかの情報を求められます。

  1. 最初に、プログラムに使用したいドメイン名が必要です。私の場合、ドメイン名: “yetanotherpleromaserver.xyz”を使用しました。

Pleroma Server 17 Domain Name Config

  1. そこから、設定スクリプトはPleromaサーバーの名前を尋ねます。私の場合、サーバーのために同じ名前: “Yet Another Pleroma Server”を使用しました。

Pleroma Server 18 Server Name

  1. 次に、管理者のメールアドレスを入力します。これは、メールを受信および送信できる適切なメールである必要があります。

Pleroma Server 19 Admin Email

  1. さて、Pleromaインスタンスが検索エンジンによって検索可能であるかどうかを選択します。これは、他の人が参加してログインできる公開Pleromaインスタンスを作成したい場合に便利です。私の場合、このサーバーをプライベートにしたかったので、「n」を選択しました。

Pleroma Server 21 Search Engine Indexing

  1. その後、スクリプトは設定をデータベースファイルに保存するかどうかを尋ねます。ほとんどの場合、ここで「はい」を選択し、求められるデフォルトオプションを選択したいでしょう。

Pleroma Server 22 Local Database

  1. 最後に、スクリプトはリッスンするポートとアドレスに関する詳細を追加するように求めます。Pleromaを設定しているのと同じマシンにインストールしている場合、ここではデフォルトのままにしておくのが安全です。

7. メディア特有の設定

  1. さて、設定スクリプトは、サーバーにアップロードされるメディアファイルを保存する場所を選択するように求めます。上記の設定と同様に、これらはデフォルトのままにしておくのが安全です。

  2. 次に、受信する写真のEXIFデータから地理情報を削除するかどうかを決定します。これは、アップローダーのプライバシーを保護したい場合に便利です。私はこれをプライベートインスタンスとしてのみ使用するので、ここでは「いいえ」を選択しました。

  3. さらに、アップロードのファイル名を匿名化するかどうかを決定する必要があります。これは、アップローダーとそのアップロードされた内容との関連を削除したい場合に特に便利です。私の場合、ここでも「いいえ」を選択しました。

  4. 最後に、設定スクリプトは、サーバーにアップロードされたファイルの複数のコピーを作成するかどうかを選択させます。私の場合、ここでも「いいえ」を選択しました。

8. Pleroma設定の最終化

  1. 現在、設定ファイルを表示できます。これは「/opt/pleroma/config/generated_config.exs」にあります。lessを使用して表示できます:
less /opt/pleroma/config/generated_config.exs
  1. この設定を最終化するには、このファイルの名前を「prod.secret.exs」に変更する必要があります。次のコマンドを実行することでそれを行うことができます:
sudo -Hu pleroma mv config/{generated_config.exs,prod.secret.exs}

Pleroma Server 28 Config Folder

また読む: Yggdrasilネットワークとは何か、そしてそれをインストールする方法

9. Pleromaデータベースの開始

  1. 次に、データベースプログラムを開始する必要があります。これを行うには、Pleromaが提供したデータベースを使用できます。次のコマンドを実行してそのデータベースをロードできます:
sudo -Hu postgres psql -f /opt/pleroma/config/setup_db.psql

Pleroma Server 29 Import Database

  1. そこから、postgresとPleromaをリンクするために、postgresデータベースをPleromaに移行できます。これを行うには、次のコマンドを実行できます:
sudo -Hu pleroma MIX_ENV=prod mix ecto.migrate

Pleroma Server 30 Migrate Database

10. Pleromaサーバーの開始

さて、Pleromaサーバーを実行する時が来ました。次のコマンドを実行することでこれを行えます:

sudo -Hu pleroma MIX_ENV=prod mix phx.server

Pleroma Server 31 First Run

ただし、このサーバーは通常のブラウザからはまだアクセスできません。それを可能にするためには、まずcertbotとnginxを構成する必要があります。

また読む: Linuxのための最高のメールクライアント9選

PleromaのためのCertbotの構成

  1. Certbotの構成は比較的簡単です。まず、証明書が保存されるフォルダーを作成する必要があります。次のコマンドを実行することでそれを行えます:
sudo mkdir -p /var/lib/letsencrypt/
  1. これが完了したら、Pleromaサーバーのための証明書を生成できます。次のコマンドを実行することでそれを行えます:
sudo certbot certonly --email [email protected] -d yourpleromaserver.com --standalone

Pleroma Server 32 Certbot Finished

PleromaのためのNginxの構成

  1. そこから、次に必要なのは、Pleromaのためにnginxウェブサーバーを構成することです。Pleromaのインストールは、nginxの設定ディレクトリにコピーできるテンプレートをすでに提供しています。これを行うには、次のコマンドを実行できます:
sudo cp /opt/pleroma/installation/pleroma.nginx /etc/nginx/sites-available/pleroma.nginx
  1. 次に、この設定ファイルをPleromaサーバーに合わせて編集する必要があります。ほとんどの場合、これには4つの変数: server_name、ssl_trusted_certificate、ssl_certificate、およびssl_certificate_keyを変更するだけです。
  2. 最初の変数については、「example.tld」値をサーバーのドメイン名に変更する必要があります。私の場合、これを「yetanotherpleromaserver.xyz」に変更しました。

Pleroma Server 33 Nginx Config Server Name

  1. そこから、次の3つの変数はすべて、ドメインのSSL証明書の場所を指します。このガイドで証明書を作成した場合、そのパスは「/etc/letsencrypt/live/yourdomain.name/」になります。
  2. これはすでにnginxテンプレートによって提供されており、唯一の残っていることは「example.tld」値をドメイン名に変更することです。

Pleroma Server 34 Ssl Cert Config

  1. これが完了したら、nginx設定を有効にするために、アクティブなnginxディレクトリへのシンボリックリンクを作成できます。これを行うには、次のコマンドを実行できます:
sudo ln -s /etc/nginx/sites-available/pleroma.nginx /etc/nginx/sites-enabled/pleroma.nginx
  1. その後、nginxのsystemctlサービスを有効にして開始できます:
sudo systemctl enable nginx.service

11. 最終設定

  1. ここから、Pleromaのシステムサービスを構成し、最初のユーザーを作成できます。デフォルトでは、Pleromaはsystemdを介してそのサービスを有効にするためのsystemctlテンプレートを含んでいます。そのテンプレートを使用するには、次のコマンドを実行できます:
sudo cp /opt/pleroma/installation/pleroma.service /etc/systemd/system/pleroma.service

Pleroma Server 35 Copy Systemd Service

  1. これで、次にsystemctlを介してPleromaを有効にすることができます:
sudo systemctl enable pleroma.service

Pleroma Server 36 Enable Pleroma Service

  1. 最後に、次のpleroma.userコマンドを実行して、Pleromaインスタンスの最初のユーザーを作成できます:
sudo -Hu pleroma MIX_ENV=prod mix pleroma.user new yourusername [email protected] --admin

Pleroma Server 37 Done Installing

また読む: Linuxでターミナルに入力できない問題を修正する方法

よくある質問

1. アップロードした画像にまだ地理情報データが含まれています。何が間違っていたのでしょうか?

これはいくつかの理由による可能性があります。しかし、最も一般的な理由は、exiftoolパッケージがないことです。上記のガイドでは、exiftoolはデフォルトでインストールされていないパッケージでした。

したがって、アップロードした画像の地理情報を削除するには、そのパッケージを手動で追加する必要があります。これを行うには、次のコマンドを実行できます:

sudo apt install exiftool

2. Letsencrypt証明書を生成できません。何が間違っていたのでしょうか?

これもいくつかの理由による可能性があります。しかし、最も一般的な原因は、nginxがまだ実行中であることです。

certbotコマンドが機能するためには、一般的なWebポートが開いていて、他のプログラムによって使用されていない必要があります。nginxを無効にするには、次のコマンドを実行できます:

sudo systemctl stop nginx

画像クレジット: Pleroma