お久しぶりです
個人的なMisskeyのアップデート関連の備忘録です
Misskey本体のアップデート
正直ドキュメントあるんでこれを読みながらすれば問題無いとは思いますが
https://misskey-hub.net/docs/install/manual.html#misskey%E3%81%AE%E3%82%A2%E3%83%83%E3%83%95%E3%82%9A%E3%83%86%E3%82%99%E3%83%BC%E3%83%88%E6%96%B9%E6%B3%95
動かしている上で普段のアップデートではこの作業をすれば良さそうです。過信はしないでね
git pull
NODE_ENV=production pnpm install --frozen-lockfile
NODE_ENV=production pnpm run build
pnpm run migrate
sudo systemctl restart <systemdで登録しているmisskeyのサービス名>
Nodeのバージョンアップ
リリースノートにNode.jsのバージョンアップが必要の場合、使っているNodeのバージョン管理ツールによって異なりますが、nを使っている場合は基本安定版を入れるコマンドだけで大丈夫です。
n stable
pnpmのバージョンアップ
13.12.x → 13.13.xにアップデートしたときに詰まったので。
npm install -g pnpm
NODE_ENV=production pnpm install --frozen-lockfileでエラーになったので、pnpm起因というは結構早く気づけたんですが、情報があまりなく苦戦しました…
cronを使って証明書を自動で更新
sudo su -でrootユーザーになった後、crontab -eでcrontabファイルを編集します
そして以下のように書き換えます
35 4 * * * systemctl stop nginx && certbot renew; systemctl restart nginx
45 4 * * * reboot
意味合いとしては、毎日4:35にnginxをストップし、証明書の再発行します
証明書の再発行が完了したら、nginxを再起動します
また起動し続けるとエラーが起きてしまう時期があったため、毎日4:45にサーバー自体の再起動をしています
証明書の更新(非推奨)
Let's Encrypt を使っている場合、定期的に証明書を更新する必要があります。
cronなどで設定するのがおそらく楽なんでしょうが、めんどくさいので私の鯖では手動で更新をかけています。
正直オススメはしません。Cloudflareやcronなどが使えるのであればそっちでやったほうが早いです
現在動かしているサービスを止める
sudo systemctl stop <systemdで登録しているmisskeyのサービス名>
sudo systemctl stop nginx
証明書を更新する
sudo certbot certonly -d <サーバーのドメイン> -m <連絡を飛ばしてほしいメールアドレス> --standalone --dry-run
--問題無ければ以下のコマンドを実行--
sudo certbot certonly -d <サーバーのドメイン> -m <連絡を飛ばしてほしいメールアドレス> --standalone
本当はcloudflare使いたいけど、linodeの相性が悪いので…
cloudflareがダウンした場合でも使えるのは魅力ですが
履歴
2023/5/11 初版公開
2023/6/17 pnpmバージョンアップについて追記
2025/5/3 証明書の更新を自動化していたことを失念していたため、備忘として記載