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