Mastodonの維持管理について

あるさば交換日記 Advent Calendar 2018の1日目の記事です。

さて、本日から12月に入りました。新しいことにたくさん挑戦できたので充実した年になったと思います。

中でもあるさばの運営を始めたことは自分の中で大きな出来事で(何といっても生活スタイルが変わるレベルですから)、現在進行形で多くの事を学ばせてもらっています。

以前【素人向け】インスタンスの建て方【v2.5.0】という記事を書きましたが、4ヶ月ほど運営を続けてみて捕捉した方がいいと思ったことを以下に述べておきます。

目次

アップデート

Mastodonは日々開発が盛んに行われており、ほぼ毎日のようにmasterが更新されています。

以前はゼロからはじめるMastodon インスタンス運用編の記事にあるように、新しいバージョンが公開されたらgit checkoutして...というやり方でバージョンを上げていましたが、このやり方だと独自に改造した部分の変更を再度反映しなくてはならず大変面倒に感じていました。

今ではgit fetchしてgit merge originで最新のcommitに追従するようにしています。このようにするだけで新たにcheckoutしたbranchで独自の変更を再度反映する必要がなく、ずっと同じbranchで作業ができるようになるのでアップデートも楽でいいです。Gitの恩恵をしみじみと感じます。

一応アップデートする際のコマンドを以下に書いておきます。現状このやり方で問題なくアップデートできますが、もしこうした方がいいというやり方があったら教えてください。

git fetch
git merge origin
//コンフリクトが発生した場合はここで解消
bundle install
RAILS_ENV=production bundle exec rails db:migrate
RAILS_ENV=production bundle exec rails assets:precompile //少し時間がかかる
//終わったらrootに戻って再起動

最新のmasterに追従するメリットは、いち早く新しい機能を利用できる、最新のセキュリティを保つ、といった点にあります。もし気に入らない変更が来ても自分で直してしまえば誰も文句は言いません(ユーザーは言うかもしれない...)。自由に開発していきましょう。

バックアップ

現在あるさばでは毎日4時頃にディスクのバックアップを取っています。バックアップの方法は様々だと思いますが、僕の鯖はさくらのクラウドで動いているので、さくらの自動バックアップサービスを利用しています。設定方法などは以下を参考にしてください。

自動バックアップ | さくらのクラウド ドキュメント

言うまでもなくバックアップは大切です。以前鯖をいじってたときにgit resetしてもstreamingが戻らなくなる事態が発生しました。幸いアーカイブからディスクを復元することで対応できましたが、本当に何が起こるか分からない(自分以外が原因で起こるかもしれませんし)ので早めに設定しておくことをお勧めします。

開発環境

人によっては必要がないことかもしれませんが、鯖に独自機能を入れていくのであればテスト環境を構築しておいて損はないです。仮想環境やらなんやらで構築してしまうのもいいですが、僕の場合は本番の環境とできるだけ条件を合わせたかった(というのは建前で、楽だから)ので丸々別の鯖をさくらのクラウドで建てました。お金の力ってすごいね。

ちなみに開発用のリポジトリこちらです(絶賛開発者募集中!)。

暇ができたときに趣味程度で開発できたらいいなぁと思ってます。

終わりに

タイトルに'維持'管理と書きましたが維持する上で最も大切なのはお金です。基本的にそれさえあればサーバーは勝手に動いてくれます。色々なスタイルの鯖缶さんがいらっしゃいますが、僕の場合は完全に趣味にお金をかける感覚でやっているので「楽しければ何でもいいや」と思っています。なのでつまらなくなったら止めてしまうと思いますが、今のところ愉快な人たちに使ってもらっているのでそう感じたことはないです。

以上があるさば交換日記 Advent Calendar 2018の開会宣言で、明日からはその愉快な人たちが記事を書いていきます。明日の記事はHeislandmineが担当です。

最後まで読んでいただきありがとうございました。