Chienomi

Akkomaサーバーを運用してみての感想

Live With Linux::server

今月から私はAkkomaサーバーを運用し始めた。

その存在は完全にはオープンではないためアドレスは掲載しないが、おひとりさまサーバーではなく、少数のユーザーがいるコンセプトサーバーである。

最終的にAkkomaにしたが、これはAkkomaのほかにMisskey, Mastodon, Pleromaを動かすだけ動かしてみて、構築がラクで、管理も比較的ラクそうなものとしてAKkomaを選択した。

その上で実運用に入ったのだが、使ってみると色々感じるところはあったので綴っていこうと思う。

そもそもAkkomaとは

AkkomaはActivityPubと互換性のあるSNSソフトウェアである。

Pleromaのforkであり、Pleroma同様にElixirで書かれている。 データベースはPostgreSQLを使う。

Plaromaとの違いはMisskey的な機能(カスタム絵文字のカテゴリ分け, カスタム絵文字のリアクション, MFM)を取り込んでいることだ。 実のところそれを除けば大差ないと言えそうだ。Pleromaも開発は続いており、Akkomaが事実上の後継となっているわけでもない。

Pleromaとはある程度の互換性はあるが、完全には互換ではない。 

Pleroma自体はGNU Social用フロントエンドから始まっているプロジェクトで、Mastodonよりも先に走り始めているようだ。 ただし、PleromaがPleromaになったのはもうちょっとあとのことになる。

Pleromaそのもののシンプルな感想としては軽量なSNSソフトウェアという感じだろうか。 「小さな」と言い換えてもいい。 非常に複雑な構成であるMisskeyはもちろん、Mastodonと比べてもだいぶコンパクトになっており、作りやすい。

このサーバー視点で維持しやすい構造が私の採用理由でもある。 要素が増えるとそれだけ維持の手間は増えるし、コストもかさみやすい。

一方でクラスタリングに対する配慮はそれほどされておらず、シングルサーバー向き。 小規模インスタンスやおひとりさまなら問題ないだろうが、大人数を支えようとするとかなり大変になりそうだ。

また、フロントエンドが分離されており、任意のフロントエンドを使うことができる。 「任意の」というが実際のところはPleroma用フロントエンドが(Akkomaに関してはAkkoma用のフロントエンドが)必要であり、言うほど選択肢があるわけではない。 Akkomaの場合、標準でPleroma FEがあり、他の選択肢としてMasto FE(Mastodon風)とFedibird FE(Fedibird風)が使える。 他にはManaganeというテーマがサードパーティで公開されている。

また、Mastodon用クライアントが使えると説明されているが、実際のところ使えない。認証が通らないためだ。 トークンを得るためのリダイレクトに失敗するのが理由であり、自前でなんとかしようとせずに、トークンを入力する方式のものなら使える(ことがある)。

サーバー問題

私はArchlinux上にAkkomaを導入した。 (他のSNS導入時の話はしないことにする)

AkkomaにArchlinux用のインストールガイドがあり、「おおよそ」それに従って構築することができる。 (OTPインストールはうまくいかない)

ただし、ひとつ問題があり、akkoma.serviceユニットはうまく起動しない。

これは、Archlinuxのexiftoolはあくまで/usr/bin/vendor_perl/exiftoolにあるが、これがパスに入らないためである。 なので、akkomaユーザーがこれをパスに入れるようにするか、もしくはsudo ln -s /usr/bin/vendor_perl/exiftool /usr/binとかしておく必要がある。

いずれにせよ、注意深くガイドを読みながら書かれているとおりに進めていけば導入はすんなり可能だ。

だが、導入はできるのだが、運営していく上でAkkomaは結構微妙だと感じた。

運用開始は簡単なのだが、私が使ってみて色々と「できないのかぁ」ってなったものがあった。

  • ユーザーによるユーザー招待リンクを用いた招待制の実現
  • ユーザーの投稿メディアのディスククォータ
  • ユーザーのメディア投稿時の処理スクリプトの適用
  • グローバルタイムラインの閉鎖

といったところで、それほどこだわった設定をしていない現時点でも結構「できない」と感じることがあるので、あまり拡張性はないというか、柔軟に作ることはできなさそうだ。

(個別のファイルサイズさえ越えなければどんなファイルでも、いくらでも上げられてしまうのは結構まずい)

また、機能がフロントエンドに依存している部分が結構あり、フロントエンドをいじることで(隠しておきたいのに)見えてしまうものがあったり、逆にフロントエンドに関係なくサーバーとして持つべき情報がフロントエンドの設定の中に入ってしまったりということがあり、いまいちすっきりしない設計になっている。

クライアント問題

そしてクライアントの問題はもっと厄介だ。

Akkoma用のクライアントというのはAkkomaによる改変Pleroma FEしかないため、ほかだとPleroma用かMastodon用を使うことになる。 例えば絵文字という点で見ると

Software カスタム絵文字カテゴリ 絵文字リアクション カスタム絵文字リアクション
Misskey
Mastodon v2
Mastodon v3
Pleroma
Akkoma

となる。

この関係で、Pleroma用クライアントはカスタム絵文字がカテゴリ分けされなかったりするし、カスタム絵文字によるリアクションを行えるのはほかにMisskeyだけであり、MastodonクライアントもPleromaクライアントもできない。

WhalebirdはMisskeyにも対応しているアカウントだが、機能的にはMastodon相当であるため、絵文字リアクションがない(Whalebirdはカスタム絵文字カテゴリもない)。 このような問題はMasto FEにもFedibird FEにもあり、こちらはカスタム絵文字カテゴリはあるが絵文字リアクションはない。

絵文字リアクションができるのは数少ないPleroma向けのクライアントだけなのだが、Pleroma向けクライアントを使うとカスタム絵文字リアクションはできない。

こうしたことから、結局フル機能使うならPleroma FE (Akkoma版)が唯一の選択肢になる。

そしてPleroma FEのデキがいいのなら問題ないのだ。 Misskeyもクライアントアプリがないタイプだが、公式UIに十分な機能が備わっているため全く不満を感じない。

ところが、Pleroma FEは表示がおかしくなることがある、かなり雑なくらいのものだ。 洗練にはほど遠く、かなり古臭い。しかも、タイムラインの更新は基本手動であり、動作は全体的にぎこちない。 「ログインしないと見られない」というサーバー設定にしている場合に、アクセスしたユーザーにエラーを見せてしまうのもイケてない。

このようなことでPleroma FEにはかなり不満を抱くのだが、現実問題としてPleroma FE以外の選択肢がない。

Manganeも文字色と背景色が同じになってしまったり、ウィンドウが変なところに出たりと問題満載で使い物にならない。

クライアントの体験の悪さから、かなり「いまいちなソフトウェア」に見えてしまう。

それでも二番目はAkkoma

性能面で極端に秀でたものを見せるわけでもなく、スケーラブルとは言い難い構造をしている。 決して悪くはないが、UI/UXが悪く、Mastodonと比べても亜流の感は否めない。

そのようなPleromaをベースとしたAkkomaではあるが、実際にSNSを構築する上で、Misskeyに次ぐ二番目の選択肢である、と言えるのだ。

その理由がカスタム絵文字である。

私はメッセンジャーでもあまりスタンプを多用するタイプではないので、絵文字をそれほど重要だと考えていたわけではなかったのだが、実際に体験してみるとこれが極めて中核を担う存在であることに気づいた。

まず人数が少ないSNSというのを想像してみてほしいのだが、これは「賑わっていないチャットサイト」に似ている。 数時間おきに一言、誰かが残した形跡があるというだけのものなのだ。 これがTwitterのようなフォローありきの状態なら絶望的だ。しかしAkkoma/Pleroma, Mastodon, Misskeyなどにはローカルタイムラインが存在し、全ユーザーがひとつのチャットルームを使っているような状態になる。 しかし、人との会話ができないチャットルームが栄えることは難しく、長く続けるモチベーションにも乏しいため、未来はかなり暗い。

これは、「会話が続かない」ことを致命的な問題にしている。 何人かの人が書き込んでいても、それを見て言及する気にならなければ、SNSとして成立していかないのだ。 そして、知っている人相手ですら、その人が虚空に向けて言った言葉に反応していくのはなかなか難しい。

ここに絵文字リアクションが追加されると、一気に状況が変わる。 様々な絵文字、あるいは組み文字を用意すると、「返信でかけるような言葉や、引用で言及するほどの内容は持たないが、なにか反応したい」が実現するようになる。 絵文字リアクションは文字の代わりに使われるものではなく、適切な絵文字リアクションがなければ「無反応」になるのだ。

Akkomaはカスタム絵文字によるリアクションが可能であり、これが明確にPleromaに対するアドバンテージなのだが、これが非常に大きい。 「欲しいのではないか」と思うカスタム絵文字を追加すると、目に見えて交流が活発になっていく。

カスタム絵文字によってSNSが活発になり、それが交流を生み、うまく回るようになっていく。 もはや「なくてはならない」と言っていいファクターだ。

このようなカスタム絵文字リアクションはSlackやDiscordで馴染みがある人も多いだろうし、そこからDiscordを連想する人もいるようだが、Misskeyは特にこれらを参考にしたという事実はなく、LINEのスタンプを参考にしたという。 これは相当素晴らしいことであったと言えるだろう。

SNSとしての性能をなど様々な要素はあるが、現状ではこの「カスタム絵文字リアクション機能」と「優れたUI」を持つMisskeyがSNSプラットフォームとしては圧倒的によく、カスタム絵文字リアクションを省くことはできないから第二の選択肢はAkkomaになる。

Akkomaサーバーの管理について

運営上の話をすると、「制限」に関する機能が手薄いこと、再起動を伴う必要がある設定変更が多いことが目立つ。 また、Admin FEにリソース状況など管理を補助する情報提示が何もなく、運営者にフレンドリーとは言い難い。

いい点としては、Admin FEからパスワードリセットリンクを生成できることくらいだろうか。 Misskeyはパスワードを強制的に変更するものであるため、この点はAkkomaのほうが優れている。

Emojiに関しては、カテゴリ追加が設定ファイルに書いて再起動形式なので、よくない点もあるのだが、単純にフォルダもろともサーバーにアップロードすれば機能するのは非常に良い点だ。

だが、管理に関していえば、もちろんコンポーネント数が少ない分安定して動くのはあるが、Akkoma自体のアップデートの手順はいまひとつ簡単ではなく、言うほど良くはない。 Misskeyと比べ小規模なインスタンスは少ないリソースでよく動くため、その点は悪くない。 多くの不満点も、使っているとそこまで気にならなくなってくる。

だが正直、今立てるならMisskeyのほうがおすすめなのは間違いない。