GNU socialのプラグインの有効化
分散SNSのGNU socialのプラグインの有効化の方法を記す。
概要
分散SNSのGNU socialにはプラグイン機能が採用されている。
プラグインを使うことで,本体のソースコードを修正しなくても,ユーザー側でプラグインを設置して設定を編集することで,機能を追加できる。
同じ分散SNSで人気のMastodonやPleromaにはプラグイン機能が採用されておらず,ソースコードを修正するしか拡張の余地がない。
そういう意味では,プラグインはGNU socialの特徴的な機能だ。
公式マニュアルにもプラグイン機能について説明があるが,ここで改めてこの機能の使い方を整理しておく。
手順
GNU socialのプラグインの有効化については「DOCUMENTATION/SYSTEM_ADMINISTRATORS/PLUGINS.md」に書かれている。
これを整理すると以下の手順となる。
GNU socialに同梱されているプラグインの場合,手順1は省略され,手順2のconfig.php
の修正のみで済む。
プラグインはplugins/
, local/
, local/plugins/
ディレクトリーが検索対象となる。ただし,これらの内plugins
はGNU socialの同梱プラグインの格納ディレクトリーであるため,基本的にlocal/plugins
に配置すればよい。
addPlugin
の第一引数のプラグイン名
に対して,検索対象ディレクトリーから'プラグイン名Plugin.php'
または'プラグイン名/プラグイン名Plugin.php'
を読み込む。
プラグインのマニュアルなどで記載があれば,以下のようにaddPlugin
の第2引数にパラメーターを連想配列の形式で追加する。
addPlugin('Example', ['param1' => 'value1', 'param2' => 'value2']);
プラグインの仕組みとしては,WordPressと同じように,GNU socialのイベントに関数を登録して,機能を実現している。
具体例
実際に外部からプラグインをダウンロードして有効化する手順を解説する。
なお,最新安定版のv1.20.9releaseで確認した。開発中のnightlyブランチではプラグインの仕組みが代わり,そのままでは動作しなかった。
GNU socialのプラグインは有志が個別で開発している。今回はお気に入りされた投稿を一覧表示できる「ReverseFavs」プラグインを例として用いる。
- まず「ReverseFavs」にアクセスし,[Clone or download] を選択してzipファイル (
gs-reverseFavs-master.zip
) をダウンロードする。 - ダウンロードしたzipファイルを
local/plugins/
(例:/var/www/html/gnusocial/local/plugins/
)に移動させ解凍する。デフォルトでは,local/plugins
ディレクトリーは存在しないので,作成しておく。 - 解凍後のディレクトリー名を
gs-reverseFavs-master
からReverseFavs
に変更する。 config.php
にaddPlugin('ReverseFavs');
を追加する。
これで以下の画像のように,サイドバーに [REVERSE FAVS] のメニューが追加される。
プラグインを無効化する場合,config.phpに追加したaddPlugin('ReverseFavs');
の行を削除するかコメントアウトすればよい。
結論
GNU socialの特徴的な機能であるプラグインの有効化方法について解説した。
GNU socialは10年以上の歴史のある分散SNSの実装であり,同梱されているプラグインも数多くある。さらに,他の人が開発したプラグインを使うこともできるし,気に入らなければ自作することもできる。
プラグインにより,より自分好みの分散SNSを実現していこう。