docs: optimize for Vervis

This commit is contained in:
naskya 2023-11-05 21:01:39 +09:00
parent 290f98ae8b
commit b1a66c89a6
Signed by: naskya
GPG key ID: 164DFF24E2D40139

338
README.md
View file

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