1
0
Fork 1
mirror of https://example.com synced 2024-11-23 09:36:38 +09:00
firefish/docs/migrate.md

175 lines
5.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. 以下のコマンドを実行して PGroonga の拡張機能を有効にする(`firefish_db` の部分は自分のデータベース名に変えて実行)
```bash
sudo -u postgres psql --command="CREATE EXTENSION pgroonga;" --dbname=firefish_db
```
12. 新しい Firefish のディレクトリに入ってビルドする
```bash
cd firefish
./update.sh --install --native
```
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. 以下のコマンドを実行して PGroonga を有効にする(`firefish` と `firefish_db` はそれぞれ `.config/docker.env``.config/default.yml` に書いた PostgreSQL のユーザー名とデータベース名に置き換える)
```bash
podman-compose up db --detach
podman-compose exec db psql --command='CREATE EXTENSION pgroonga;' --user=firefish --dbname=firefish_db
```
7. コンテナイメージをダウンロードまたはビルドする
```bash
./update.sh --install --podman
```
8. サーバーを起動して動作を確認する
```bash
podman-compose up --detach
```
9. 元々 Firefish がインストールされていたディレクトリを削除する
```bash
cd ..
rm -rf firefish.old
```