SearXNG
このチュートリアルはコミュニティによる貢献であり、Open WebUIチームによるサポートは提供されません。これは、Open WebUIを特定の使用事例に合わせてカスタマイズする方法を示すデモンストレーションとしてのみの役割を果たします。貢献したいですか?寄稿チュートリアルをご覧ください。
このガイドでは、Docker内でSearXNGを使用してOpen WebUIでウェブ検索機能を設定する方法を説明します。
SearXNG (Docker)
"SearXNGは、さまざまな検索サービスやデータベースから結果を集約する無料のインターネットメタ検索エンジンです。ユーザーは追跡されず、プロファイリングも 行われません。"
1. SearXNGの設定
Open WebUIでの使用に最適なSearXNGを設定するには、次の手順に従ってください:
手順1: git clone
でSearXNG Dockerを複製し、フォルダに移動する:
- 新しいディレクトリ
searxng-docker
を作成します。
searxng-dockerリポジトリを複製します。このフォルダには、SearXNGの設定ファイルが含まれます。設定方法については、SearXNGドキュメントを参照してください。
git clone https://github.com/searxng/searxng-docker.git
searxng-docker
リポジトリに移動します:
cd searxng-docker
手順2: .env
ファイルを見つけて変更する:
.env
ファイルの中のSEARXNG_HOSTNAME
をコメント解除して、適切に設定します:
# デフォルトではhttps://localhostでリッスンします
# これを変更するには:
# * SEARXNG_HOSTNAMEをコメント解除し、<host>をSearXNGホスト名に置き換えます
# * LETSENCRYPT_EMAILをコメント解除し、<email>をメールアドレスに置き換えます (Lets Encrypt証明書を作成するために必要)
SEARXNG_HOSTNAME=localhost:8080/
# LETSENCRYPT_EMAIL=<メール>
# オプション:
# 非常に小さなインスタンスまたは非常に大きなインスタンスを実行している場合、uwsgiワーカーと各ワーカーのスレッドの量を調整したい可能性があります
# ワーカー(プロセス)が多いほど、同時に処理できる検索リクエストが増えますが、それに応じてリソース使用量も増加します
# SEARXNG_UWSGI_WORKERS=4
# SEARXNG_UWSGI_THREADS=4
手順3: docker-compose.yaml
ファイルを変更する
docker-compose.yaml
ファイルを修正してlocalhost
制限を解除します:
sed -i "s/127.0.0.1:8080/0.0.0.0:8080/"
手順4: 必要な権限を付与する
- ルートディレクトリで以下のコマンドを実行し、コンテナが新しい設定ファイルを作成できるようにします:
sudo chmod a+rwx searxng-docker/searxng
手順5: 制限のないlimiter.toml
ファイルを作成する
- 制限のない
searxng-docker/searxng/limiter.toml
設定ファイルを作成します:
searxng-docker/searxng/limiter.toml
# この設定ファイルはデフォルトの設定ファイルを更新します
# 詳細は https://github.com/searxng/searxng/blob/master/searx/botdetection/limiter.toml を参照
[botdetection.ip_limit]
# ip_limitメソッドでリンクトークンメソッドを有効にする
link_token = false
[botdetection.ip_lists]
block_ip = []
pass_ip = []
手順6: デフォルトsettings.yml
ファイルを削除する
- 存在する場合は、デフォルトの
searxng-docker/searxng/settings.yml
ファイルを削除します。これはSearXNGの初回起動時に再生成されます:
rm searxng-docker/searxng/settings.yml
手順7: 新しいsettings.yml
ファイルを作成する
最初の実行では、docker-compose.yaml
ファイルからcap_drop: - ALL
を削除する必要があります。これは、searxng
サービスが/etc/searxng/uwsgi.ini
を正常に作成するために必要です。このディレクティブはすべての能力を削除するため、uwsgi.ini
ファイルの作成に必要な能力も削除されます。初回実行後、セキュリティのためにcap_drop: - ALL
をdocker-compose.yaml
ファイルに再追加する必要があります。
- 一時的にコンテナを起動し、新たな
settings.yml
ファイルを生成します:
docker compose up -d ; sleep 10 ; docker compose down
手順8: フォーマットを追加してポート番号を更新する
searxng-docker/searxng/settings.yml
ファイルにHTMLおよびJSONフォーマットを追加します:
sed -i s/formats: \[\"html\"\/]/formats: [\"html\", \"json\"]/ searxng-docker/searxng/settings.yml
SearXNGインスタンス用のシークレットキーを生成します:
sed -i "s|ultrasecretkey|$(openssl rand -hex 32)|g" searxng-docker/searxng/settings.yml
Windowsユーザーは次のPowerShellスクリプトを使用してシークレットキーを生成できます:
$randomBytes = New-Object byte[] 32
(New-Object Security.Cryptography.RNGCryptoServiceProvider).GetBytes($randomBytes)
$secretKey = -join ($randomBytes | ForEach-Object { "{0:x2}" -f $_ })
(Get-Content searxng-docker/searxng/settings.yml) -replace ultrasecretkey, $secretKey | Set-Content searxng-docker/searxng/settings.yml
server
セクション内で、ポート番号を以前に設定したもの(この場合、8080
)に更新します:
sed -i s/port: 8080/port: 8080/ searxng-docker/searxng/settings.yml
bind_address
を必要に応じて変更します:
sed -i s/bind_address: "0.0.0.0"/bind_address: "127.0.0.1"/ searxng-docker/searxng/settings.yml