firefish/docs/migrate.md

189 lines
6.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# このフォークから本家版に移行する
移行には時間が掛かるので、必ずまとまった時間が取れるときに行ってください。
## サーバーに Firefish を直接インストールしている場合
1. サーバーを停止する
```bash
sudo systemctl stop firefish
```
2. サーバーのバックアップを取る
3. Firefish がインストールされているディレクトリ (e.g., `/home/firefish/firefish`) の親ディレクトリ (e.g., `/home/firefish`) に移動する
```bash
cd /home/firefish
```
4. Firefish がインストールされているディレクトリ (e.g., `./firefish`) の名前を変える
```bash
mv firefish firefish.old
```
5. 元々 Firefish がインストールされていたディレクトリ (e.g., `./firefish`) と同じ名前でこのリポジトリをクローンする
```bash
git clone --branch=main https://code.naskya.net/naskya/firefish firefish
```
6. 必要なファイルを元のディレクトリからコピーする
```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
```
7. 全文検索エンジンMeilisearch, Sonic, Elasticsearch のいずれか)を使用している場合には、`.config/default.yml` からその設定を削除またはコメントアウトする
先頭に `#` をつけると設定をコメントアウトできます。
```yaml
#sonic:
# host: localhost
# port: 1491
# auth: SecretPassword
# collection: notes
# bucket: default
```
全文検索エンジンは停止またはアンインストールしてしまってよいです。本家の Firefish に戻るつもりがあるなら停止を、そうでなければアンインストールをおすすめします。
停止コマンドの例
```bash
sudo systemctl disable --now sonic
```
8. PostgreSQL のバージョンを確認する
```bash
psql --version
```
9. PGroonga をインストールする
コマンドの例(詳しくは[この投稿](https://post.naskya.net/notes/9ldi29amfanomef5)を参考にしてください)
```bash
sudo apt install -y software-properties-common
sudo add-apt-repository -y universe
sudo add-apt-repository -y ppa:groonga/ppa
sudo apt install -y wget lsb-release
wget https://packages.groonga.org/ubuntu/groonga-apt-source-latest-$(lsb_release --codename --short).deb
sudo apt install -y -V ./groonga-apt-source-latest-$(lsb_release --codename --short).deb
echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release --codename --short)-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt update
sudo apt install -y -V postgresql-16-pgdg-pgroonga
```
10. `.config/default.yml` に書かれているデータベースの名前を確認する(以下の例では `firefish_db`
```yaml
db:
host: localhost
port: 5432
db: firefish_db # これ
```
11. 以下のコマンドを実行してデータベースに変更を加える(`firefish_db` の部分は自分のデータベース名に変えて実行)
```bash
sudo -u postgres psql --dbname=firefish_db --file=neko/install.sql
```
12. 新しい Firefish のディレクトリに入ってビルドする
```bash
cd firefish
./update.sh --install --native
```
`update.sh` の初回の実行には非常に時間が掛かります(サーバーの規模にもよりますが、数十分から 1 時間は掛かると思ってください)。処理がフリーズしているように見えることもありますが、**絶対に途中で強制終了しないでください。**
13. サーバーを起動して動作を確認する
```bash
sudo systemctl start firefish
```
14. 元々 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`) の親ディレクトリ (e.g., `/home/firefish`) に移動する
```bash
cd /home/firefish
```
3. Firefish がインストールされているディレクトリ (e.g., `./firefish`) の名前を変える
```bash
mv firefish firefish.old
```
4. 元々 Firefish がインストールされていたディレクトリ (e.g., `./firefish`) と同じ名前でこのリポジトリをクローンする
```bash
git clone --branch=main https://code.naskya.net/naskya/firefish firefish
```
5. 必要なファイルを元のディレクトリからコピーする
```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
```
6. `docker-compose.yml` の設定例を複製する
```bash
cp firefish/docker-compose.example.yml firefish/docker-compose.yml
```
`docker-compose.yml` にカスタムが必要な場合には、各自で編集してください。
7. 以下のコマンドを実行してデータベースに変更を加える
```bash
podman-compose up db --detach
podman-compose exec db sh -c 'psql --user="${POSTGRES_USER}" --dbname="${POSTGRES_DB}" --file=/docker-entrypoint-initdb.d/install.sql'
```
8. コンテナイメージをダウンロードまたはビルドする
```bash
./update.sh --install --podman
```
9. サーバーを起動して動作を確認する
```bash
podman-compose up
```
初回の起動には非常に時間が掛かります(サーバーの規模にもよりますが、数十分から 1 時間は掛かると思ってください)。初回は `-d (--detach)` のオプション無しで起動してログを確認することをおすすめします。**処理がフリーズしているように見えることもありますが、絶対に途中で強制終了しないでください。**
10. 元々 Firefish がインストールされていたディレクトリを削除する
```bash
cd ..
rm -rf firefish.old
```