firefish/docs/migrate.md

6.6 KiB
Raw Permalink Blame History

このフォークから本家版に移行する

移行には時間が掛かるので、必ずまとまった時間が取れるときに行ってください。

サーバーに Firefish を直接インストールしている場合

  1. サーバーを停止する

    sudo systemctl stop firefish
    
  2. サーバーのバックアップを取る

  3. Firefish がインストールされているディレクトリ (e.g., /home/firefish/firefish) の親ディレクトリ (e.g., /home/firefish) に移動する

    cd /home/firefish
    
  4. Firefish がインストールされているディレクトリ (e.g., ./firefish) の名前を変える

    mv firefish firefish.old
    
  5. 元々 Firefish がインストールされていたディレクトリ (e.g., ./firefish) と同じ名前でこのリポジトリをクローンする

    git clone --branch=main https://code.naskya.net/naskya/firefish firefish
    
  6. 必要なファイルを元のディレクトリからコピーする

    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 からその設定を削除またはコメントアウトする

    先頭に # をつけると設定をコメントアウトできます。

    #sonic:
    #  host: localhost
    #  port: 1491
    #  auth: SecretPassword
    #  collection: notes
    #  bucket: default
    

    全文検索エンジンは停止またはアンインストールしてしまってよいです。本家の Firefish に戻るつもりがあるなら停止を、そうでなければアンインストールをおすすめします。

    停止コマンドの例

    sudo systemctl disable --now sonic
    
  8. PostgreSQL のバージョンを確認する

    psql --version
    
  9. PGroonga をインストールする

    コマンドの例(詳しくはこの投稿を参考にしてください)

    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

    db:
      host: localhost
      port: 5432
      db: firefish_db  # これ
    
  11. 以下のコマンドを実行してデータベースに変更を加える(firefish_db の部分は自分のデータベース名に変えて実行)

    sudo -u postgres psql --dbname=firefish_db --file=neko/install.sql
    
  12. 新しい Firefish のディレクトリに入ってビルドする

    cd firefish
    ./update.sh --install --native
    

    update.sh の初回の実行には非常に時間が掛かります(サーバーの規模にもよりますが、数十分から 1 時間は掛かると思ってください)。処理がフリーズしているように見えることもありますが、絶対に途中で強制終了しないでください。

  13. サーバーを起動して動作を確認する

    sudo systemctl start firefish
    
  14. 元々 Firefish がインストールされていたディレクトリを削除する

    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) に移動する

    cd /home/firefish
    
  3. Firefish がインストールされているディレクトリ (e.g., ./firefish) の名前を変える

    mv firefish firefish.old
    
  4. 元々 Firefish がインストールされていたディレクトリ (e.g., ./firefish) と同じ名前でこのリポジトリをクローンする

    git clone --branch=main https://code.naskya.net/naskya/firefish firefish
    
  5. 必要なファイルを元のディレクトリからコピーする

    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 の設定例を複製する

    cp firefish/docker-compose.example.yml firefish/docker-compose.yml
    

    docker-compose.yml にカスタムが必要な場合には、各自で編集してください。

  7. 以下のコマンドを実行してデータベースに変更を加える

    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. コンテナイメージをダウンロードまたはビルドする

    ./update.sh --install --podman
    
  9. サーバーを起動して動作を確認する

    podman-compose up
    

    初回の起動には非常に時間が掛かります(サーバーの規模にもよりますが、数十分から 1 時間は掛かると思ってください)。初回は -d (--detach) のオプション無しで起動してログを確認することをおすすめします。処理がフリーズしているように見えることもありますが、絶対に途中で強制終了しないでください。

  10. 元々 Firefish がインストールされていたディレクトリを削除する

    cd ..
    rm -rf firefish.old