プロジェクト

全般

プロフィール

バージョンアップ手順

一応サービスを上げたままで実施可能ですが、リロード時に30秒位くらいサービスダウンするのでサービスは落として実施します。
参考: misskey-hub

手順

  1. サービスを停止します
    systemctl stop misskey
    
  2. misskeyユーザにスイッチします(nologinのためシェル指定)
    su -s /bin/bash - misskey
    
  3. インストール先に移動します
    cd misskey
    pwd
    
    /home/misskey/misskey
    
  4. 現在のブランチを確認する
    git branch
    ------------------------------
      develop (ベータ版も入る)
    * master  (stable版メイン)
    
  5. gitのローカルリポジトリを更新します
    git fetch
    
    1. stable/developの切り替えでブランチの変更を行う必要がある場合のみ
      git checkout master
      ------------------------------
      Switched to branch 'master'
      Your branch is behind 'origin/master' by 1106 commits, and can be fast-forwarded.
        (use "git pull" to update your local branch)
      
  6. pullしてファイルを更新します
    git pull
    
    1. なんからかの手動パッチを行っている場合、下記のようなメッセージが表示されるので「git stash」で待避する。
      pullが成功後、待避したファイルを戻すかパッチを当て直すかはpullされたファイルが更新されたかによる。
      (基本的にはパッチの内容が軽微であれば、破棄してパッチし直す方が安全)
      # 更新取得(パッチとコンフリクトする内容)
      $ git pull
      Updating 994fc062cf..7420c10a58
      error: Your local changes to the following files would be overwritten by merge:
          package.json
      Please commit your changes or stash them before you merge.
      Aborting
      
      # 待避
      $ git stash
      Saved working directory and index state WIP on master: 994fc062cf Merge pull request #16840 from misskey-dev/develop
      
      # 更新取得
      $ git pull
      
      ----------------------------------------
      # 待避した内容を戻す
      $ git stash pop
      
      # または破棄する
      $ git stash drop
      
  7. モジュールを更新します
    git submodule update --init
    
  8. nodeモジュールを更新します
    NODE_ENV=production pnpm install --frozen-lockfile
    
    1. ここで次のようなエラーがある場合、ここでgcc-toolsetのbashセッションを起動する。
      「gcc-toolset」は事前にyumで導入しておくこと。ここでは仮にバージョン13としておく。
      ※error: unrecognized command line option ‘-std=gnu++20’
       gccが古すぎて「-std=gnu++20」というオプションが指定できない。
      
      scl enable gcc-toolset-13 bash
      
  9. ビルドします
    NODE_ENV=production pnpm run build
    ------------------------------
    ExperimentalWarningは無視してよい
    
  10. データベース等のマイグレートを実施します
    pnpm run migrate
    
  11. misskeyユーザから戻ります
    exit
    
    1. 「gcc-toolset」を使っている場合はもう一回「exit」が必要
  12. サービスを起動します
    起動後に実際にアクセス可能になるまで30秒くらいかかります
    systemctl start misskey