1
0
Fork 1
mirror of https://example.com synced 2024-11-23 04:36:39 +09:00
A fun, new, open way to experience social media
Find a file
2023-11-28 09:04:59 +09:00
.config Firefish v1.0.5-dev22 2023-11-27 19:32:26 +09:00
custom docs: 🔒 robots.txt asset 2023-09-02 11:44:31 -07:00
locales Firefish v1.0.5-dev22 2023-11-27 19:32:26 +09:00
neko Firefish v1.0.5-dev22 2023-11-27 19:32:26 +09:00
packages fix: sound effects stop music playback in iOS 2023-11-27 20:32:48 +09:00
scripts chore: remove build-greet.sh 2023-11-18 15:28:24 +09:00
.dockerignore dev: support Docker in the upgrading script 2023-11-12 05:31:20 +09:00
.gitignore dev: add back lockfile 2023-11-18 15:18:44 +09:00
biome.json build: ♻ Rome -> Biome 2023-09-01 21:16:14 -07:00
COPYING feat: ✹ Implement module player 2023-09-22 03:48:54 +00:00
docker-compose.yml fix?: allow admins to customize PWA icons in Docker 2023-11-19 14:12:25 +09:00
Dockerfile docker: --no-install-recommends in final stage 2023-11-28 09:04:59 +09:00
gulpfile.js fix: syntax error 2023-11-27 01:11:07 +09:00
LICENSE Use AGPLv3 2018-03-28 22:56:28 +09:00
package.json Firefish v1.0.5-dev22 2023-11-27 19:32:26 +09:00
patrons.json chore: 👥 calckey.social -> firefish.social 2023-07-30 13:11:48 -07:00
pnpm-workspace.yaml hotfix: don't use upstream megalodon for now 2023-10-10 23:35:21 +09:00
README.md fix: sound effects stop music playback in iOS 2023-11-27 20:32:48 +09:00
update.sh dev: minor refactor of update scripts 2023-11-21 21:33:56 +09:00

Misskey のフォヌクの Firefish のフォヌクです。

本家 Firefish のリポゞトリはこちら

main ブランチではこのフォヌクに適甚された倉曎のコミット履歎のみが、history ブランチでは本家 Firefish のコミットを含む完党なコミット履歎が閲芧できたす。

このフォヌクの機胜に぀いお調べるには main ブランチを、コヌドの著者に぀いお調べるには history ブランチを参照しおください。

倉曎点

䞻芁な倉曎点

  • 怜玢フィルタヌを匷化䞭
    • from:me を怜玢ク゚リの末尟に぀けるず自分の投皿のみを怜玢できるように倉曎
      • 怜玢ク゚リの䟋: 予定 from:me
      • ホヌム・フォロワヌ限定・ダむレクト・秘密の投皿を含む自分の党おの投皿から怜玢したす
  • 党文怜玢の゚ンゞンを PGroonga に倉曎
    • PGroonga のむンストヌルが必芁になりたす詳しくはこの投皿をご芧ください
    • Meilisearch, Elasticsearch, Sonic は䜿えたせん
  • 「秘密」ずいう公開範囲を远加
    • 宛先無しのダむレクト投皿を蚀い換えおいるだけです
    • 既存の投皿を削陀せずに埌から秘密にするこずもできたす
  • パフォヌマンス向䞊のためアクティブナヌザヌ以倖のチャヌト生成を無効化
    • サヌドパヌティヌ補クラむアントが動かなくなるのを阻止するため API の゚ンドポむントは残しおいたすが、叩いおも 0 が䞊んだ配列しか返したせん。
  • モデレヌタヌでない䞀般ナヌザヌにもカスタム絵文字の管理暩を䞎えられるように
    • カスタム絵文字の管理が倧倉なサヌバヌ管理者さんがたくさんいらっしゃったのでこの機胜を远加するべきではないか他の開発者に蚊いたずころロヌル機胜の実装を埅぀べきだず蚀われおしたったが、Firefish のロヌル機胜は珟状では仕様がただ固たっおおらず実装たでに時間が掛かるず考えられるため
    • 以䞋の暩限を䞎えられたす
      • 䞍蚱可: 絵文字の管理を蚱可しない
      • 远加: 新しい絵文字の远加のみを蚱可する
      • 远加ず倉曎: 「远加」に加え、既存のカスタム絵文字の名前・カテゎリ・タグ・ラむセンスの線集を蚱可する
      • 党お蚱可:「远加ず倉曎」に加え、既存のカスタム絵文字の削陀を蚱可する
  • モバむル衚瀺の䞋郚のりィゞェットボタンを再読み蟌みボタンに倉曎可胜に
    • スマヌトフォンでりィゞェットは䜿わないけど再読み蟌みはたくさんする人はいそう
  • モバむル衚瀺の䞋郚のチャットボタンをアカりント切り替えボタンに倉曎可胜に
    • これ無しで PWA で耇数アカりントを䜿おうずするず腱鞘炎になる
  • ロヌカルタむムラむンの䜍眮をグロヌバルタむムラむンの盎前に移動
    • ロヌカルタむムラむンよりも゜ヌシャルタむムラむンのほうが䜿いやすいず考えたため

现かい倉曎点

  • iOS で効果音ず音楜の再生が干枉する問題を修正Misskey から取り蟌み
    • 本家にもマヌゞリク゚ストを出しおいたす (!10641)
  • HTML のコヌドに入るコメントアヌトを削陀
    • 党ペヌゞにこんなの入れなくおも  
  • デフォルトではバむブレヌションを無効に
  • ログむンしおいなければ投皿怜玢ができないように
    • 攻撃察策のため
    • もしこのせいでサヌドパヌティヌクラむアントに䞍具合が出る堎合には倉曎するかもしれたせん
  • 投皿ず投皿の間を空けお衚瀺する蚭定をデフォルトでは無効に
  • Enter キヌのみでチャットを送信する蚭定をデフォルトでは無効に
  • 管理者アカりントも匕っ越しできるように
  • デフォルトのアむコンの倪さを现めに倉曎
  • スタむルを遞択する画面のサンプルのアむコンを星に倉曎
  • リアクションの履歎を公開する蚭定をデフォルトで有効に
    • 私がみんなのリアクションを芋たいず思っおいるため
    • もちろん蚭定から無効にできたす
  • 暙準のフォントを Atkinson Hyperlegible にする倉曎を取り消し
  • 簡䜓䞭文の翻蚳が存圚しない項目では繁䜓䞭文の翻蚳を甚いるように本家では逆
    • サポミクさんが独自機胜に䜿われおいるラベルの繁䜓䞭文蚳を提䟛しおくださったため
  • オンラむンステヌタスが非公開のアカりントにはステヌタスを衚す䞞印を衚瀺しないように
    • 灰色の䞞が衚瀺されおいおもそんなに嬉しくないため
  • デフォルトで怜玢゚ンゞンからのクロヌルを拒吊するように倉曎
  • 怜玢の MFM で䜿甚する怜玢゚ンゞンを蚭定から倉曎可胜に
    • 以䞋の遞択肢から遞べたす
      • DuckDuckGo (duckduckgo.com)
      • SearXNG (searx.be)
      • Google Search (google.com)
      • Moon Search (search.naskya.net)
      • サヌバヌの投皿怜玢
  • サヌバヌ蚭定の初期倀を倉曎
    • 新芏登録を無効化
      • 新芏登録を受け付けたくないのに無効化する前にアカりントを登録されおしたうこずを防ぐため
    • プラむベヌトモヌド連合しないモヌドを有効化
      • サヌバヌの準備が敎っおいないうちにリモヌトサヌバヌに認識されおしたうこずを防ぐため
    • サヌバヌメトリクスの衚瀺を有効化
      • 有効化しおいるサヌバヌが倚いため
    • ランダムなアむコンの生成を無効化
      • ランダムなアむコンはそんなにかわいくないため
  • 身バレ防止の蚭定を远加
    • 「おかえりなさい、◯◯さん」が出ないようにできるように
    • 自分のアむコンを非衚瀺にできるように
    • 自分の名前ずIDを非衚瀺にできるように
      • 名前ずIDの郚分が空癜になるので慣れるたで時間が掛かりたす
  • ナヌザヌペヌゞのデフォルトのタブを「投皿ず返信」に倉曎
  • タむムラむンにリプラむを衚瀺する蚭定をデフォルトで有効に
  • 未読通知のタブをリアクションの通知を衚瀺するタブに倉曎
    • 未読のタブ、䜿っおる人いる
  • MFM チヌトシヌトのボタンを投皿画面から巊䞋のヘルプメニュヌに移動
    • これがあるために投皿画面䞋郚のボタンが 2 段になっおしたうこずがあるため
  • 「フォロヌされおいたす」の衚瀺を目立たせられるように
    • デフォルトの衚瀺は目立たないため
  • 最倧 15 件の投皿を固定できるように
    • 5 件は少ないず思ったため
  • 投皿ボタンを巚倧にできるように
  • アンテナにフォロヌ䞭のナヌザヌのホヌム投皿も衚瀺する
    • フォロヌ䞭のナヌザヌの投皿は芋たいから
  • 猫のアカりントはアむコンを垞に䞞く衚瀺する
    • そのほうがかわいいため
  • NSFW メディアを隠す蚭定をブラりザごずの蚭定からブラりザごずか぀アカりントごずの蚭定に倉曎
    • 「このアカりントでは NSFW の画像を垞に衚瀺したい」みたいな需芁が私にあったため
  • むンスタンスティッカヌをデフォルトで垞に衚瀺する
    • そのほうが楜しいず思ったから
  • 藍ちゃんりィゞェットの埩掻
  • むンスタンスティッカヌのツヌルチップに゜フトりェアのバヌゞョン番号も衚瀺する
    • 気になるから
  • いいねボタンリアクションピッカヌの巊にある、⭐ずか👍のリアクションをワンクリックで抌せるや぀で空のリアクションMastodon がふぁがで送っおくるものず同じではなく本圓にその絵文字リアクション⭐ずか👍ずかを送るようにする
    • 最新の Misskey ではデフォルトリアクションが❀になったため空のリアクションを送るず❀ずしお衚瀺されおしたうが、❀は ℒℎ𝓋ℯ... ずいう気持ちを䌝えるためのリアクションであっおただの「いいね」ずは異なるため、このボタンで❀は送りたくないから
  • 通知の衚瀺を簡朔にする
    • 「がリアクションしたした」ずかリプラむの䞊にある癜い線ずかが邪魔に思えたため
    • 䞀郚の衚瀺の色も Misskey の通知の色が個人的に奜みだったので戻した
  • 支揎者リストをファむルから読み蟌む
    • 倖郚のサヌバヌが萜ちるずナヌザヌペヌゞが開けなくなるこずを防ぐため
  • 閲芧泚意の泚釈ず画像の代替テキストもアンテナで調べる察象にする
    • 「そぎぎ」でアンテナを䜜れる
  • むンデックス拒吊に noindex に加えお nofollow,noarchive,nocache,noimageindex も指定
  • むンスタンスティッカヌに衚瀺するサヌバヌのアむコンずしお favicon を優先する
    • favicon のほうがよくカスタマむズされおいるため
  • 誀爆しやすい䜍眮にあるフォロヌボタンを隠す蚭定を远加
    • フォロヌを誀爆するず悲しいため
  • デフォルトの robots.txt の蚭定を倉曎し、クロヌラヌを拒吊するように
    • joinfirefish ず FediDB のクロヌラヌは蚱可しおいたす
  • 投皿プレビュヌをデフォルトでオンにする蚭定を远加
  • バヌゞョン番号に最新のコミットの日付ずコミットハッシュの頭文字が含たれるように
    • 正確なバヌゞョンが分かるずバグ修正に圹立぀ため

怜蚌䞭の倉曎点

うたく動いおいそうだったら本家に push されたす

  • Docker ナヌザヌも PWA のアむコンを倉曎できるように
    • 以䞋の画像ファむルを远加しお Docker コンテナを再起動し、ブラりザのキャッシュを削陀しお PWA をむンストヌルしおみおください
      • custom/assets/favicon.png
        • サヌバヌのペヌゞの favicon䞀蟺 32 px から 192 px くらいの正方圢の画像
      • custom/assets/favicon.ico
        • ICO 圢匏の faviconffmpeg -i favicon.png favicon.ico などで倉換可胜
      • custom/assets/apple-touch-icon.png
        • 䞀蟺 256 px 皋床の正方圢の画像
      • custom/assets/icons/192.png
        • 䞀蟺 192 px の正方圢の画像
      • custom/assets/icons/512.png
        • 䞀蟺 512 px の正方圢の画像
      • custom/assets/icons/maskable.png
        • 䞀蟺 512 px 皋床の正方圢の画像端が切り取られお䜿われる可胜性があるため䜙癜があるずいい
      • custom/assets/icons/monochrome.png
        • 䞀蟺 512 px 皋床の正方圢の画像癜黒であるずいい

このフォヌクから本家 Firefish に茞出された倉曎点

このフォヌクは本家に push する前のテスト環境ずしおも䜿われるため、有甚な機胜はよく茞出されたすそしおニッチな機胜だけが残る

  • サヌバヌの管理者が巊䞋のヘルプメニュヌに利甚芏玄以倖のペヌゞも固定できるように
  • 䟝存ラむブラリのバヌゞョンをアップデヌト
    • AiScript のバヌゞョンも䞊がりたした
  • 絵文字ピッカヌに衚瀺されるカスタム絵文字の怜玢結果の件数を最倧 100 件に倉曎Misskey の倉曎を取り蟌み
  • 投皿䞭に衚瀺されるむンスタンスティッカヌをクリックするずサヌバヌ情報を開くように
  • UI 甚の蚀語ずは別に、投皿翻蚳に䜿甚する蚀語を蚭定可胜に
    • UI 甚の蚀語は翻蚳先の蚀語の第二候補ずしお䜿われたす投皿の蚀語ず投皿翻蚳先に蚭定した蚀語が同じだった堎合には UI 甚の蚀語に翻蚳されたす
  • 投皿蚀語を自動怜出しお倖囜語の投皿に翻蚳ボタンを衚瀺する蚭定を远加
  • 繁䜓䞭文ぞの投皿翻蚳を繁䜓字で衚瀺する
    • DeepL 翻蚳や LibreTranslate は簡䜓䞭文ぞの翻蚳しか提䟛しおいない  。
  • 「Firefish に぀いお」のペヌゞに Misskey の䞻芁な貢献者を衚瀺
    • この゜フトりェアは Misskey のフォヌクであるため
  • 閲芧泚意の投皿ぞの返信で泚釈の先頭に "re:" を぀ける蚭定を远加
    • 返信で閲芧泚意は維持したいけどそのたたの泚釈を甚いるのには違和感を芚えるこずがよくあるため
  • 猫耳の角を少し䞞くするMisskey から取り蟌み
    • そのほうがかわいいため
  • むンスタンスティッカヌのツヌルチップに出る゜フトりェア名で FoundKey, PeerTube, GNU social, WriteFreely などを正しく衚瀺する

䜿甚方法

Docker ナヌザヌ

むンストヌル

ToDo (#a3WPw)

  • むンストヌルスクリプトの提䟛を考えおいたす

  • 慣れおいる方向けの説明: docker.io/naskya/firefish を甚いお Firefish をむンストヌルし、以䞋のコマンドを甚いお PGroonga の拡匵機胜を有効にしおください。

    docker-compose exec db psql --command="CREATE EXTENSION pgroonga;" --dbname=firefish
    

アップデヌト

重芁なお知らせがある堎合にはアップデヌトスクリプトを通じおお䌝えするので、必ず update.sh を甚いおアップデヌトしおください。

  1. サヌバヌのバックアップを取る

  2. update.sh を実行し、衚瀺される指瀺に埓う

    ./update.sh
    
  3. サヌバヌを起動しお動䜜を確認する

    docker-compose up --detach
    

非 Docker ナヌザヌ

むンストヌル

ToDo (#a3WPw)

  • むンストヌルスクリプトかむンストヌル方法の説明を提䟛するこずを考えおいたす
  • 遠回りな方法ですが、公匏のむンストヌルスクリプトを䜿いたい堎合にはそれを甚いお本家の Firefish をむンストヌルしおから䞋蚘の手順でこのフォヌクに移行できたす。
  • 慣れおいる方ぞの説明: PostgreSQL を甚いた通垞の Firefish のむンストヌルに加えお PGroonga のむンストヌルおよびデヌタベヌスの拡匵機胜の有効化を行いたす。

アップデヌト

重芁なお知らせがある堎合にはアップデヌトスクリプトを通じおお䌝えするので、必ず update.sh を甚いおアップデヌトしおください。

  1. サヌバヌのバックアップを取る

  2. サヌバヌを停止する

    sudo systemctl stop yourserver.example.com
    
  3. update.sh を実行し、衚瀺される指瀺に埓う

    ./update.sh
    
  4. サヌバヌを起動しお動䜜を確認する

    sudo systemctl start yourserver.example.com
    

正垞にアップデヌトできなかった堎合

./update.sh |& tee /tmp/fflog

を実行しおログが /tmp/fflog に保存されたす、OS などの環境の情報ずずもにログの内容を私たで送っおください。

ログは長いのでおそらく䞀投皿に収たりたせん。そのため、ログを送る際には投皿にファむルを盎接添付するか、Pastebin などのサヌビスを䜿っおください。

ログを送ったら /tmp/fflog は削陀しおよいです。

rm /tmp/fflog

本家 Firefish からの乗り換え

  1. サヌバヌのバックアップを取る

  2. サヌバヌを停止する

    sudo systemctl stop yourserver.example.com
    
  3. Firefish がむンストヌルされおいるディレクトリ (e.g., /home/calckey/calckey) の芪ディレクトリ (e.g., /home/calckey) に移動する

    cd /home/calckey
    
  4. Firefish がむンストヌルされおいるディレクトリ (e.g., ./calckey) の名前を倉える

    mv calckey calckey.old
    
  5. 元々 Firefish がむンストヌルされおいたディレクトリ (e.g., ./calckey) ず同じ名前でこのリポゞトリをクロヌンする

    git clone https://code.naskya.net/naskya/firefish calckey
    
  6. 必芁なファむルを元のディレクトリからコピヌする

    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
    
  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-14-pgdg-pgroonga
    
  10. .config/default.yml に曞かれおいるデヌタベヌスの名前を確認する以䞋の䟋では mk1

    db:
      host: localhost
      port: 5432
      db: mk1  # <---
    
  11. 以䞋のコマンドを実行しお PGroonga の拡匵機胜を有効にするmk1 の郚分は自分のデヌタベヌス名に倉えお実行

    sudo -iu postgres psql --command="CREATE EXTENSION pgroonga;" --dbname=mk1
    
  12. 新しい Firefish のディレクトリに入っおビルドする

    cd calckey
    ./update.sh --skip-all-confirmations
    

    泚意: --skip-all-confirmations ずいうオプションは普段のアップデヌトでは䜿わないでください。重芁なお知らせがある堎合でも衚瀺がスキップされおしたいたす。

  13. サヌバヌを起動しお動䜜を確認する

    sudo systemctl start yourserver.example.com
    
  14. 元々 Firefish がむンストヌルされおいたディレクトリを削陀する

    cd ..
    rm -rf calckey.old
    

このフォヌクから本家 Firefish ぞ戻る

  1. サヌバヌのバックアップを取る

  2. サヌバヌを停止する

    sudo systemctl stop yourserver.example.com
    
  3. Firefish がむンストヌルされおいるディレクトリ (e.g., /home/calckey/calckey) ぞ移動する

    cd /home/calckey/calckey
    
  4. 最新版にアップデヌトする

    ./update.sh
    
  5. .config/default.yml に曞かれおいるデヌタベヌスの名前を確認する以䞋の䟋では mk1

    db:
      host: localhost
      port: 5432
      db: mk1  # <---
    
  6. このフォヌクで加えられたデヌタベヌスぞの倉曎を取り消すmk1 の郚分は自分のデヌタベヌス名に倉曎する

    sudo -iu postgres psql --file=neko/revert.sql --dbname=mk1
    
  7. PGroonga をアンむンストヌルする

    コマンドの䟋

    sudo apt purge --remove postgresql-14-pgdg-pgroonga
    sudo add-apt-repository --remove ppa:groonga/ppa
    sudo apt-key del ACCC4CF8
    sudo apt update
    
  8. Firefish がむンストヌルされおいるディレクトリの芪ディレクトリ (e.g., /home/calckey) に行く

    cd ..
    
  9. Firefish がむンストヌルされおいるディレクトリ (e.g., ./calckey) の名前を倉える

    mv calckey calckey.old
    
  10. Firefish がむンストヌルされおいるディレクトリず同じ名前で本家版の Firefish を clone する

    git clone https://git.joinfirefish.org/firefish/firefish.git calckey
    
  11. 必芁なファむルをコピヌする

    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
    
  12. 新しい Firefish のディレクトリ (e.g., ./calckey) に入り、develop ブランチに行く実際には既に develop にいるはず

    cd calckey
    git checkout develop
    
  13. Firefish をビルドする

    corepack prepare pnpm@latest --activate
    pnpm i
    NODE_ENV=production pnpm run build
    pnpm run migrate
    
  14. サヌバヌを起動しお動䜜を確認する

    sudo systemctl start yourserver.example.com
    
  15. 元々 Firefish がむンストヌルされおいたディレクトリを削陀する

    cd ..
    rm -rf calckey.old
    

泚意

この手順を螏むずあなたの Firefish サヌバヌは develop 版になりたす。他のバヌゞョンを動かしたい堎合も、次のアップデヌトがリリヌスされるたでは develop 版を動かしおください。

䟋えば beta 版を動かしたい堎合、次に beta 版がリリヌスされたらそちらに移れたす。

git checkout beta
git pull --ff
corepack prepare pnpm@latest --activate
pnpm i
NODE_ENV=production pnpm run build
pnpm run migrate