From b1a66c89a69e7243d03f751231dae7e91b1f235d Mon Sep 17 00:00:00 2001 From: naskya Date: Sun, 5 Nov 2023 21:01:39 +0900 Subject: [PATCH] docs: optimize for Vervis --- README.md | 338 +++++++++++++++++++++++++++++++----------------------- 1 file changed, 197 insertions(+), 141 deletions(-) diff --git a/README.md b/README.md index e621a0ac..b8f03ad1 100644 --- a/README.md +++ b/README.md @@ -8,10 +8,6 @@ # 変更点 -## 今後の予定 - -[Issues](https://code.naskya.net/naskya/firefish/issues) にあります。 - ## 主要な変更点 - 全文検索のエンジンを [PGroonga](https://pgroonga.github.io/) に変更 @@ -41,8 +37,8 @@ - HTML のコードに入るコメントアートを削除 - 全ページにこんなの入れなくても…… - 本家 Firefish へのまだマージされていないマージリクエストを独断でマージ - - https://git.joinfirefish.org/firefish/firefish/-/merge_requests/10631 - - https://git.joinfirefish.org/firefish/firefish/-/merge_requests/10634 + - [バグ修正](https://git.joinfirefish.org/firefish/firefish/-/merge_requests/10631) + - [ドライブのファイルに「このファイルが添付された投稿の一覧」のメニューを追加](https://git.joinfirefish.org/firefish/firefish/-/merge_requests/10634) - デフォルトではバイブレーションを無効に - ログインしていなければ投稿検索ができないように - 攻撃対策のため @@ -58,7 +54,7 @@ - 標準のフォントを Atkinson Hyperlegible にする変更を取り消し - フォントを変更したい場合は[このカスタム CSS](https://gitlab.com/LunarEclipse363/lunar-misskey-tweaks#setting-a-different-font) を使ってください - 簡体中文の翻訳が存在しない項目では繁体中文の翻訳を用いるように(本家では逆) - - @sup39 さんが独自機能に使われているラベルの繁体中文訳を提供してくださったため + - [サポミク](https://fedi.sup39.dev/@sup39)さんが独自機能に使われているラベルの繁体中文訳を提供してくださったため - オンラインステータスが非公開のアカウントにはステータスを表す丸印を表示しないように - 灰色の丸が表示されていてもそんなに嬉しくないため - デフォルトで検索エンジンからのクロールを拒否するように変更 @@ -94,7 +90,7 @@ - 最大 15 件の投稿を固定できるように - 5 件は少ないと思ったため - 投稿ボタンを巨大にできるように - - https://mstdn.poyo.me/@prime/110668364208741253 を真似しました + - [mstdn.maud.io / mstdn.poyo.me の機能](https://mstdn.poyo.me/@prime/110668364208741253) を真似しました - アンテナにフォロー中のユーザーのホーム投稿も表示する - フォロー中のユーザーの投稿は見たいから - 猫のアカウントはアイコンを常に丸く表示する @@ -120,7 +116,7 @@ - favicon のほうがよくカスタマイズされているため - 誤爆しやすい位置にあるフォローボタンを隠す設定を追加 - フォローを誤爆すると悲しいため -- クローラーを拒否する [robots.txt](./custom/assets/robots.txt) の追加 +- デフォルトの robots.txt の設定を変更し、クローラーを拒否するように - joinfirefish と FediDB のクローラーは許可しています - 投稿プレビューをデフォルトでオンにする設定を追加 - バージョン番号にコミットハッシュが含まれるように @@ -148,73 +144,91 @@ ## インストール -ToDo (#82) +ToDo -遠回りな方法ですが、公式のインストールスクリプトを使いたい場合にはそれを用いて本家の Firefish をインストールしてから下記の手順でこのフォークに移行できます。 +- インストールスクリプトかインストール方法の説明を提供することを考えています +- 遠回りな方法ですが、公式のインストールスクリプトを使いたい場合にはそれを用いて本家の Firefish をインストールしてから下記の手順でこのフォークに移行できます。 +- 慣れている方への説明: PostgreSQL を用いた通常の Firefish のインストールに加えて PGroonga のインストールおよびデータベースの拡張機能の有効化を行います。 ## アップデート 重要なお知らせがある場合にはアップデートスクリプトを通じてお伝えするので、必ず `update.sh` を用いてアップデートしてください。 1. サーバーのバックアップを取る -1. サーバーを停止する - ```sh - $ sudo systemctl stop yourserver.example.com +2. サーバーを停止する + + ```bash + sudo systemctl stop yourserver.example.com ``` -1. `update.sh` を実行し、表示される指示に従う - ```sh - $ ./update.sh + +3. `update.sh` を実行し、表示される指示に従う + + ```bash + ./update.sh ``` -1. サーバーを起動して動作を確認する - ```sh - $ sudo systemctl start yourserver.example.com + +4. サーバーを起動して動作を確認する + + ```bash + sudo systemctl start yourserver.example.com ``` ### 正常にアップデートできなかった場合 -```sh -$ ./update.sh |& tee /tmp/fflog +```bash +./update.sh |& tee /tmp/fflog ``` -を実行して(ログが `/tmp/fflog` に保存されます)、OS などの環境の情報とともにログの内容を私 ([@dev@post.naskya.net](https://post.naskya.net/@dev)) まで送ってください。 +を実行して(ログが `/tmp/fflog` に保存されます)、OS などの環境の情報とともにログの内容を[私](https://post.naskya.net/@dev)まで送ってください。 ログは長いのでおそらく一投稿に収まりません。そのため、ログを送る際には投稿にファイルを直接添付するか、[Pastebin](https://pastebin.com/) などのサービスを使ってください。 ログを送ったら `/tmp/fflog` は削除してよいです。 -```sh -$ rm /tmp/fflog +```bash +rm /tmp/fflog ``` ## [本家 Firefish](https://git.joinfirefish.org/firefish/firefish) からの乗り換え 1. サーバーのバックアップを取る -1. サーバーを停止する - ```sh - $ sudo systemctl stop yourserver.example.com +2. サーバーを停止する + + ```bash + sudo systemctl stop yourserver.example.com ``` -1. Firefish がインストールされているディレクトリ (e.g., `/home/calckey/calckey`) の親ディレクトリ (e.g., `/home/calckey`) に移動する - ```sh - $ cd /home/calckey + +3. Firefish がインストールされているディレクトリ (e.g., `/home/calckey/calckey`) の親ディレクトリ (e.g., `/home/calckey`) に移動する + + ```bash + cd /home/calckey ``` -1. Firefish がインストールされているディレクトリ (e.g., `./calckey`) の名前を変える - ```sh - $ mv calckey calckey.old + +4. Firefish がインストールされているディレクトリ (e.g., `./calckey`) の名前を変える + + ```bash + mv calckey calckey.old ``` -1. 元々 Firefish がインストールされていたディレクトリ (e.g., `./calckey`) と同じ名前でこのリポジトリをクローンする - ```sh - $ git clone https://code.naskya.net/naskya/firefish calckey + +5. 元々 Firefish がインストールされていたディレクトリ (e.g., `./calckey`) と同じ名前でこのリポジトリをクローンする + + ```bash + git clone https://code.naskya.net/naskya/firefish calckey ``` -1. 必要なファイルを元のディレクトリからコピーする - ```sh - $ rm -rf calckey/files calckey/custom calckey/.config - $ cp -r calckey.old/files calckey - $ cp -r calckey.old/custom calckey - $ cp -r calckey.old/.config calckey + +6. 必要なファイルを元のディレクトリからコピーする + + ```bash + rm -rf calckey/files calckey/custom calckey/.config + cp -r calckey.old/files calckey + cp -r calckey.old/custom calckey + cp -r calckey.old/.config calckey ``` -1. 全文検索エンジン(Meilisearch, Sonic, Elasticsearch のいずれか)を使用している場合には、`.config/default.yml` からその設定を削除またはコメントアウトする + +7. 全文検索エンジン(Meilisearch, Sonic, Elasticsearch のいずれか)を使用している場合には、`.config/default.yml` からその設定を削除またはコメントアウトする 先頭に `#` をつけると設定をコメントアウトできます。 + ```yaml #sonic: # host: localhost @@ -223,149 +237,191 @@ $ rm /tmp/fflog # collection: notes # bucket: default ``` + 全文検索エンジンは停止またはアンインストールしてしまってよいです。本家の Firefish に戻るつもりがあるなら停止を、そうでなければアンインストールをおすすめします。 停止コマンドの例 - ```sh - $ sudo systemctl disable --now sonic + + ```bash + sudo systemctl disable --now sonic ``` -1. PostgreSQL のバージョンを確認する - ```sh - $ psql --version + +8. PostgreSQL のバージョンを確認する + + ```bash + psql --version ``` -1. PGroonga をインストールする + +9. PGroonga をインストールする コマンドの例(詳しくは[この投稿](https://post.naskya.net/notes/9ldi29amfanomef5)を参考にしてください) - ```sh - $ 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-14-pgdg-pgroonga - ^^^^^^^^^^^^^ - for PostgreSQL 14.x + + ```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-14-pgdg-pgroonga ``` -1. `.config/default.yml` に書かれているデータベースの名前を確認する(以下の例では `mk1`) + +10. `.config/default.yml` に書かれているデータベースの名前を確認する(以下の例では `mk1`) + ```yaml db: host: localhost port: 5432 db: mk1 # <--- ``` -1. PostgreSQL のプロンプトを起動する(`mk1` の部分は自分のデータベース名に変えて実行) - ```sh - $ sudo -iu postgres psql --dbname=mk1 + +11. PostgreSQL のプロンプトを起動する(`mk1` の部分は自分のデータベース名に変えて実行) + + ```bash + sudo -iu postgres psql --dbname=mk1 ``` + 以下のような表示が出てコマンドの入力待ちになります。 - ``` + + ```text psql (16.0) Type "help" for help. mk1=# ``` -1. 以下のコマンドを実行して PGroonga の拡張機能を有効にする + +12. 以下のコマンドを実行して PGroonga の拡張機能を有効にする + ```sql CREATE EXTENSION pgroonga; ``` -1. `\q` というコマンドを実行するか Ctrl+D を押して PostgreSQL のプロンプトを終了する -1. 新しい Firefish のディレクトリに入ってビルドする - ```sh - $ cd calckey - $ ./update.sh --skip-all-confirmations + +13. `\q` というコマンドを実行するか Ctrl+D を押して PostgreSQL のプロンプトを終了する +14. 新しい Firefish のディレクトリに入ってビルドする + + ```bash + cd calckey + ./update.sh --skip-all-confirmations ``` **注意**: `--skip-all-confirmations` というオプションは普段のアップデートでは使わないでください。重要なお知らせがある場合でも表示がスキップされてしまいます。 -1. サーバーを起動して動作を確認する - ```sh - $ sudo systemctl start yourserver.example.com + +15. サーバーを起動して動作を確認する + + ```bash + sudo systemctl start yourserver.example.com ``` -1. 元々 Firefish がインストールされていたディレクトリを削除する - ```sh - $ cd .. - $ rm -rf calckey.old + +16. 元々 Firefish がインストールされていたディレクトリを削除する + + ```bash + cd .. + rm -rf calckey.old ``` ## このフォークから[本家 Firefish](https://git.joinfirefish.org/firefish/firefish) へ戻る 1. サーバーのバックアップを取る -1. サーバーを停止する - ```sh - $ sudo systemctl stop yourserver.example.com +2. サーバーを停止する + + ```bash + sudo systemctl stop yourserver.example.com ``` -1. Firefish がインストールされているディレクトリ (e.g., `/home/calckey/calckey`) へ移動する - ```sh - $ cd /home/calckey/calckey + +3. Firefish がインストールされているディレクトリ (e.g., `/home/calckey/calckey`) へ移動する + + ```bash + cd /home/calckey/calckey ``` -1. 最新版にアップデートする - ```sh - $ ./update.sh +4. 最新版にアップデートする + + ```bash + ./update.sh ``` -1. `.config/default.yml` に書かれているデータベースの名前を確認する(以下の例では `mk1`) + +5. `.config/default.yml` に書かれているデータベースの名前を確認する(以下の例では `mk1`) + ```yaml db: host: localhost port: 5432 db: mk1 # <--- ``` -1. このフォークで加えられたデータベースへの変更を取り消す(`mk1` の部分は自分のデータベース名に変更する) - ```sh - $ sudo -iu postgres psql --file=neko/revert.sql --dbname=mk1 + +6. このフォークで加えられたデータベースへの変更を取り消す(`mk1` の部分は自分のデータベース名に変更する) + + ```bash + sudo -iu postgres psql --file=neko/revert.sql --dbname=mk1 ``` -1. PGroonga をアンインストールする + +7. PGroonga をアンインストールする コマンドの例 - ```sh - $ sudo apt purge --remove postgresql-14-pgdg-pgroonga - $ sudo add-apt-repository --remove ppa:groonga/ppa - $ sudo apt-key del ACCC4CF8 - $ sudo apt update + + ```bash + sudo apt purge --remove postgresql-14-pgdg-pgroonga + sudo add-apt-repository --remove ppa:groonga/ppa + sudo apt-key del ACCC4CF8 + sudo apt update ``` -1. Firefish がインストールされているディレクトリの親ディレクトリ (e.g., `/home/calckey`) に行く - ```sh - $ cd .. + +8. Firefish がインストールされているディレクトリの親ディレクトリ (e.g., `/home/calckey`) に行く + + ```bash + cd .. ``` -1. Firefish がインストールされているディレクトリ (e.g., `./calckey`) の名前を変える - ```sh - $ mv calckey calckey.old + +9. Firefish がインストールされているディレクトリ (e.g., `./calckey`) の名前を変える + + ```bash + mv calckey calckey.old ``` -1. Firefish がインストールされているディレクトリと同じ名前で本家版の Firefish を clone する - ```sh - $ git clone https://git.joinfirefish.org/firefish/firefish.git calckey + +10. Firefish がインストールされているディレクトリと同じ名前で本家版の Firefish を clone する + + ```bash + git clone https://git.joinfirefish.org/firefish/firefish.git calckey ``` -1. 必要なファイルをコピーする - ```sh - $ rm -rf calckey/files calckey/custom calckey/.config - $ cp -r calckey.old/files calckey - $ cp -r calckey.old/custom calckey - $ cp -r calckey.old/.config calckey + +11. 必要なファイルをコピーする + + ```bash + rm -rf calckey/files calckey/custom calckey/.config + cp -r calckey.old/files calckey + cp -r calckey.old/custom calckey + cp -r calckey.old/.config calckey ``` -1. 新しい Firefish のディレクトリ (e.g., `./calckey`) に入り、`develop` ブランチに行く(既にそうなっているはず) - ```sh - $ cd calckey - $ git checkout develop - Already on 'develop' - Your branch is up to date with 'origin/develop'. + +12. 新しい Firefish のディレクトリ (e.g., `./calckey`) に入り、`develop` ブランチに行く(実際には既に `develop` にいるはず) + + ```bash + cd calckey + git checkout develop ``` -1. Firefish をビルドする - ```sh - $ corepack prepare pnpm@latest --activate - $ pnpm i - $ NODE_ENV=production pnpm run build - $ pnpm run migrate + +13. Firefish をビルドする + + ```bash + corepack prepare pnpm@latest --activate + pnpm i + NODE_ENV=production pnpm run build + pnpm run migrate ``` -1. サーバーを起動して動作を確認する - ```sh - $ sudo systemctl start yourserver.example.com + +14. サーバーを起動して動作を確認する + + ```bash + sudo systemctl start yourserver.example.com ``` -1. 元々 Firefish がインストールされていたディレクトリを削除する - ```sh - $ cd .. - $ rm -rf calckey.old + +15. 元々 Firefish がインストールされていたディレクトリを削除する + + ```bash + cd .. + rm -rf calckey.old ``` ### 注意 @@ -374,11 +430,11 @@ $ rm /tmp/fflog 例えば `beta` 版を動かしたい場合、次に `beta` 版がリリースされたらそちらに移れます。 -```sh -$ git checkout beta -$ git pull --ff -$ corepack prepare pnpm@latest --activate -$ pnpm i -$ NODE_ENV=production pnpm run build -$ pnpm run migrate +```bash +git checkout beta +git pull --ff +corepack prepare pnpm@latest --activate +pnpm i +NODE_ENV=production pnpm run build +pnpm run migrate ```