新しいものを表示

ちょっとほったらかしだったElasticsearchまわりと、新しいstreaming関連コードのマージ作業を行います(一応予告)

Fedibirdでキーワード購読を設計する際、全部受け取る指定する人でてきたらどうするか、マッチ件数どのぐらいまで許可するか、一定範囲をサンプリングしてマッチ件数を調べる方法はどうか、とかいろいろ検討したんだけど、結局導入しなかったよ。

で、全部ヒットさせるヤバイ購読を設定している人、中にはいるかもしれないけど、特に問題にはなっていないね。

Mastodonの仕組みでは、結局個人のHTLやリストは400件(ウチは2000件に増やしてあるけど)までしか保持っていうのが大きいかな。

懸案だった、マルチカラム(上級者向けUI)の右端に表示する追加メニュー(ナビゲーションパネル)の表示を概ね期待する動作に修正できました。特に、iPadなどで利用していた人が使いやすくなっているかと思います。

Fedibirdは理念からしてカオス属性なのだが、他のサーバの勢力下で霞んでおるなw

@circledev サークル機能ですが、返信についての実装を行いました。

まず、サークル機能のおさらいです。

サークルは、自分で指定した特定の相手にだけ閲覧できる投稿を行う機能です。

この時、メンション(@のついた宛先)を付けずに送付することができるため、誰に対して送付したか伏せることができます。

送信の際は、自分のフォロワーの中からユーザーを選択し、事前に送付先リストを用意しておきます。これを指定して投稿します。

送付先リストをあとで編集しても、既に投稿したサークルを読めるメンバーは変わりません。送った時点での宛先が記憶されています。

さて、サークルへの返信ですが、いろいろ試行錯誤した結果、リプライツリーを遡って会話に加わった人(もとのサークルに含まれる人のサブセット)を対象とする「reply」という宛先リストを自動生成し、これをデフォルトにしてみました。

(このreplyサークル、サークル投稿以外への返信でも使えます)

でテストできるよう適用してあります。この状態で少し、ちゃんと動作するかの確認と、使い勝手の確認をしていきたいと思います。

WebUIからのリプライがおかしくなる(サークルによる返信になってしまい、しかもエラーになる・返信自体は行われる)不具合を修正しました。

422か……なんかやらかした可能性高いな。調べます。

約30分ほど、ホームおよびリストへの配送が詰まっておりました。

更新の際の記述ミスで、sidekiqのジョブがエラーになったことが原因です。凡ミスです。すまんせん。

TL;DR 気にしなくてOK
--

では、Let's Encryptという無料で発行できるサーバ証明書を利用しています。

このLet's Encryptで発行した証明書が、Android 7.1以前(7.1を含み、7.1.1は含まない)に含まれていないルート証明書を使うように変更になるということで、接続できなくなるのではないか? と話題になっています。

ただし、SubwayTooterやTusky、YuitoのようにクライアントアプリにTLSスタックを含んでいる場合は問題がなく接続でき、Chromeも同様に問題ないということなので、Fedibirdでは特に特別な対応を行わず、引き続きLet's Encryptの証明書使用していく方針です。

fedibird.com/@noellabo/1046356
の続き。

PostgreSQLはメインのサーバとレプリカのサーバに分け、同期レプリケーションを行っています。読み出しだけで良いアクセスはレプリカの方にアクセスすることで負荷分散を行う構成です。

Redisは、スタンバイに同期しており、ダウン時は手動で差し替えられるようにしてあります。

PostgreSQLは、一日一回フルバックアップをwasabiに、1分に一度WALをwasabiに保存しており、7日ほど保存してあります。概ね任意の時点に復元できます。

VPSは全部で6台。

メインの2台はVultr4CPU/16GBとさくらのVPS 6CPU/8GB、Lightsailは最小限の$5、HAProxyとDB鯖2台は2CPU/4GB。

DB鯖とRedis鯖は同居で、他のサーバも余剰リソースを他のサービスと共用して運用しています。

スレッドを表示

の構成をざっくり。

まず、ユーザー側(インターネット側)からは、本体のHAProxy鯖とメディアのCloudflareがあります。たまにHAProxyの前にCloudflareを挟んでテストすることもありますが、普段は本体には通していません。

メディアの方は、Cloudflareの内側に、Lightsailにnginxを置いて、S3へのアクセスをキャッシュしています。キャッシュが有利なことはもとより、Lightsailの価格に転送量が含まれているため、S3に直接アクセスさせるより費用の節約になるためです。

本体側のHAProxyはロードバランサーです。2台のVPSのnginxへアクセスを振り分けています。片方がダウンしている時は、そちらにはアクセスが振り分けられないようにして、ダウンタイムを少なくすることに貢献しています。

各VPSの構成は図の通りで、sidekiqは3系統に、外部鯖のredisへのアクセスはmainとcacheに分け、PostgreSQLへのアクセスはpgbouncerを経由。メディアはS3に直接保存します。

ではリストの活用シーンが多いので、 :toot_app: Toot!のiPad版の左側のメニューにリストが展開されるのはもの凄く便利なのであります。

まぁ、Fedibird特有の機能(引用とか)は使えないんだけど、閲覧には凄くいい。

通知サーバがなにやら強くて、だいたい漏れなく通知してきてくれるので、そこも頼りになるところです。

AppleWatch使ってると、Watch上で通知された中身も見えるよ!

ちんねこ先生がスクショ付きで紹介してくれているから、みておくといいよ!
QT: chin-co-ne.co/@worstman/104625

最低人間  
ブログを更新しました。 マストドンの iOS クライアント「toot!」が iPad 用クライアントとしていい感じ http://worstman.net/313

@info (Fedibirdインフォメーションのアカウント)ですが、Fedibirdに登録した際に自動フォローするアカウントで、利用方法をご案内するための情報を流しています。

Fedibirdは機能追加が多いので、そのあたりを含めた利用案内となっており、比較的重要な内容が多いです。サーバ外からフォローされている方も結構います。

とはいえ、Webでログインするとメニューから辿れるようになっていて、必要な時に参照できるようになっていますので、フォローをはずしてしまってOKです。

通常 タグが必ずついていますので、ハッシュタグタイムラインから辿ることもできます。

また、日々の細かな情報は、管理者 @noellabo のアカウントから投稿しています。 @info で投稿した内容も紹介するので、管理者をフォローして普段から目を通しているのであれば、 @info をフォローしていなくても大丈夫です。

まぁ、管理者をフォローしているとウルサいですし、常時カレーが流れてくるという問題がありますので、情報源は各自、適当に加減してくださいませ。

の地味だけど重要な機能をひとつ。

ホームタイムラインから、フォロイーをはずすことができます。

ホームにフォローした人の投稿が流れてきません。

代わりに、リストで受け取るのが基本的な使い方。

ホームを主要な情報に絞り込みつつ、いろんな人、いろんな情報をフォローしていくのに便利です。

リストを使う以外の応用としては、

・アカウント購読で、公開投稿だけを流す(未収載・フォロワー限定投稿はあえてみない)

・ハッシュタグやキーワードで、その人の見たい投稿だけに絞り込む

・アカウントタイムラインでだけ投稿をみる(リアルタイムではチェックしない)

・フォロワーであることは維持し、ミュートのように使うが、ブーストされてきたものはみたい(ミュートするとみえないので)

などの使い方ができます。

@meyhem さんが、Fedibirdからふるどんに参加するという戦略をとっているよね。この組み合わせは強い。どっちもタグ検索高速化済みサーバだし。

1:30頃〜2:00頃までのあいだ、Fedibirdのデータベースサーバ障害により接続できなくなっておりました。また、その後20分程度、パフォーマンスの低下など利用に支障のある状態となっていました。ご不便をおかけして申し訳ございません。

本件は、データベースのメイン側(メインとレプリカの2台構成です)のVPSの障害で、VPSが応答なし(VPS業者/Vultrのコントロールパネルからも操作できないエラー状態)となったことによるものです。現在は復旧したようですが、寝かせてあります。

対応として、レプリカ側のデータベースをメインに昇格し、各種接続を切り替えて復旧を行いました。

一台目のwebサーバが動かないけど、バックエンドは大丈夫そうだな……。 :yoshi: :genbaneko:

古いものを表示
Fedibird

様々な目的に使える、日本の汎用マストドンサーバーです。安定した利用環境と、多数の独自機能を提供しています。