# このフォークから本家版に移行する ## サーバーに 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 printf 'BEGIN;\n%s\nROLLBACK;' "$(cat neko/revert.sql)" | sudo -u postgres psql --echo-all --set='ON_ERROR_STOP=1' --dbname=firefish_db ``` 最後の行が `ROLLBACK` で終わっていれば問題ありません。そうでない場合には[私にコマンドの実行ログを送ってください](https://code.naskya.net/naskya/firefish/source-by/main/docs/trouble_shooting.md#私にコマンドの実行ログを送る)。 7. このフォークで加えられたデータベースへの変更を実際に取り消す(`firefish_db` の部分は自分のデータベース名に変更する) ```bash sudo -u postgres psql --file=neko/revert.sql --dbname=firefish_db ``` 8. 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 ``` 9. Firefish がインストールされているディレクトリの親ディレクトリ (e.g., `/home/firefish`) に行く ```bash cd .. ``` 10. Firefish がインストールされているディレクトリ (e.g., `./firefish`) の名前を変える ```bash mv firefish firefish.old ``` 11. Firefish がインストールされているディレクトリと同じ名前で本家版の Firefish を clone する ```bash git clone https://git.joinfirefish.org/firefish/firefish.git firefish ``` 12. 必要なファイルをコピーする ```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 ``` 13. 新しい Firefish のディレクトリ (e.g., `./firefish`) に入り、`develop` ブランチに行く(実際には既に `develop` にいるはず) ```bash cd firefish git checkout develop ``` 14. Firefish をビルドする ```bash corepack prepare pnpm@latest --activate pnpm install NODE_ENV=production pnpm run build pnpm run migrate ``` 15. サーバーを起動して動作を確認する ```bash sudo systemctl start firefish ``` 16. 元々 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` と `firefish_db` の部分は自分のユーザー名とデータベース名に変更する) ```bash 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)")" ``` 最後の行が `ROLLBACK` で終わっていれば問題ありません。そうでない場合には[私にコマンドの実行ログを送ってください](https://code.naskya.net/naskya/firefish/source-by/main/docs/trouble_shooting.md#私にコマンドの実行ログを送る)。 7. このフォークで加えられたデータベースへの変更を実際に取り消す(`mk1` の部分は自分のデータベース名に変更する) ```bash podman-compose exec db psql --user=firefish --dbname=firefish_db --command="$(cat neko/revert.sql)" ``` 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`) に入る ```bash cd firefish ``` 13. サーバーを起動して動作を確認する ```bash podman-compose up --detach ``` 14. 元々 Firefish がインストールされていたディレクトリを削除する ```bash cd .. rm -rf firefish.old ```