Mastodonのカスタム方法

標準

Mastodonのインスタンスを構築する方法は検索すれば山ほどヒットするので、その分資料が少ないインスタンスのカスタム方法について今日は説明します。インスタンスの構築する方法についての記事はや「Mastodon(マストドン)のインスタンスをCentOS7で立ててみる」、「CentOS7でmastodonを建てる」辺りを見れば完璧ではないかなと思います。

追記:以下のサイトもとても参考になります。

ちなみに私が運営するmastodonのインスタンスは haruhi-mstdn.club ですので、よろしくお願いします。

表示される言葉のカスタム

config/locales に入っている大量の言語ファイルをカスタムしていくことで新たな言語(語録集)や表示される文言を簡単に変えることが出来ます。

---
ja:
  about:
    about_mastodon: Mastodon は<em>自由でオープンソース</em>なソーシャルネットワークです。商用プラットフォームの代替となる<em>分散型</em>を採用し、あなたのやりとりが一つの会社によって独占されるのを防ぎます。信頼できるインスタンスを選択してください — どのインスタンスを選んでも、誰とでもやりとりすることができます。 だれでも自分の Mastodon インスタンスを作ることができ、シームレスに<em>ソーシャルネットワーク</em>に参加できます。
    about_this: ご利用前にお読みください
    apps: アプリ
    business_email: 'メールアドレス:'
    closed_registrations: 現在このインスタンスでの新規登録は受け付けていません。
    contact: 連絡先
    description_headline: "%{domain} とは?"
    domain_count_after: 個のインスタンス
    domain_count_before: 接続中
    features:
      api: アプリやその他サービスにAPIを公開
      blocks: 豊富なブロックやミュート機能
      characters: 1つの投稿は500文字まで利用可能
      chronology: 時系列順のタイムライン
      ethics: 広告もトラッキングもありません
      gifv: GIFVや短い動画にも対応
      privacy: 投稿ごとに公開範囲を細かく設定可能
      public: 公開タイムライン
    features_headline: Mastodon の特徴
    get_started: 参加する
    links: リンク
    other_instances: 他のインスタンス
    source_code: ソースコード
    status_count_after: トゥート
    status_count_before: トゥート数
    terms: プライバシーポリシー
    user_count_after: 人
    user_count_before: ユーザー数
(以下略)

画像のカスタム

うちのインスタンスはアニメ愛好家向けだからゾウさんなんか表示しないで自分の推しキャラを出したい!という方におすすめです。Mastodonで使われる画像は app/assets/images app/javascript/images に格納されています。ここに代わりの画像を置いてあげることで任意の画像を背景やトップページのゾウさんの代わりに表示させることが出来ます。最終的には以下のような感じになれば正解です。

CSSとJavaScriptのカスタム

これも同じように app/assets/stylesheets app/javascript/stylesapp/assets/javascripts app/javascript/mastodon に格納されている.scssファイルと.jsファイルをを編集することで変更することが出来ます。私の場合、背景が左揃いになっているのが気に食わなかったので、中央揃い(background-position:50% 50%;)にするなどのカスタムをしました。

最後に反映させよう

画像、CSS、JavaScriptファイルは動的なサイトにするため(?)に圧縮されています。この圧縮過程を飛ばしてしまうと反映はいつまで経ってもされないので忘れないようにします。
まずは実際にMastodonで使えるようにメディアファイル集assetsを作成します。コマンドラインに以下のように打ち込みます。

//assetsフォルダを全消去したい場合。全てをやり直したい人向け。
# docker-compose run --rm web rails assets:clobber

//assetsフォルダにある昔のものを消去したい場合。普段はこっちで十分かな。
# docker-compose run --rm web rails assets:clean

//上の2つのコマンドのうちどちらかを実行したら、メディアファイル群を事前コンパイルする。
# docker-compose run --rm web rails assets:precompile

//mastodon全体を再ビルド
# docker-compose build

//mastodonを再起動
# docker-compose restart

追記(2017/07/06):Mastodonをスタートアップスクリプトで立ち上げた場合はdockerを使わないのでこちらのご指摘の通りやってみてください。

これで色々とカスタムの幅が広がったので、自分だけのインスタンスを発展させていってください。それでは。

追記(2017/04/28):当ブログの記事を見て、「出来なかった!」「困った!」といった問題があればコメントをお願いします。

追記(2017/06/18):Mastodon 1.4.1からディレクトリ構造に色々と変更が加わった、という旨のご報告をいただきましたので最新の情報に更新しました。ご報告ありがとうございました。