From 5438f2fdef530ce7ccdc54c2a62df62711aeb11d Mon Sep 17 00:00:00 2001 From: koide Date: Sun, 22 Feb 2026 23:56:52 +0000 Subject: [PATCH] =?UTF-8?q?Add:=20SearXNG=E3=83=AF=E3=83=B3=E3=83=A9?= =?UTF-8?q?=E3=82=A4=E3=83=8A=E3=83=BC=E3=82=B9=E3=82=AF=E3=83=AA=E3=83=97?= =?UTF-8?q?=E3=83=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs-tech/searxng-local-search/index.md | 12 ++- static/scripts/searxng-setup.sh | 120 ++++++++++++++++++++++++ 2 files changed, 131 insertions(+), 1 deletion(-) create mode 100644 static/scripts/searxng-setup.sh diff --git a/docs-tech/searxng-local-search/index.md b/docs-tech/searxng-local-search/index.md index 67ab806..fadc8d0 100644 --- a/docs-tech/searxng-local-search/index.md +++ b/docs-tech/searxng-local-search/index.md @@ -40,7 +40,17 @@ SearXNGは**プライバシー重視のメタ検索エンジン**(オープン - Docker環境(LXC、VM、物理サーバー等) - ポート8080が空いている -### Docker Composeでセットアップ +### ワンライナーでセットアップ + +```bash +curl -sL https://docs.techswan.online/scripts/searxng-setup.sh | sudo bash +``` + +これだけでDocker + SearXNGが起動する。 + +### 手動セットアップ + +手動で構築したい場合は以下: ```bash # 必要なパッケージ diff --git a/static/scripts/searxng-setup.sh b/static/scripts/searxng-setup.sh new file mode 100644 index 0000000..63dc170 --- /dev/null +++ b/static/scripts/searxng-setup.sh @@ -0,0 +1,120 @@ +#!/bin/bash +# +# SearXNG Setup Script +# Usage: curl -sL https://docs.techswan.online/scripts/searxng-setup.sh | sudo bash +# +set -euo pipefail + +echo "=== SearXNG Setup ===" + +# Docker確認 +if ! command -v docker &> /dev/null; then + echo "[INFO] Installing Docker..." + apt-get update + apt-get install -y docker.io +fi + +# docker-compose確認 +if ! docker compose version &> /dev/null 2>&1; then + echo "[INFO] Installing docker-compose-plugin..." + apt-get install -y docker-compose-plugin || apt-get install -y docker-compose +fi + +apt-get install -y curl jq + +# Dockerサービス有効化 +systemctl enable docker +systemctl start docker + +# SearXNG用ディレクトリ +mkdir -p /opt/searxng/searxng +cd /opt/searxng + +# docker-compose.yml作成 +cat > docker-compose.yml << 'EOF' +version: '3.8' + +services: + searxng: + image: searxng/searxng:latest + container_name: searxng + restart: unless-stopped + ports: + - "8080:8080" + volumes: + - ./searxng:/etc/searxng:rw + environment: + - SEARXNG_BASE_URL=http://localhost:8080 + cap_drop: + - ALL + cap_add: + - CHOWN + - SETGID + - SETUID +EOF + +# settings.yml作成 +cat > searxng/settings.yml << 'EOF' +use_default_settings: true + +general: + instance_name: "SearXNG Local" + debug: false + +search: + safe_search: 0 + autocomplete: "duckduckgo" + default_lang: "ja-JP" + formats: + - html + - json + +server: + secret_key: "$(openssl rand -hex 32)" + limiter: false + image_proxy: true + +ui: + static_use_hash: true + default_theme: simple + default_locale: "ja" + +engines: + - name: google + disabled: false + - name: bing + disabled: false + - name: duckduckgo + disabled: false + - name: brave + disabled: false + - name: wikipedia + disabled: false + - name: github + disabled: false + +outgoing: + request_timeout: 5.0 + max_request_timeout: 15.0 +EOF + +# secret_key生成 +SECRET_KEY=$(openssl rand -hex 32) +sed -i "s/\$(openssl rand -hex 32)/$SECRET_KEY/" searxng/settings.yml + +# 起動 +if docker compose version &> /dev/null 2>&1; then + docker compose up -d +else + docker-compose up -d +fi + +echo "" +echo "=== SearXNG Setup Complete ===" +echo "" +echo "Web UI: http://localhost:8080" +echo "API: http://localhost:8080/search?q=test&format=json" +echo "" +echo "Test:" +echo " curl 'http://localhost:8080/search?q=hello&format=json' | jq '.results[:3]'" +echo ""