uBlacklistをSearXNGのプライベートインスタンスでも使用できるようにする方法
自分で立てたSearXNGインスタンスでも、uBlacklist拡張機能を利用して検索結果から特定のサイトを非表示にしたいという方向け。uBlacklistはデフォルトではGoogleなどの特定エンジンのみをサポートしており、自前のインスタンスに対応するにはカスタムビルドが必要です。
本記事では、ublacklistをソースから改造・ビルドし、SearXNGのプライベートインスタンスに対応させる手順を紹介します。
Chrome系(Google Chrome, Vivaldi, Braveなど)および Firefox系(Floorp, Firefox Developer Editionなど)に対応可能です。
✅ 前提条件
Node.js(v20以上推奨)
pnpm v9.7.0以上
Git
ブラウザ(ChromeまたはFirefox)
✅ ステップ1:リポジトリのクローンとセットアップ
git clone --recurse-submodules https://github.com/iorate/ublacklist.git
cd ublacklist
pnpm install
✅ ステップ2:自分のSearXNGドメインを追加
次のファイルを開きます:
src/common/search-engines.ts
その中の `searx` セクションの `matches` 配列に、以下を追加:
"*://hogehoge.localhost/search*"
※実際のURLに応じて適宜変更してください。
✅ ステップ3:最新リリースバージョンを確認&ビルド
git pull
$latestTag = git tag --sort=-creatordate | Select-Object -First 1
$latestVersion = $latestTag -replace "^v", ""
// firefoxの場合
pnpm build --browser firefox --version $latestVersion --debug
// chromeの場合
pnpm build --browser chrome --version $latestVersion --debug
※ `--browser` の指定は `firefox` または `chrome` を指定。ご自身の環境に合わせて変更してください。
出力先はそれぞれ `dist/firefox-debug/` または `dist/chrome-debug/` になります。
✅ ステップ4:ブラウザで拡張機能を読み込む
と、その前に、既存のubacklistの設定内容がある場合はバックアップ取っておいてください。そして、既にストアからインストールしたublacklistが有効の場合は無効か削除してください。終わったら以下に進んでください。
🔹 Firefox の場合
`about:debugging#/runtime/this-firefox` にアクセス
「一時的なアドオンを読み込む」
`dist/firefox-debug/manifest.json` を指定
🔹 Chrome / Chromium系の場合
`chrome://extensions` にアクセス
「デベロッパーモード」をオンにする
「パッケージ化されていない拡張機能を読み込む」
`dist/chrome-debug/` フォルダを選択
✅ ステップ5:動作確認
ublacklistの拡張機能の設定ページから「その他の検索エンジン」でsearXにチェックを入れる
http://hogehoge.localhost`(あなたの設定したドメイン) にアクセスし、検索
uBlacklistのブロックボタンが表示されるか確認
検索結果が正しく除外されるか確認
🔁 更新がある場合の運用
最新版に更新して再ビルドするには:
// ublacklistのルートディレクトリに移動して
git pull
$latestTag = git tag --sort=-creatordate | Select-Object -First 1
$latestVersion = $latestTag -replace "^v", ""
// firefoxの場合
pnpm build --browser firefox --version $latestVersion --debug
// chromeの場合
pnpm build --browser chrome --version $latestVersion --debug
その後、ブラウザ側で再読み込み。
📌 補足
`--debug` を付けることで Firefox や Chrome 上での開発検証がしやすくなります
一時的な読み込みはブラウザ再起動で解除されるため、必要に応じて再読み込みしてください
永続化したい場合は `.xpi`(Firefox)や `.crx`(Chrome)形式でのパッケージ化+署名が必要です
🏁 まとめ
uBlacklist はソースビルドすれば、任意の検索エンジンに対応可能です。
特に SearXNG のような自前エンジンを使っているユーザーにとっては、検索結果のカスタムフィルタリングに uBlacklist は非常に強力なツールとなります。
Chrome・Firefox 両対応の手法として、開発者・技術者の皆様の参考になれば幸いです。
コメント