Add: SearXNGワンライナースクリプト
All checks were successful
Deploy Docusaurus Site / deploy (push) Successful in 25s

This commit is contained in:
koide 2026-02-22 23:56:52 +00:00
parent e19148d0bb
commit 5438f2fdef
2 changed files with 131 additions and 1 deletions

View File

@ -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
# 必要なパッケージ

View File

@ -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 ""