noellabo's tech blog

@noellaboの技術ブログ

Mastodon

ローカルタイムラインを無くす

Fedibirdで採用している、ローカルタイムラインを取り除くコードを独立させたものを用意しました。Mastodon v3.3.0用になっています。 変更内容はGithubの該当コミットを参照してください。 github.com cherry-pickの仕方 git fetch https://github.com/fedi…

Mastodonにテーマを追加する

Mastodonを自分で設置している人は、テーマ作ってみたいですよね。テーマ。やってみましょう! 手順 だいたいこんな感じです。順番に説明します。 テーマの名前を考える ベースにするスタイルを決める ベースから変更する差分のscssを書く テーマの一覧に追…

マストドンのサークルとコミュニティの話

Mastodonが取り組んでいる開発中の機能(サークル)と、Fedibirdのグループ(コミュニティ)機能の現状についてざっくりご紹介

Mastodonの開発活動について

この投稿は、Fediverse Advent Calendar 2020の25日目の記事です。 (あれ、のえるさん、今は26日の夜で、そろそろ27日になりそうじゃないですか? おかしいですね?) 普段は利用者として、あるいは運営者として関わっているMastodonですが、もう一つ、開発…

Fedibirdのグループ機能について

FedibirdをマージしたQOTOと、グループサーバ 先日、英語圏のMastodonサーバのひとつであるQOTOがアップデートしまして、Fedibirdのほとんどのコードをマージしました。ローカルタイムラインを無効にするところ以外って感じかな。 QOTOではFedibirdの機能の…

PostgreSQLを動かしているOSをアップグレードするとデータベースが壊れることがある

TLDR Locale data changes - PostgreSQL wiki を読むべし glibcが2.28以前から以降に更新される際に、ロケールによる照合順序の変更の影響を受け、インデックスが壊れる 誤ったパーティションに書き込んでしまうことがある Ubuntu 18.04以前から18.10、20.04…

DeliveryFailureTrackerがホスト単位になりました

以前に書いたMastodonが配送に失敗したジョブに対処する仕組みとDeliveryFailureTrackerで閉鎖したサーバに対処するの続きです。 死んでいるサーバに配送してしまう問題が解決 これまでinboxのURLで配送失敗を記録していたため、主に投稿の配送に使うshared_…

DeliveryFailureTrackerで閉鎖したサーバに対処する

以前に書いたMastodonが配送に失敗したジョブに対処する仕組みの続きです。 追記:Mastodon v3.1.4以降は仕様が変わっています。続きの記事もあわせてお読みください。 DeliveryFailureTrackerがホスト単位になりました DeliveryFailureTrackerの仕組み Deli…

Mastodonが配送に失敗したジョブに対処する仕組み

追記:Mastodon v3.1.4以降は仕様が変わっています。続きの記事もあわせてお読みください。DeliveryFailureTrackerで閉鎖したサーバに対処する / DeliveryFailureTrackerがホスト単位になりました Mastodonのサーバで投稿やブーストが行われると、フォロワー…

リレーサーバの内部の仕組み

リレーは、ActivityPubを用いて、Activityを中継する比較的単純なサーバプログラムです。 MastodonやPleromaなどのActivityPubサーバからリレーに接続を行い、お互いにやりとりできることを確認します。接続が確立できたら、Activityの送受信を開始します。 …

Mastodon v3.1.0、node v10.13以上が必要だってよ

いろいろ面倒くさいので、この際、nodenvを使って切り替えましょうか。 nodejsとyarnをnodenvでインストールする mastodonユーザーでログインした状態にします。 sudo -iu mastodon nodenvを取ってきます。 git clone https://github.com/nodenv/nodenv.git …

Fedibirdってなに?(紹介)

この記事は、Fedibird Advent Calendar 2019の1日目の記事です。 ひとまず導入として、Fedibirdについて改めて説明しておこうと思います。 Fedibirdは、SNS・マイクロブログ機能を提供するWebサービスの一つです。 短い文章や写真やイラスト・映像・音声を投…

Wasabiの障害に悩まされている小規模Mastodonサーバのための機能拡張と運用の提案

wasabiと上手に付き合おう 安くて嬉しい我らがオブジェクトストレージwasabiですが、たびたび不安定になってツライという悩みどころがあります。そこで、Mastodonにちょっとだけ手を加え、運用を工夫して、上手に付き合っていこうという提案です。(どのオブ…

Mastodon用にRedisインスタンスを複数立ち上げる

ここでは、Debian / UbuntuでMastodonを実行しているという前提で説明します。 最新版をインストールする 複数のインスタンスを立ち上げる 環境を整備する 最新版をインストールする 基本的にapt install redisだけでイケるんですが、最新版がインストールさ…

3年目を迎えるにあたっての雑感など

この記事は、S.H.さん主催のMastodon Golden Week Calendarの2日目の記事です。 昨日1日目の記事は7_nanaさんの最近のマストどすについてでした。 ゴチャゴチャ色々考えていたんだけど、結構息苦しい内容になってしまったので、書き直しました。雑感というこ…

Elasticsearch 7.0 をMastodonでムリヤリ使う

別に、どうしても elasticsearch 7.0 を使いたい理由なんて無いんですが、まぁ、面白そうじゃないですかw おさらい Mastodonは、chewyというgemを使ってElasticsearchに対応しています chewyは、elasticsearch-rubyというgemを使っています elasticsearch-ru…

ElasticsearchをMastodonとは別のサーバに設置する

新しくVPSを借りたので、そこにElasticsearchのサーバをたてたい! という話がありました。 よい機会なので、Elasticsearchのインストールからsudachiを使えるようにする設定変更まで、ざっくり記録しておこうと思います。 Elasticsearchをインストールする …

Let's Encrypt(certbot)で、TLS-SNI-01の削除により証明書の更新に失敗する問題への対応

さくらのクラウド Mastodonスタートアップスクリプトなどで2017年8月15日以前にサーバを立てた人は、2019年2月15日にTLS-SNI-01での証明書取得ができなくなったことを受け、更新に失敗して慌てているのではないかと思います。また、さくらのクラウドに限らず…

インスタンスの役割とリレーのもたらすもの

この記事は、ぐすくまさん主催のMastodon Advent Calendar 2018の10日目の記事です。 昨日9日目の記事はろーかるゆーざーさんのMastodonは「きっかけ」 | WWW.BLUECORE.NETでした。 おはようございます。のえる@DTP鯖管です。 DTP-Mstdn.jpというDTP・デザイ…

v2.7.4からv2.8.0にアップデートするのが難しいのはなぜか?

Mastodon v2.8.0 がリリースされましたが、v2.7.4にgit merge v2.8.0するのはちょっとまってください。自動でマージすることができず、コンフリクトします。 https://dtp-mstdn.jp/@noellabo/101904394306319396 更新の方法・注意点は、毎回リリースページに…

Mastodonからの、ハッシュタグリレーへの参加の仕方

Mastodonからハッシュタグリレーに参加する ハッシュタグリレーとは ハッシュタグリレーは、ハッシュタグ付きの投稿を参加者にリレーするリレーサービスです。 https://hashtag-relay.dtp-mstdn.jp/ ここでは、主にMastodonから参加する方法を説明します。 …

mastodonユーザーでsystemctl restart mastodon-*したいよね?

小ネタ。アップデートの際など、mastodonユーザーで作業中にユーザーを切り替えてsystemctl restart mastodon-*するのは面倒なので、mastodonユーザーが実行できる専用のコマンドmastodon_ctlを作って再起動できるようにします。 準備 シェルスクリプトmasto…

tootctl accounts cull

以下の内容は、Mastodonのtootctlコマンドの非公式リファレンス 兼 解説記事です。 移動されたり、別の形で再公開されることが予想されますので、あらかじめご承知おきください。 accounts cull コマンド もう存在しないリモートアカウントを削除します ヘル…

予備のサーバにPostgreSQLをレプリケーションしよう

Mastodon管理者のためのレプリケーション レプリケーションのススメ Mastodonサーバ管理者(鯖缶)のみなさん、レプリケーションしてますか? ざっくり言うと、 元のPostgreSQLの設定にレプリケーションに必要な設定項目を追加する レプリケーション用のユー…

WAL-GでオブジェクトストレージにPostgreSQLをバックアップしよう

Mastodon管理者のためのWAL-Gバックアップ WAL-Gのススメ Mastodonサーバ管理者(鯖缶)のみなさん、オブジェクトストレージ、使ってますか? 使っているなら、PostgreSQLのバックアップ、オブジェクトストレージにとるという手がありますよ。 ざっくり言う…

Mastodonの概要

Mastodonは、Ruby言語とJavaScript言語で書かれたプログラムです。 Rubyのプログラムを実行するためにはRubyのインタプリタが必要で、Mastodon v3.2.0では、ruby 2.6.6を使っています。 JavaScriptのプログラムを実行するためにはJavaScriptのインタプリタが…

Mastodonインスタンスと、保存されるデータの話

知っておきたいデータの保存先と節約方法 お約束 この記事はv2.5.2および2018年10月14日のmasterに基づいて書かれています。 非公式のもので、きちんとした資料として内容を保証するものではありません(誤りがあればお知らせ下さい)。 Mastodonについて、…