2024-01-14 19:48:41 +09:00
|
|
|
|
# このフォークから本家版に移行する
|
|
|
|
|
|
2024-01-20 19:29:30 +09:00
|
|
|
|
移行には時間が掛かるので、必ずまとまった時間が取れるときに行ってください。
|
|
|
|
|
|
2024-01-14 19:48:41 +09:00
|
|
|
|
## サーバーに 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
|
|
|
|
|
```
|
|
|
|
|
|
2024-01-20 19:29:30 +09:00
|
|
|
|
これには非常に時間が掛かります(サーバーの規模によりますが、数十分から 1 時間の時間が掛かることが予想されます)。
|
|
|
|
|
|
2024-01-14 19:48:41 +09:00
|
|
|
|
最後の行が `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
|
|
|
|
|
```
|
|
|
|
|
|
2024-01-20 19:29:30 +09:00
|
|
|
|
これにも非常に時間が掛かります(サーバーの規模によりますが、数十分から 1 時間の時間が掛かることが予想されます)が、**絶対に処理を強制終了しないでください**。
|
|
|
|
|
|
2024-01-14 19:48:41 +09:00
|
|
|
|
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)")"
|
|
|
|
|
```
|
|
|
|
|
|
2024-01-20 19:29:30 +09:00
|
|
|
|
これには非常に時間が掛かります(サーバーの規模によりますが、数十分から 1 時間の時間が掛かることが予想されます)。
|
|
|
|
|
|
2024-01-14 19:48:41 +09:00
|
|
|
|
最後の行が `ROLLBACK` で終わっていれば問題ありません。そうでない場合には[私にコマンドの実行ログを送ってください](https://code.naskya.net/naskya/firefish/source-by/main/docs/trouble_shooting.md#私にコマンドの実行ログを送る)。
|
|
|
|
|
|
2024-01-20 19:29:30 +09:00
|
|
|
|
7. このフォークで加えられたデータベースへの変更を実際に取り消す(`firefish_db` の部分は自分のデータベース名に変更する)
|
2024-01-14 19:48:41 +09:00
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
podman-compose exec db psql --user=firefish --dbname=firefish_db --command="$(cat neko/revert.sql)"
|
|
|
|
|
```
|
|
|
|
|
|
2024-01-20 19:29:30 +09:00
|
|
|
|
これにも非常に時間が掛かります(サーバーの規模によりますが、数十分から 1 時間の時間が掛かることが予想されます)が、**絶対に処理を強制終了しないでください**。
|
|
|
|
|
|
2024-01-14 19:48:41 +09:00
|
|
|
|
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
|
|
|
|
|
```
|
|
|
|
|
|
2024-01-18 23:39:53 +09:00
|
|
|
|
`docker-compose.yml` にカスタムが必要な場合には、各自で編集してください。
|
|
|
|
|
|
2024-01-14 19:48:41 +09:00
|
|
|
|
14. 元々 Firefish がインストールされていたディレクトリを削除する
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
cd ..
|
|
|
|
|
rm -rf firefish.old
|
|
|
|
|
```
|