Calckey v13.1.4.1 → Firefish 1.0.xにアップデートした時のメモ。
基本的には公式ドキュメントを見ればOKだけど、日本語で書き残しておく。
注意)個人用のメモのため間違っているところがあれば連絡先までご指摘ください。
また、実行前に公式ドキュメントを確認の上、実行方法に差分がないこと、DBのバックアップを行ったうえでアップデートを実施してください。
環境
OS: Ubuntu 22.04 LTS
CPU: Intel Xeon
RAM: 8GB
実行種別: systemd
ソースコードに改変を入れていない前提だけど改変しているならばマージ、コンフリクトの解決をする。
1. gitのリモートURLの更新
Calckeyのレポジトリに移動しておく。
originの部分は必要に応じて変更すること(リポジトリをフォークしていなければ特に気になくてOK)
git remote set-url origin https://git.joinfirefish.org/firefish/firefish.git
2. 最新のコードを取得
git pull -ff
コンフリクトが発生したら必要に応じてファイルを削除 or 変更を取り消す or 一時退避する
3. node.jsのアップデート
n というバージョン管理ツールを使うと楽。
スーパーユーザで以下のコマンドを実行しバージョン管理ツールをインストール。
npm install -g n
v20.4.0(latest)が推奨されているので
n 20.4.0
でインストールする。
続いて、使用するバージョンを選択するためにスーパーユーザで
n
を実行すると
o node/20.4.0
などと表示されるので、上下矢印キーで o
の位置を node/20.4.0
になるようにしてEnterキーを押下する。
その後、そのままスーパーユーザで
corepack enable
を実行。
4. Rustのインストール
Calckey (firefish)実行ユーザに切り替えて、Rustをインストールする。
基本的には公式ドキュメントの通り。
su - <Calckey/Firefish 実行ユーザ>
でユーザを切り替えて、
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
を実行。
5. 設定ファイルの更新
<レポジトリへのパス>/.config/default.yml
をFirefish向けの設定ファイルに書き換える。
https://git.joinfirefish.org/firefish/firefish/-/blob/main/.config/example.yml
を参考に書き換える。
基本的には
# 公開時のURL
url: https://example.com/
# 実行時のポート
port: 3000
# PostgreSQLの設定
db:
host: localhost
port: 5432
#ssl: false
# Database name
db: firefish
# DB認証情報
user: example-firefish-user
pass: example-firefish-pass
# Redisの設定
redis:
host: localhost
port: 6379
#tls:
# host: localhost
# rejectUnauthorized: false
#family: 0 # 0=Both, 4=IPv4, 6=IPv6
#pass: example-pass
#prefix: example-prefix
#db: 1
#user: default
# 予約済みユーザ名の指定
reservedUsernames: [
'root',
'admin',
'administrator',
'me',
'system'
]
を書いておけばOKですが、環境によって変更すること。
6. パッケージの更新 / ビルド
設定ファイルを変更後、
pnpm i
でライブラリなどの更新を行う。
その後、Firefishのビルドを行う。
NODE_ENV=production pnpm run buld
※スペックにもよるが、2~5分ほど時間がかかる。
7. DBのマイグレーション
.config/default.yml
で DragonflyDBをはじめとした cacheServer
を設定していない場合はキャッシュにアンテナの情報をコピーしないように ANTENNA_MIGRATION_SKIP=true
をつけてマイグレーションする。
NODE_ENV=production ANTENNA_MIGRATION_SKIP=true pnpm run migrate
DragonflyDBの構築、cacheServer
を設定した場合は
NODE_ENV=production pnpm run migrate
を実行する。
8. サービスの再起動
あとはスーパーユーザに戻りサービスの再起動をする。
systemctl restart <サービス名>
再起動後サイトにアクセスし、必要に応じて「設定」→「キャッシュのクリア」でアップデート完了。
謎なこと
開発機としてAMD CPU (Ryzen 5600X)マシンを持っているのですが、DragonflyDBをDockerで建てようとしたところExit 132で動作せず...
同じ方法でIntel CPUマシンで実行したところ普通に動いたので、AMD CPUだとサポートしていない?(まだ調べていないので謎)