投稿

ラベル(mastodon)が付いた投稿を表示しています

Mastodon v4.3.0で画像が表示されなくなった

Mastodonのお一人様サーバ をv4.3.0にアップグレードしたところ、画像などのファイルが表示されなくなってしまいました。 私のサーバは、ConoHaのVPS上に建てているのですが、メディアファイルはConoHaのオブジェクトストレージ上に設置されていて、nginxのreverse proxy経由で https://media.procydon.net/ というURL経由でアクセスするようになっています。ConoHaのオブジェクトストレージはSWIFT互換なので、Mastodonでも SWIFT用の設定 で動作しています。 ブラウザのDev Toolsを見ると、メディアファイルの読み込みが「CSP blocked」( CSP = Content Security Policy )ということでエラーになっているのを確認。で、サーバからのレスポンスを確認すると、上記のメディア用のURLがContent-Security-Policyヘッダに含まれていないので、画像が表示されないのはこれが原因ということで確定しました。 いったん、nginxでサーバからのContent-Security-Policyヘッダを削除することで動作することを確認したものの、これはせっかく設定されたセキュリティをゆるめるものなので本質的な解決には結びつかない。というわけで、 Mastodon serverのGitHubリポジトリ を見てみると、どうも、 app/lib/content_security_policy.rb でCSPヘッダの設定をしているようす。 読んでみると、 ContentSecurityPolicy#media_hosts でCSPのmedia_hostsを設定していて、その中で呼ばれている ContentSecurityPolicy#cdn_host_value で、CDNやらオブジェクトストレージのホストを取りだしているのですが、ここにS3やらAzureやらはあるのに、SWIFTの記述がない。というか、そもそもこの ContentSecurityPolicy というクラス内にSWIFTに関する設定を読み込んでいるようすがないということで、ビンゴ! なら、S3などと同様に設定(環境変数)を読み込んであげれば大丈夫そうなので、修正してプルリクを上げてみようかと。 ...

Mastodonインスタンス procydon.net 誕生!

イメージ
分散型SNSの Mastodon ,これまでもいくつかのインスタンスでお世話になってきていて,主に 名古屋丼 を使っていたのですが,ふと思い立って自分でもインスタンスを立ち上げてみました。 なんか,星の名前で「〜don」っぽいのはないかなと考えていたところ,「Procyon(プロキオン・こいぬ座の一等星)」があったので,これだ!ということで, Procydon という名前にしました。 何はともあれ,サーバが必要。ということでいくつかVPSを覗いてみたところ, ConoHaのVPS がなんか大安売りをしていたので,3年間の長期契約。なにせ,36ヶ月契約すると,CPU 3core,RAM 2GBのVPSが1ヶ月あたり465円!になるというので。 今,別のサーバではさくらインターネットのVPSを使っているけど,違うのも使ってみたいというのもあったので,これで申し込み。なんか,クレジットカードがうまく決済できないとかちょっとトラブったけど,なんとか申込み完了。 いざ,サーバ構築。 Mastodonのドキュメント を読んだところ,Ubuntu 20.04もしくはDebian 11がおすすめっぽかったので,Debian 11をVPSにインストール。(普段から,Debian系を使っているので,このあたりは全く問題なし。) また,先人の記録を見ていると,投稿に添付されたメディアファイルでストレージがあふれるのが問題ということもわかったので,メディアはオブジェクトストレージに保存するのが良さそう。ちょうどいいことに,ConoHaは オブジェクトストレージ のサービスも提供しているので,これも申し込み。100GBあたり月額495円ということで,決して安くはないけどネットワーク転送料金込みと考えればまあありかな。 なお,ConoHaのVPSの追加ストレージはかなりお高い。(200GBで月額2750円は…) あとはドメインの取得。 ドメインは安易に取得するとのちのち管理(供養)に困るので,ちょっと悩んだけど,普段使っているのは大学時代のサークル用のドメインなので,別でprocydon.netを取得。これもConoHaでとって,DNSもConoHaのものを使うことに。TLDは.jpだとちょっとお高いので,.netで。 どうもConoHaのコントロールパネル,普段使っているさくらインターネット...