7.6 KiB
このフォークから本家版に移行する
移行には時間が掛かるので、必ずまとまった時間が取れるときに行ってください。
サーバーに Firefish を直接インストールしている場合
-
サーバーのバックアップを取る
-
サーバーを停止する
sudo systemctl stop firefish
-
Firefish がインストールされているディレクトリ (e.g.,
/home/firefish/firefish
) へ移動するcd /home/firefish/firefish
-
最新版にアップデートする
./update.sh
-
.config/default.yml
に書かれているデータベースの名前を確認する(以下の例ではfirefish_db
)db: host: localhost port: 5432 db: firefish_db # これ
-
次のコマンドでデータベースをいじる前に、そのコマンドが正常に動作するか確認する(
firefish_db
の部分は自分のデータベース名に変更する)printf 'BEGIN;\n%s\nROLLBACK;' "$(cat neko/revert.sql)" | sudo -u postgres psql --echo-all --set='ON_ERROR_STOP=1' --dbname=firefish_db
これには非常に時間が掛かります(サーバーの規模によりますが、数十分から 1 時間の時間が掛かることが予想されます)。
最後の行が
ROLLBACK
で終わっていれば問題ありません。そうでない場合には私にコマンドの実行ログを送ってください。 -
このフォークで加えられたデータベースへの変更を実際に取り消す(
firefish_db
の部分は自分のデータベース名に変更する)sudo -u postgres psql --file=neko/revert.sql --dbname=firefish_db
これにも非常に時間が掛かります(サーバーの規模によりますが、数十分から 1 時間の時間が掛かることが予想されます)が、絶対に処理を強制終了しないでください。
-
PGroonga をアンインストールする
コマンドの例
sudo apt purge --remove postgresql-16-pgdg-pgroonga sudo add-apt-repository --remove ppa:groonga/ppa sudo apt-key del ACCC4CF8 sudo apt update
-
Firefish がインストールされているディレクトリの親ディレクトリ (e.g.,
/home/firefish
) に行くcd ..
-
Firefish がインストールされているディレクトリ (e.g.,
./firefish
) の名前を変えるmv firefish firefish.old
-
Firefish がインストールされているディレクトリと同じ名前で本家版の Firefish を clone する
git clone https://git.joinfirefish.org/firefish/firefish.git firefish
-
必要なファイルをコピーする
rm -rf firefish/files firefish/custom firefish/.config cp -r firefish.old/files firefish cp -r firefish.old/custom firefish cp -r firefish.old/.config firefish
-
新しい Firefish のディレクトリ (e.g.,
./firefish
) に入り、develop
ブランチに行く(実際には既にdevelop
にいるはず)cd firefish git checkout develop
-
Firefish をビルドする
corepack prepare pnpm@latest --activate pnpm install NODE_ENV=production pnpm run build pnpm run migrate
-
サーバーを起動して動作を確認する
sudo systemctl start firefish
-
元々 Firefish がインストールされていたディレクトリを削除する
cd .. rm -rf firefish.old
コンテナで Firefish を動かしている場合
Docker を使う場合には以下の podman
, podman-compose
, --podman
をそれぞれ docker
, docker-compose
, --docker
に読み替えてください。
-
サーバーのバックアップを取る
-
Firefish がインストールされているディレクトリ (e.g.,
/home/firefish/firefish
) へ移動するcd /home/firefish/firefish
-
最新版にアップデートする
./update.sh --podman
-
一度サーバーを再起動し、自分のサーバーが起動したことを Web から確認したら再度停止してデータベースのコンテナのみを起動する
podman-compose down podman-compose up --detach # 少し待って、サーバーが起動したことを確認する podman-compose down podman-compose up db --detach
-
.config/docker.env
に書かれているユーザー名とデータベース名を確認する(以下の例ではfirefish_db
)# db settings POSTGRES_PASSWORD=very_strong_password POSTGRES_USER=firefish # これがユーザー名 POSTGRES_DB=firefish_db # これがデータベース名
-
次のコマンドでデータベースをいじる前に、そのコマンドが正常に動作するか確認する(
firefish
とfirefish_db
の部分は自分のユーザー名とデータベース名に変更する)podman-compose exec db psql --user=firefish --dbname=firefish_db --echo-all --set='ON_ERROR_STOP=1' --command="$(printf 'BEGIN;\n%s\nROLLBACK;' "$(cat neko/revert.sql)")"
これには非常に時間が掛かります(サーバーの規模によりますが、数十分から 1 時間の時間が掛かることが予想されます)。
最後の行が
ROLLBACK
で終わっていれば問題ありません。そうでない場合には私にコマンドの実行ログを送ってください。 -
このフォークで加えられたデータベースへの変更を実際に取り消す(
firefish_db
の部分は自分のデータベース名に変更する)podman-compose exec db psql --user=firefish --dbname=firefish_db --command="$(cat neko/revert.sql)"
これにも非常に時間が掛かります(サーバーの規模によりますが、数十分から 1 時間の時間が掛かることが予想されます)が、絶対に処理を強制終了しないでください。
-
Firefish がインストールされているディレクトリの親ディレクトリ (e.g.,
/home/firefish
) に行くcd ..
-
Firefish がインストールされているディレクトリ (e.g.,
./firefish
) の名前を変えるmv firefish firefish.old
-
Firefish がインストールされているディレクトリと同じ名前で本家版の Firefish を clone する
git clone https://git.joinfirefish.org/firefish/firefish.git firefish
-
必要なファイルをコピーする
rm -rf firefish/files firefish/custom firefish/.config cp -r firefish.old/files firefish cp -r firefish.old/custom firefish cp -r firefish.old/.config firefish
-
新しい Firefish のディレクトリ (e.g.,
./firefish
) に入るcd firefish
-
サーバーを起動して動作を確認する
podman-compose up --detach
docker-compose.yml
にカスタムが必要な場合には、各自で編集してください。 -
元々 Firefish がインストールされていたディレクトリを削除する
cd .. rm -rf firefish.old