参考URL

下記ページに書いてあることを実行しているだけ

docs/downgrade.md · downgrade · firefish / firefish · GitLab

iceshrimp/docs/migrate.md at dev

FirefishからIceshrimpに移行する - Qiita

移行手順

Firefishのダウングレード

# user admin
sudo systemctl stop your.firefish.service

sudo su --login your_firefish_user

# user firefish
cd your_firefish_dir/

wget -O /tmp/downgrade.sql <https://firefish.dev/firefish/firefish/-/snippets/13/raw/main/downgrade.sql>
psql --file=/tmp/downgrade.sql --user=your_firefish_db_user --dbname=your_firefish_db_name --host=127.0.0.1

pnpm run clean-all

git checkout -- packages
git switch --detach v20240206

rustup override set 1.79

pnpm install --frozen-lockfile
NODE_ENV='production' NODE_OPTIONS='--max_old_space_size=3072' pnpm run rebuild

# ここで結構待つ

exit

# user admin
sudo --user=postgres psql --command='DROP EXTENSION pgroonga CASCADE' --dbname=your_firefish_db_name

sudo systemctl restart your.firefish.service

# ここでサーバーのバージョンが `v20240206` になっていることを確認する

sudo systemctl stop your.firefish.service

Iceshrimpへの移行

sudo su --login your_firefish_user

# user firefish
cd your_firefish_user/

curl -s <https://iceshrimp.dev/iceshrimp/iceshrimp/raw/branch/dev/docs/firefish-redis.patch> | git apply --ignore-whitespace

# 以下なんか出ていましたがスルーしています (平気かなあポイント1)
error: patch failed: packages/backend/built/services/chart/core.js:3
error: packages/backend/built/services/chart/core.js: patch does not apply
error: patch failed: packages/backend/built/db/postgre.js:71
error: packages/backend/built/db/postgre.js: patch does not apply

cd packages/backend

# `FirefishRepo1689957674000` が出るまで何回か実行する
#   `query: COMMIT` が出てしばらく入力が帰って来ない場合は ctrl+C で抜ける
#   (平気かなあポイント2)(`COMMIT` してるから平気だと信じる)
pnpm run revertmigration:typeorm

# `IncreaseHostCharLimit1692374635734` でエラーになった場合はSQL実行
#   3回目くらいの実行でエラーになった気がする
psql --user=your_firefish_db_user --dbname=your_firefish_db_name --host=127.0.0.1
DELETE FROM "migrations" WHERE "name" = 'IncreaseHostCharLimit1692374635734';
exit
# user firefish
# `FirefishRepo1689957674000` が出るまで何回か実行する
#   上記SQL発行後は1回実行した気がする
pnpm run revertmigration:typeorm

# `m20230806_170616_fix_antenna_stream_ids` が出るまで何回か実行する
#   3回目くらい実行した気がする
pnpm run revertmigration:cargo

exit

# user admin
sudo apt install git-lfs

sudo su --login calckey

# user firefish
cd your_firefish_dir/
git remote set-url origin <https://iceshrimp.dev/iceshrimp/iceshrimp.git>
git lfs install
git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"
git fetch --all
git checkout origin/dev
git lfs pull
yarn && yarn build && yarn migrate

# ここでかなり待つ

rm -rf packages/backend/native-utils packages/megalodon

NODE_ENV=production yarn run start

# サーバーがIceshrimpとして動作していることを確認する

exit

自動起動設定

# user admin
sudo cp /home/your_firefish_dir/your_firefish_dir/docs/examples/iceshrimp.service /etc/systemd/system/
sudo vi /etc/systemd/system/iceshrimp.service

iceshrimp.service

[Unit]
Description=Iceshrimp daemon

[Service]
Type=simple
User=your_firefish_user
ExecStart=/usr/bin/yarn start
WorkingDirectory=/home/your_firefish_dir/your_firefish_dir
Environment="NODE_ENV=production"
TimeoutSec=60
SyslogIdentifier=iceshrimp
Restart=always

[Install]
WantedBy=multi-user.target
# user admin
$ sudo systemctl daemon-reload

# 自動起動設定
$ sudo systemctl enable --now iceshrimp
$ sudo systemctl disable your.firefish.service

# 自動起動設定の確認
$ systemctl is-enabled iceshrimp
$ systemctl is-enabled your.firefish.service