MCP HubMCP Hub
Volver a habilidades

deploy-searxng

pjt222
Actualizado 2 days ago
7 vistas
17
2
17
Ver en GitHub
Documentacióngeneral

Acerca de

Esta habilidad despliega un motor de búsqueda meta SearXNG autoalojado utilizando Docker Compose, proporcionando una solución de búsqueda privada y sin rastreo. Configura ajustes, motores de búsqueda, proxy y un frontend Nginx con almacenamiento persistente. Úsala cuando necesites agregar resultados de múltiples proveedores o ejecutar una instancia de búsqueda compartida para equipos.

Instalación rápida

Claude Code

Recomendado
Principal
npx skills add pjt222/agent-almanac -a claude-code
Comando PluginAlternativo
/plugin add https://github.com/pjt222/agent-almanac
Git CloneAlternativo
git clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/deploy-searxng

Copia y pega este comando en Claude Code para instalar esta habilidad

Documentación

Deploy SearXNG

以 Docker Compose 與 Nginx 部署自託管 SearXNG 元搜尋引擎。

適用時機

  • 建私人、自託管之搜尋引擎
  • 聚合多搜尋提供者之結果而不追蹤
  • 為團隊或組織運行搜尋實例
  • 取代對單一搜尋提供者之依賴

輸入

  • 必需:已裝 Docker 之伺服器或機器
  • 可選:供公開訪問之網域名
  • 可選:SSL 憑證或 Let's Encrypt 設定
  • 可選:自定之引擎偏好

步驟

步驟一:建專案結構

mkdir -p searxng/{config,nginx}
cd searxng

步驟二:寫 Docker Compose 檔

docker-compose.yml

services:
  searxng:
    image: searxng/searxng:latest
    container_name: searxng
    volumes:
      - ./config:/etc/searxng:rw
    environment:
      - SEARXNG_BASE_URL=https://search.example.com/
    cap_drop:
      - ALL
    cap_add:
      - CHOWN
      - SETGID
      - SETUID
    restart: unless-stopped
    networks:
      - searxng

  nginx:
    image: nginx:1.27-alpine
    container_name: searxng-nginx
    ports:
      - "8080:80"
    volumes:
      - ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro
    depends_on:
      - searxng
    restart: unless-stopped
    networks:
      - searxng

networks:
  searxng:
    driver: bridge

步驟三:配 SearXNG 設定

config/settings.yml

use_default_settings: true

general:
  instance_name: "My SearXNG"
  privacypolicy_url: false
  contact_url: false

search:
  safe_search: 0
  autocomplete: "google"
  default_lang: "en"

server:
  secret_key: "generate-a-random-secret-key-here"
  limiter: true
  image_proxy: true
  port: 8080
  bind_address: "0.0.0.0"

ui:
  static_use_hash: true
  default_theme: simple
  infinite_scroll: true

engines:
  - name: google
    engine: google
    shortcut: g
    disabled: false

  - name: duckduckgo
    engine: duckduckgo
    shortcut: ddg
    disabled: false

  - name: wikipedia
    engine: wikipedia
    shortcut: wp
    disabled: false

  - name: github
    engine: github
    shortcut: gh
    disabled: false

  - name: stackoverflow
    engine: stackoverflow
    shortcut: so
    disabled: false

  - name: arxiv
    engine: arxiv
    shortcut: arx
    disabled: false

生密鑰:

openssl rand -hex 32

步驟四:配 Nginx 前端

nginx/nginx.conf

events {
    worker_connections 1024;
}

http {
    server {
        listen 80;

        location / {
            proxy_pass http://searxng:8080;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_set_header Connection "";
            proxy_buffering off;
        }

        location /static/ {
            proxy_pass http://searxng:8080/static/;
            expires 1y;
            add_header Cache-Control "public, immutable";
        }
    }
}

步驟五:配速率限制

config/limiter.toml

[botdetection.ip_limit]
link_token = true

[botdetection.ip_lists]
block_ip = []
pass_ip = ["127.0.0.1/8", "::1/128"]
pass_searxng_org = false

步驟六:部署並驗證

# Start the stack
docker compose up -d

# Check logs
docker compose logs -f searxng

# Verify it's running
curl -s http://localhost:8080 | head -5

# Test a search
curl -s "http://localhost:8080/search?q=test&format=json" | head -20

預期: SearXNG 透過 Nginx 於 8080 埠回應。搜尋查詢返回聚合結果。

失敗時:docker compose logs searxng 有無配置錯誤。驗 settings.yml YAML 語法。

步驟七:加 SSL(生產)

公開部署宜加 SSL 終止。更 docker-compose.yml

services:
  nginx:
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./nginx/nginx-ssl.conf:/etc/nginx/nginx.conf:ro
      - certbot-certs:/etc/letsencrypt:ro
      - certbot-webroot:/var/www/certbot:ro

  certbot:
    image: certbot/certbot
    volumes:
      - certbot-certs:/etc/letsencrypt
      - certbot-webroot:/var/www/certbot

volumes:
  certbot-certs:
  certbot-webroot:

完整 SSL Nginx 配置,見 configure-nginx 技能。

步驟八:更新與維護

# Pull latest image
docker compose pull searxng

# Restart with new image
docker compose up -d

# Backup configuration
cp -r config/ config-backup-$(date +%Y%m%d)/

驗證

  • SearXNG 啟動,日誌無誤
  • 搜尋查詢返回已配引擎之結果
  • 圖片代理運作(圖片透過 SearXNG 載入)
  • 速率限制器阻過量請求
  • 配置於容器重啟後仍存
  • Nginx 正確代理請求

常見陷阱

  • 缺 secret_key:SearXNG 若無 settings.yml 中之 secret_key 則拒啟動。
  • 配置權限:SearXNG 寫入配置目錄。卷宗須為 :rw:ro
  • 引擎封鎖:某些引擎可能阻伺服器 IP 之請求。輪換引擎或用圖片代理。
  • YAML 縮排settings.yml 對縮排敏感。部署前以 YAML 檢查器驗之。
  • 基礎 URL 不符SEARXNG_BASE_URL 須合用戶實際訪問之 URL,含協定與末尾斜線。
  • Docker 內 DNS 解析:用 Google/Bing 之引擎可能需主機網路或合適之 DNS。預設 Docker DNS 通常可。

相關技能

  • setup-compose-stack - 此處所用之一般 Docker Compose 模式
  • configure-nginx - SSL 與安全標頭之 Nginx 配置
  • configure-reverse-proxy - Nginx 前端之高級代理模式

Repositorio GitHub

pjt222/agent-almanac
Ruta: i18n/wenyan-lite/skills/deploy-searxng
0
agentsagentskillsai-assisted-developmentclaude-codeskillsteams

Habilidades relacionadas

railway-docs

Documentación

Esta habilidad obtiene la documentación actual de Railway para responder preguntas sobre características, funcionalidad o URLs específicas de documentación. Garantiza que los desarrolladores reciban información precisa y actualizada directamente de las fuentes oficiales de Railway. Úsala cuando los usuarios pregunten cómo funciona Railway o hagan referencia a la documentación de Railway.

Ver habilidad

n8n-code-python

Documentación

Esta Skill de Claude proporciona orientación experta para escribir código Python en los nodos Code de n8n, específicamente para usar la biblioteca estándar de Python y trabajar con la sintaxis especial de n8n como `_input`, `_json` y `_node`. Ayuda a los desarrolladores a comprender las limitaciones de Python dentro de n8n y recomienda usar JavaScript para la mayoría de los flujos de trabajo, mientras ofrece soluciones en Python para necesidades específicas de transformación de datos.

Ver habilidad

archon

Documentación

La habilidad Archon proporciona búsqueda semántica con tecnología RAG y gestión de proyectos a través de una API REST. Úsala para consultar documentación, gestionar proyectos/tareas jerárquicos y realizar recuperación de conocimiento con capacidades de carga de documentos. Prioriza siempre a Archon en primer lugar al buscar en documentación externa antes de utilizar otras fuentes.

Ver habilidad

n8n-code-javascript

Documentación

Esta habilidad de Claude proporciona orientación experta para escribir código JavaScript en los nodos de Código de n8n. Cubre sintaxis esencial específica de n8n como las variables `$input`/`$json`, ayudantes HTTP y manejo de DateTime, mientras soluciona errores comunes. Úsela al desarrollar flujos de trabajo en n8n que requieran procesamiento personalizado de JavaScript en los nodos de Código.

Ver habilidad