## はじめに
kmyblueのアップデート手順をまとめた記事です。手順が多く忘れやすいため、自分の備忘録として書いています。
## 対象読者
Mastodon、とくに「kmyblue」を使っている人。Mastodonやkmyblueのアップデート方法がわからない人向けに書いています。
> [!warning]
> 私はMastodonフォークの「kmyblue」を使用しています。Mastodonでも大まかな流れが同じだと思いますが、一部違う可能性があります。
>
> また、下記の設定以外にも設定が必要になる可能性があります。必ず公式のリリースノートを読みましょう。
## 必要なもの・前提知識など
- ターミナル(黒い窓)でログインできる
- Linuxのコマンドの仕組み・動きがわかる
### 実行環境
- Ubuntu 24
- Mac mini m4
- Ghostty(ターミナルアプリ・任意)
## 自分が行う大まかな流れ
1. Mastodonを止める
2. DBをバックアップ
3. Node.jsのアップデート
4. aptでアップデート
5. Mastodonユーザーに変更
6. Git fetch & checkout
7. (必要に応じて)Rubyアップデート
8. bundle & yarnインストール
9. (必要に応じて)DBマイグレーション・プリコンパイル
10. Mastodon再起動
## 実際のメンテナンスの流れ
### 1. Mastodonを止める
メンテナンスを行う前に、Mastodonを止めます。
``` bash
$ sudo systemctl stop mastodon-web mastodon-streaming mastodon-sidekiq
```
### 2. DBをバックアップ
- [[Mastodon・MisskeyのデータベースをR2にバックアップする]]
私は上記記事の環境で「R2バックアップ」を行っています。そのため、バックアップスクリプトの名前や置き場所があなたの環境とは違う可能性があります。
``` bash
$ bash /usr/local/bin/backup.sh
```
### 3. Node.jsのアップデート
- [[【Mastodon・Misskey】Node.jsのアップデート方法をおさらいする]]
詳細は上記記事にて。
### 4. aptアップデート
- [[aptコマンドによるアップデートをおさらいする]]
aptで必要なパッケージをアップデートします。詳細は上記記事にて。
### 5. Mastodonユーザーに変更
Mastodonアップデートを行うために、Mastodonユーザーに変更します。
``` bash
$ sudo su - mastodon
# cd live
```
### 6. Git fetch & checkout
MastodonのアップデートをGitで確認します。
``` bash
# git fetch --tags
# git checkout <タグ名>
```
### 7. (必要に応じて)Rubyアップデート
- [[【Mastodon】Rubyのメンテナンス方法をおさらいする]]
Rubyアップデートが必要な場合、上記記事を参考にアップデートします。
### 8. bundle & yarn インストール
bundleとyarnをインストールします。
``` bash
# bundle install
# yarn install
```
### 9. (必要に応じて)DBマイグレーション・プリコンパイル
メジャーアップデートが来た時に必要になる作業。GitHubのリリースを読みながら行います。
``` bash
# RAILS_ENV=production bin/rails db:migrate
# RAILS_ENV=production bin/rails assets:precompile
```
大体この2つで大丈夫。プリコンパイルがダメだったら下記の通りに行います。
1. `clobber`を行う([kmyblueアップデートサイト](https://github.com/kmycode/mastodon/wiki/Updation)参照)
2. `mastodon-web`を止める
3. サーバー再起動
### 10. Mastodon再起動
成功したら、`root`ユーザーに戻ってMastodonを再起動します。
``` bash
$ sudo systemctl restart mastodon-web mastodon-streaming mastodon-sidekiq
```
Elasticsearchを入れている人は、一緒に再起動してもいいかも。
``` bash
$ sudo systemctl restart mastodon-web mastodon-streaming mastodon-sidekiq elasticsearch
```
## まとめ
1. Mastodonを止めて、DBをバックアップ
2. Node.jsやaptのアップデート
3. Mastodonユーザーに変更して新しいバージョンにcheckout
4. 必要に応じてRubyなどアップデート
5. (必要に応じて)DBマイグレーション・プリコンパイル
6. Mastodon再起動
やることが多くて戸惑いますが、慣れたら意外といけます。英語が出ても、落ち着いて翻訳しましょうね。
## リンク
- [[aptコマンドによるアップデートをおさらいする]]
- [[Mastodon・MisskeyのデータベースをR2にバックアップする]]
- [[【Mastodon】Rubyのメンテナンス方法をおさらいする]]
- [Releases · kmycode/mastodon](https://github.com/kmycode/mastodon/releases)
- [Updation · kmycode/mastodon Wiki · GitHub](https://github.com/kmycode/mastodon/wiki/Updation)
- [Releases · mastodon/mastodon](https://github.com/mastodon/mastodon/releases)