准备玩OpenClaw,为它构建个本地搜索服务器SearXNG。

安装

用官方脚本安装,很简单。系统debian13.7。

$ cd /usr/local/src
$ git clone https://github.com/searxng/searxng.git searxng
$ cd searxng
$ sudo -H ./utils/searxng.sh install all

升级

sudo -H ./utils/searxng.sh instance update

配置

配置文件默认为/etc/searxng/settings.yml

use_default_settings: true

general:
  debug: false
  instance_name: "SearXNG"

search:
  safe_search: 2
  autocomplete: 'duckduckgo'
  formats:
    - html
    - json #启用json,OpenClaw依赖format=json

server:
  # Is overwritten by ${SEARXNG_SECRET}
  secret_key: "一串KEY"
  limiter: false #关闭限流
  public_instance: false
  image_proxy: true
  # public URL of the instance, to ensure correct inbound links. Is overwritten
  # by ${SEARXNG_BASE_URL}.
  # base_url: http://example.com/location

valkey:
  # URL to connect valkey database. Is overwritten by ${SEARXNG_VALKEY_URL}.
  url: valkey://localhost:6379/0

outgoing:
  proxies:
    http: http://代理服务器:端口  #一定要配置代理,要不各种超时。
    https: http://代理服务器:端口

配合NGINX使用,方便局域网自己使用搜索服务

安装nginx

apt-get install nginx

在/etc/nginx/sites-enabled中创建vhost文档:searxng.conf,内容参考

server {

server_name searxng.awei.pub;

location / {

    uwsgi_pass unix:///usr/local/searxng/run/socket;

    include uwsgi_params;

    uwsgi_param    HTTP_HOST             $host;
    uwsgi_param    HTTP_CONNECTION       $http_connection;

    # see flaskfix.py
    uwsgi_param    HTTP_X_FORWARDED_PROTO  $scheme;
    uwsgi_param    HTTP_X_SCRIPT_NAME    /searxng;

    # see botdetection/trusted_proxies.py
    uwsgi_param    HTTP_X_REAL_IP        $remote_addr;
    uwsgi_param    HTTP_X_FORWARDED_FOR  $proxy_add_x_forwarded_for;
}

    listen 443 ssl; # managed by Certbot
    listen [::]:443 ssl;
    http2 on;
    ssl_certificate /usr/local/etc/nginx/ssl/cert.pem; # managed by Certbot
    ssl_certificate_key /usr/local/etc/nginx/ssl/key.pem; # managed by Certbot
    include /usr/local/etc/nginx/ssl/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /usr/local/etc/nginx/ssl/dhparam.pem; # managed by Certbot
    add_header Strict-Transport-Security "max-age=31536000";

# To serve the static files via the HTTP server
#
# location /searxng/static/ {
#     alias /usr/local/searxng/searxng-src/searx/static/;
# }
}

激活vhost配置

sudo -H ln -s /etc/nginx/sites-available/searxng.conf \
              /etc/nginx/sites-enabled/searxng.conf

重启服务

sudo -H systemctl restart nginx
sudo -H service uwsgi restart searxng

注意几个小坑:

  1. 要给searxng配置代理,要不,各种超时;
  2. 要启用json,要不,openclaw用不了
  3. 要关闭limiter,要不限流。