SNS・ミニブログ Pleroma(プレロマ)についてまとめています。

ページ運営者が運営している Pleroma インスタンスが存在します。

🎈 s.balloon.net.eu.org 🎈🦊 ふうせん ぷれろま
🎈 BALLOON | FU-SEN @balloon@s.balloon.net.eu.org


目次


公式サイト・サポート


特徴

Pleroma は次のような特徴を持っています

ActivityPub

ActivityPub は分散型 SNS の標準プロトコルの一つです。
Pleroma は内部から ActivityPub を採用した構造になっています。
この ActivityPub を採用しているものには次があります。探せば他にもあるでしょう。

これらの間で通信が可能です。
例えば Mastodon や Misskey などからも異なるインスタンス間で
フォローする事ができます。(リモートフォロー)
Mastodon 向けのクライアント・アプリは Pleroma でも使用できる場合があります。

Pleroma と Mastodon との違い

特に人気ある Mastodon と Pleroma は何か違うでしょうか?

Mastodon インスタンツを構築する場合は主に次が必要です。

  • Rails
  • PostgreSQL
  • Redis
  • Sidekiq
  • NodeJS
  • ElasticSearch (検索が必要な場合)

一方 Pleroma を同等に記載すると、主に次の構成のみです。

  • Elixir
  • PostgreSQL

実施 Mastodon インスタンスを構築すると、
最初からある程度のスペックが必要で、
更に人数に応じてスペックも高くしていく必要があるため、
サーバ構成を可変できるクラウドサービスが理想的になってきます。

一方 Pleroma の場合、Raspberry Pi や最低構成の VPS でも
少人数のインスタンスを安定運用できます。
インストール手順も少なめです。


インスタンスのインストール

幸い公式ドキュメントには日本語によるインストール方法が記載されています。
Debian ベースなので、Raspberry Pi OS など Raspberry Pi でも使用できます。

 Pleromaの入れ方 | Pleroma Documentation

代わりにページ運営者は OTP リリースで
Raspberry Pi の Raspberry PI OS へインストールを行いました。

🎈 Mastodon の話題を見たので Pleroma インスタンスを作る。 | ふうせん🎈 FU-SEN

次のページに記載している方法ですが、nginx の手順は省略しています。
代わりに外部のインスタンスに入れてある 🎈 CapRover を用いて
リバースプロキシで Raspberry Pi の ポート 4000 を参照しています。

 Installing on Linux using OTP releases | Pleroma Documentation

OTP リリースの場合、デフォルトのままインストールを進めると
各フォルダは次の場所になります。いずれもユーザーは pleroma です。

  • 設定ファイル: /etc/pleroma/config.exs
  • バイナリーファイル(pleroma_ctl など): /opt/pleroma/bin/
  • 静的ファイル(robots.txt など): /var/lib/pleroma/static
  • アップロード(投稿などの画像・動画): /var/lib/pleroma/upload

このうち 静的ファイル と アップロード のフォルダは
設定ファイルで設定して場所を変更できます。

nginx の代わりに別のアプリを使用する

インストール手順では 🎈 Let’s Encrypt で SSL 証明書を発行し、
Web サーバ nginx を経由して Pleroma を参照するように説明しています。
https を有効にする事と、
特定インスタンスからのブロックなどをコントロールできるメリットがあります。
この環境は他の Web サーバやサービスに置き換える事ができます。
また Pleroma とは異なる環境で運用する事ができます。

  • Pleroma の IP アドレス(サーバ名)・ポート(デフォルトは 4000)を参照する
    リバースプロキシを設定する
  • websocket を有効にする
  • SSL を有効にする

Raspberry Pi を使用する場合

Pleroma を一人~数人規模でインスタンス運用するのであれば、
メモリ 1GB の Raspberry Pi 3 B/B+ でも
swap 作成や zram インストールでまともに運用可能です。
メモリの多い Raspberry Pi 4・400 であれば、より安定運用でき、
ある程度の人数を対象にした公開インスタンスとしても使用できます。

Pleroma に限った話ではありませんが、長期運用を行う場合、
SD カードではディスクアクセスがありすぎて、
数ヶ月で使用できなくなる恐れがあります。
また、停電など突発的な電源オフで起動しなくなったりします。
Raspberry Pi 3 B/B+・4・400 は USB 起動も可能です。
Raspberry Pi でインスタンスをまともに運用する場合は
USB3 接続の SSD で運用する事を強くおすすめします。
更にハードディスクも接続して、
バックアップ+upload ディレクトリ運用とするのもいいでしょう。


インスタンスのアップデート

 Updating your instance | Pleroma Documentation

最新バージョンは Pleroma GitLab の Releases ページまたは
Pleroma 公式サイトの News ページで確認できます。

 releases | Pleroma GitLab pleroma/pleroma
 News | Pleroma

Pleroma のインストールフォルダへ移動します。
手順どおりにインストールしたのであれば /opt/pleroma です。

cd /opt/pleroma

最新版をダウンロードします。OTP インストールは次のコマンドです。

su pleroma -s $SHELL -lc "./bin/pleroma_ctl update"

ソースからの場合は次のコマンドです。

git pull
mix deps.get

Pleroma を停止します。systemctl を使用している場合は次のコマンドです。

sudo systemctl stop pleroma

アップデートを実施します。OTP リリースは次のコマンドです。

su pleroma -s $SHELL -lc "./bin/pleroma_ctl migrate"

ソースからの場合は次のコマンドです。

mix ecto.migrate

Pleroma を起動します。systemctl を使用している場合は次のコマンドです。

sudo systemctl start pleroma

このコマンドを実行してから正常に表示されるまでに
数分要するので、慌てないで下さい。


インスタンスのカスタマイズ

ページ運営者の経験上確実なのは設定ファイルに含める手段です。
ただしこの方法は反映に再起動が必要となります。

config :pleroma, :frontend_configurations,
  pleroma_fe: %{
    logo: "/instance/logo.svg"
    theme: "bird"
  }

静的ファイル(デフォルトは /var/lib/pleroma/static)内のファイルは
ファイルを保存して直ぐに反映されます。Pleroma を再起動する必要はありません。

静的ファイルに instance フォルダを作り、その中に画像ファイルを入れると、
直接そのファイルを参照するようにできます。

robots.txt

静的ファイル フォルダ直下(例えば static/robots.txt )にあります。 初期設定ではすべてのクローラーが参照するように設定されています。

User-agent: *
Disallow: 

例えば次のようにすると、完全にクローラーが参照できなくなります。
これは Google などでも検索結果に出てこない状態になります。

User-agent: *
Disallow: /

include/panel.html

これを有効にするには Pleroma-FE の設定として次の追加が必要です。

showInstanceSpecificPanel: true

静的ファイル フォルダ内(通常 static)に include/panel.html を置くと、
サイドバーにあるメニューの下、および「このインスタンスについて」の上部に
ウインドウを表示します。例えば次のようなものを作成します。

<div style="margin-left:12px; margin-right:12px">
<p>Welcome to <a href="https://pleroma.social" target="_blank">Pleroma!</a></p>
<p><a href="/main/all">Pleroma FE</a></p>
</div>

static/terms-of-service.html

静的ファイル フォルダ(通常 staticに /static/terms-of-service.html を置くと、 「このインスタンスについて」内で管理者枠の下にある表示が変化します。
ここでは .../static/static/terms-of-service.html となる事にご注意下さい。

利用規約を表示する欄ですが、必ずしもその用途にする必要はありません。
自由に HTML で作成できます。

<h2>インスタンスについて</h2>

<p>一人様インスタンスなので、登録は受け付けていません</p>

ロゴ

設定ファイルにファイル名を記載します。静的ファイル フォルダ内になります。

logo: "/instance/logo.svg"

logo 項目のみの場合はテーマカラーの考慮でモノクロ表示の画像になります。
元々の画像カラーで表示したい場合は logoMask: false を加えます。

logo: "/instance/logo.svg"
logoMask: false

このロゴは他のインスタンスやクライアント・アプリが表示に使用します。
縦横比が 1:1 になっている画像にする事をおすすめします。

favicon.png

静的ファイル(通常 staioc)フォルダ内に favicon.png ファイルを置くと、
ブラウザのタブなどで表示される画像を置き換えます。


クライアントのインストール・使用

Pleroma にはフロントエンドとして Pleroma-FE が含まれていますが、
複数アカウントを切り替えて投稿・確認したい場合やスマートフォンでの使用は
専用のクライアント・アプリを使用すると便利です。
Web アプリも存在しているので、Chromebook などの Chrome OS でも使用できます。

 Pleroma Clients | Pleroma Documentation

公式サイトで反映されていないクライアントも存在している可能性があります。
Mastodon 向けのクライアントで Pleroma でも使用できるものがあるでしょう。


Q&A

Mastodon や Misskey との違いは?

一人~少人数のインスタンスでも Mastodon や Misskey では
少なくてもメモリ 2GB+swap で動作させる必要がありそうです。
Pleroma はメモリ 1GB でも動作するので、
例えば Raspberry Pi を使用する場合でも Raspberry Pi 3 B/b+ を使用できます。
(実際ページ運営者は Raspberry Pi 3 type B でインスタンスを運用しています)

Pleroma の読みは?

  @lain@pleroma.soykaf.com

原作者 lain さんのプロフィールが「ぷれろまの生徒会長。」とあるとおり、
日本語読みは「プレロマ」で間違いないです。

 Mastodonに続く新たな連合型SNS「Pleroma」作者に聞く 開発の背景、特徴、ロードマップ | ITmedia News

lain さんはドイツ・ベルリンに居ますが、
日本語を学び、京都に住んでいた事があります。

  Pleroma | YouTube

公式 YouTube で聞いても「プレロマ」に近い発声になっていました。
「プレーローマ」という表記もあるのですが、明らかにそうは言ってません。

Pleroma はどの位のインスタンスと利用者が居ますか?

次のサイトで登録されている Pleroma を確認できます。
登録されている範囲なので、
ここに入っていない Pleroma インスタンスが他にもあります。

 Pleroma | the federation - a statistics hub

インスタンスを作成したので the-federation.info の一覧へ登録したいです

簡単です。Web ブラウザで次を参照するだけです。

https://the-federation.info/register/ホスト名

すぐに(数秒で)ページが作成されて表示されます。
これで今現在のインスタンス状態が一覧に反映されています。

その後は随時インスタンスが参照され値が更新されます。

大幅に値が変わった場合など、必要に応じて
上の登録 URL を送信する事で、すぐに現状態を反映する事もできます。

「羽田空港に着きました。」と投稿している意味は?

Pleroma の日本語表示で投稿欄に何も入っていない時に
「羽田空港に着きました。」が表示されています。
したがってテスト的に投稿したり、
意味なく投稿を行っている場合に該当します。

リモートフォローはどうやって行うのですか?

フォローしたいアカウントのページに入ると フォロー ボタンがあります。
ボタンを押すと自分のアカウント名を入力するように表示されるので、
アカウント@インスタンス名 で入力して下さい。

検索がうまく機能しません。

日本語・中国語・韓国語は Pleroma インスタンツから直接検索すると
期待する結果が得られない事があります。改善方法は次に記載があります。

 How to enable text search for Chinese, Japanese and Korean | Pleroma Documentation

しかし、これをインスタンスに実装するのが難しいケースが多いと思われます。

 notestock

notestock に登録する事で、こちらでの検索を可能にする方法があります。

「このインスタンスについて」の「スタッフ」が表示されません。

この時の表示 ¯\_(ツ)_/¯ の \ は \ ですが、
日本語では Shift_JIS の文字コードとして ¥ になる場合があります。

インストール後 Web 上で登録した場合は一般ユーザーの扱いになっているため、
管理者の属性が付いていません。
OTA インストールでデフォルトのままインストールしている場合は
次のコマンドで管理者を設定して下さい。

sudo /opt/pleroma/bin/pleroma_ctl user set ユーザー名 --admin

ソースからインストールしている場合は次のコマンドです。

mix pleroma.user set ユーザー名 --admin

設定 の プロフィール 内にある “管理者"のバッジを見せる または
“モデレーター"のバッジを見せる の  チェック を外すと、
プロフィールから「管理者」「モデレーター」が外れる以外に
「このインスタンスについて」の「管理者」「モデレーター」からも
名前が表示されなくなります。
全員がバッジ表示をなくすと、ログイン状態では ¯\_(ツ)_/¯ 表示になります。

Admin EP が一部動作しません。

エラー表示が出る場合は次の作業を行います。

 How to activate Pleroma in-database configuration | Pleroma Documentation

OTP リリースでデフォルトのままインストールしている場合は
次のコマンドです。

sudo /opt/pleroma/bin/pleroma_ctl config migrate_to_db

ソースからインストールしている場合は次のコマンドです。

mix pleroma.config migrate_to_db

設定ファイルに次の 1 行を加えて下さい。

config :pleroma, configurable_from_database: true

Pleroma を再起動し、Admin EP を参照して下さい。

インストールして起動しているはずですが、他の環境からポート 4000 が見えません。

デフォルトではリッスン IP アドレスが 127.0.0.1 になっています。
これはそれ自身に含まれる nginx などから参照される前提です。
外部のサーバなどを経由する場合、プロキシサーバが別環境にある場合は、
0.0.0.0 に変更して下さい。

config :pleroma, Pleroma.Web.Endpoint,
  http: [ip: {127, 0, 0, 1}, port: 4000]

同様にポート 4000 が他の目的で使用されていれば、これも変更可能です。

インスタンスをソースから OTP リリースへ変更したいです。

 Switching a from-source install to OTP releases | Pleroma Documentation

公式ドキュメントに手順があります。

Pleroma のバージョン更新を知る方法はありますか?

Pleroma の Git はサーバ運用型の GitLab で、アカウントの登録ができます。

 Sign Up | Pleroma GitLab

アカウントを登録した後、次のプロジェクトに入り、 の横にある をクリックし、
Custom - New release と選択します。
これにより、新しいバージョンが公開された時にメール通知されます。

 Pleroma | Pleroma GitLab

一部のインスタンスで異なるバージョンが見られるのですが?

ソースレベルで公開されているので、改良された派生版が存在します。

 Pleroma | Pleroma GitLab

公式公開版は 2022年11月現在 2.4.(1桁) です。

 sjw/pleroma | Pleroma GitLab

それとは別に SJW さんによる派生バージョンがあり、
こちらは 2.4.50 以降のバージョンが付けられています。
Baest などの一部インスタンスで採用されています。

一部独自にソースを改良しているインスタンスがあり、
その場合は、派生元バージョンの後ろにインスタンス名などが付与されています。

数字が小さいバージョンは単に古いバージョンが維持されています。