当前位置: 首页 > article >正文

开源元搜索引擎SearXNG:使用Docker详细搭建部署与使用

         SearXNG是一款基于Python开发的开源免费互联网元搜索引擎,于2021年从SearX分叉而来。它聚合了来自如Google、Bing等众多搜索引擎及不同数据库的结果,集成超100种公开搜索引擎资源,覆盖综合、新闻、图片等11大类。SearXNG极其注重隐私保护,不会追踪用户或建立档案,采用随机浏览器档案、以实例IP为来源、不使用Cookie等措施。它支持用户自定义搜索引擎,可根据喜好调整默认语言等设置,还具有多语言支持、安全加密连接等特点,并且能轻松部署在NAS、通过Docker部署或手动部署在服务器上,为用户提供了一个私密、可定制、功能强大的搜索工具。

        本文将详细介绍在Windows系统上使用Docker搭建Searxng的步骤以及使用,注意:项目的部署需要用户了解并熟悉Anaconda、Pytorch等框架;

项目地址:https://github.com/searxng/searxng-docker

官方文档:https://docs.searxng.org/

安装 Docker 和 Docker Compose

在开始部署 SearXNG 之前,需要在电脑上安装Docker Desktop。

下载完毕后,确保 Docker Desktop 已经正确安装并且正在运行。你可以在任务栏或系统托盘中找到 Docker 图标来确认其状态。

若未能启动或显示Docker stopping,请参考Docker安装与部署文章。

对于docker compose,

通常 Docker Compose 已经自动包含在内。你可以通过以下步骤进行验证:打开命令提示符或 PowerShell,输入以下命令查看 Docker Compose 版本:

docker compose version

 如果显示出版本信息,说明 Docker Compose 已正确安装;若提示找不到命令,可尝试重新安装 Docker Desktop 来解决。

部署Searxng

若不使用Git方法下载镜像的话,打开Searxng的项目地址:

点击Download ZIP

将下载的压缩包解压到任意位置,如:E:\python_project\searxng-docker-master

注意此时要修改以下几处:

主要修改docker-compose.yamlsearxng/settings.yml:(直接复制粘贴即可)

docker-compose.yaml:

version: "3.7"

services:
  caddy:
    container_name: caddy
    image: docker.io/library/caddy:2-alpine
    network_mode: host
    restart: unless-stopped
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile:ro
      - caddy-data:/data:rw
      - caddy-config:/config:rw
    environment:
      - SEARXNG_HOSTNAME=${SEARXNG_HOSTNAME:-http://localhost}
      - SEARXNG_TLS=${LETSENCRYPT_EMAIL:-internal}
    cap_drop:
      - ALL
    cap_add:
      - NET_BIND_SERVICE
    logging:
      driver: "json-file"
      options:
        max-size: "1m"
        max-file: "1"

  redis:
    container_name: redis
    image: docker.io/valkey/valkey:8-alpine
    command: valkey-server --save 30 1 --loglevel warning
    restart: unless-stopped
    networks:
      - searxng
    volumes:
      - valkey-data2:/data
    cap_drop:
      - ALL
    cap_add:
      - SETGID
      - SETUID
      - DAC_OVERRIDE
    logging:
      driver: "json-file"
      options:
        max-size: "1m"
        max-file: "1"

  searxng:
    container_name: searxng
    image: docker.io/searxng/searxng:latest
    restart: unless-stopped
    networks:
      - searxng
    ports:
      - "8080:8080"
    volumes:
      - ./searxng:/etc/searxng:rw
    environment:
      - SEARXNG_BASE_URL=https://${SEARXNG_HOSTNAME:-localhost}/
      - UWSGI_WORKERS=${SEARXNG_UWSGI_WORKERS:-4}
      - UWSGI_THREADS=${SEARXNG_UWSGI_THREADS:-4}
    cap_drop:
      - ALL
    cap_add:
      - CHOWN
      - SETGID
      - SETUID
    logging:
      driver: "json-file"
      options:
        max-size: "1m"
        max-file: "1"

networks:
  searxng:

volumes:
  caddy-data:
  caddy-config:
  valkey-data2:

这里主要是修改了端口映射:- "127.0.0.1:8080:8080"改成了- "8080:8080"。这样可以使用允许任意ip访问。

 searxng/settings.yml:

# see https://docs.searxng.org/admin/settings/settings.html#settings-use-default-settings
use_default_settings: true
server:
  # base_url is defined in the SEARXNG_BASE_URL environment variable, see .env and docker-compose.yml
  secret_key: "这里填你随便一个密码即可"  # change this!
  limiter: true  # can be disabled for a private instance
  image_proxy: true
ui:
  static_use_hash: true
redis:
  url: redis://redis:6379/0
search:
  safe_search: 0
  autocomplete: ""
  default_lang: ""
  formats:
    - html
    - json
    - csv
    - rss
ratelimit:
    enabled: true
    # 调整每秒允许的请求数
    per_second: 5  
    # 调整每分钟允许的请求数
    per_minute: 60  

这里主要是修改了secret_key,不允许为默认值,调整了每秒每分允许的请求数,避免在运行时出错,以及search的formats允许返回json格式(一定要加,否则报403错误)。下面就可以直接启动服务了。

运行Searxng

运行Searxng时,一定要确保Docker在运行中,

打开win+r

输入:PowerShell

进入Searxng所在的文件夹,例如:E:\python_project\searxng-docker-master

cd E:\python_project\searxng-docker-master

然后输入启动命令:

docker-compose up -d

结果如图:

表示启动成功,接下来验证是否有效,

 打开电脑浏览器,在地址栏输入:http://localhost:8080/search

搜索问题:

部署成功。

此时我们打开Docker Desktop:

就会发现容器在运行中。

最后不要 忘记关闭:

也是在PowerShell中输入:

docker compose down

关闭成功。 


http://www.kler.cn/a/552927.html

相关文章:

  • 【OS安装与使用】part4-ubuntu22.04安装anaconda
  • 【R语言】绘图
  • ONNX Runtime 与 CUDA、cuDNN 的版本对应
  • “三次握手”与“四次挥手”:TCP传输控制协议连接过程
  • 在Kubernetes上部署DeepSeek-R1进行高效AI推理
  • C#```
  • 一文读懂Docker之Docker Compose
  • 论文笔记-WSDM2024-LLMRec
  • 02.19 构造函数
  • MYSQL数据库特殊查询-INFORMATION_SCHEMA
  • 鉴源实验室·智能网联汽车协议数据传输安全分析与防护
  • Word Embeddings
  • 【Linux进程概念】—— 操作系统中的“生命体”,计算机里的“多线程”
  • VSCode 中 Git 添加了多个远端,如何设置默认远端
  • QT C++ new QTableWidgetItem 不需要删除指针
  • Leetcodehot100(链表篇)
  • N-bit ADC过采样和L阶噪声整形后的SQNR表达式
  • 火语言RPA--Excel关闭保存文档
  • 【落羽的落羽 数据结构篇】栈和队列
  • 从零开始学习服务网格:2025全面指南