如何使用Docker部署SearXNG

 更新时间:2025年02月26日 16:18:34   作者:Ender_William  
本文介绍了如何使用DockerCompose部署SearXNG搜索引擎,并提供了配置代理、修改搜索格式和调用API的方法,感兴趣的朋友一起看看吧

SearXNG 搜索引擎

SearXNG 是一个整合了超过70个搜索服务结果的免费的私有互联网搜索引擎,用户不会被网站跟踪或被建立档案进行特征分析,良好地保障了用户的隐私。知识库可以有效地弥补大模型的知识欠缺问题,但依旧无法补充或弥补知识库和大模型知识陈旧的问题,于是让大模型联网成为了非常重要的功能。

本章将介绍如何使用 Docker Compose 部署属于私人的 SearXNG 服务,项目地址点击即跳转

Docker Compose 部署

可能会有小伙伴要问为啥不使用 SearXNG 官方维护的 SearXNG-Docker 项目 ?官方的这个项目默认使用的 Caddy 作为反向代理,最有可能出现的一个问题是会和你服务器上的 80 端口出现冲突,导致 SearXNG 无法与你的服务器上的其它网站共存。而注释掉官方项目中 docker-compose.yaml 有关 Caddy 的部分,就不如自行部署了。

首先创建一个路径用于存放配置文件。

mkdir {Your Path}\SearXNG && cd SearXNG

进入该路径之后使用 vim 创建 docker-compose.yaml 文件。

vim docker-compose.yaml

将下面的内容粘贴到文件内并保存

name: searxng
services:
  searxng:
    container_name: searxng
    image: searxng/searxng:latest
    restart: unless-stopped
    ports:
      - 8080:8080
    volumes:
      - ./searxng:/etc/searxng  # 默认在该文件所在的目录层级创建配置文件夹
    environment:
      - SEARXNG_BASE_URL=http://${SEARXNG_HOSTNAME:-localhost}/
      - SEARXNG_SECRET=${SEARXNG_SECRET}
      - SEARXNG_REDIS_URL=${SEARXNG_REDIS_URL:-redis://redis:6379}
      - UWSGI_WORKERS=${SEARXNG_UWSGI_WORKERS:-10}
      - UWSGI_THREADS=${SEARXNG_UWSGI_THREADS:-10}
		logging:
      driver: "json-file"
      options:
        max-size: "1m"
        max-file: "1"
    networks:
      1panel-network:
        ipv4_address: 172.18.0.239
  redis:
    image: redis:alpine
    container_name: searxng-redis
    networks:
      1panel-network:
        ipv4_address: 172.18.0.240
    command: redis-server --bind 0.0.0.0
networks:
  1panel-network:
    external: true

需要注意的是:所有的 Networks 部分需要根据你的 Docker 容器的实际网络配置进行修改,且需要确认分配的 ipv4_address 地址在 Docker 容器的网络内没有被占用。

保存之后使用下面的指令创建、更新并运行容器。

sudo docker-compose up -d

你可以看到,在 {Your Path}\SearXNG 路径之下,创建了一个新的文件夹 searxng,该文件夹用于存放配置文件 settings.yml

在浏览器输入网址 http://Server-IP:Port 即可访问搜索引擎。

定制 SearXNG Engine

Internet Proxy

该项目是一个国外主导的开源私人搜索引擎,因此由于众所周知的原因,只能访问少量的搜索引擎,例如:Bing[通用搜索]、Bilibili[视频搜索]、Github[信息技术]、Arxiv[学术] 等等。如果需要访问更多的搜索引擎,需要使用网络代理服务。

进入到部署路径的 searxng 文件夹,就是刚才生成的那个文件夹,里面有一个 settings.yml 文件,使用具有权限的 vim 打开。

sudo vim settings.yml

配置的位置位于 outgoing 部分,如下下面的这部分前面的 # 删除

  #  proxies:
  #    all://:
  #      - http://proxy1:8080
  #      - http://proxy2:8080

你可以配置一个或多个代理用于访问搜索引擎,需要将 http://proxy:8080 替换成你的代理的地址。

除此之外,还可以设置请求超时.

request_timeout: 3.0

修改完成后需要重启容器,设置立即生效。

Search Formats

项目默认的搜索返回的格式为 html 格式,在使用网络爬虫或其它形式的分析器调用 API 时,希望返回 json 格式,这时就需要修改返回格式。

进入到部署路径的 searxng 文件夹,就是刚才生成的那个文件夹,里面有一个 settings.yml 文件,使用具有权限的 vim 打开。

sudo vim settings.yml

配置的位置位于 search 部分,在 formats 后按照格式添加你需要的格式,如下所示。

# formats: [html, csv, json, rss]
formats:
  - html
  - csv
  - json
  - rss

修改完成之后需要重启容器,设置立即生效。

调用 API 时,可以指定开启的格式:

http://Server-IP:Port/search?q=xxx&format=json

效果如下:

SearXNG Search API

基础的API地址如下:

http://Server-IP:Port/search

搜索内容 q, required

http://Server-IP:Port/search?q=xxx

返回格式 format, optional

格式有 [ json, csv, rss ],三选一

http://Server-IP:Port/search?q=xxx&format=json

搜索分类 categories, optional

http://Server-IP:Port/search?q=xxx&categories=general

可选的类别有:

分类名称
general综合
images图片
videos视频
news新闻
map地图
music音乐
it信息技术
science科学
files文件
social_media社交媒体

搜索第几页的内容,推荐5页及以内。

http://Server-IP:Port/search?q=xxx&pageno=1

搜索引擎 engines, optional

http://Server-IP:Port/search?q=xxx&=apple&engines=google,bing,duckduckgo

具体的搜索引擎查询官方文档

到此这篇关于使用Docker部署SearXNG的文章就介绍到这了,更多相关Docker部署SearXNG内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 利用Docker部署PostgreSQL 12.4主从方式

    利用Docker部署PostgreSQL 12.4主从方式

    这篇文章主要介绍了利用Docker部署PostgreSQL 12.4主从方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • Docker部署Nuxt.js项目的实现

    Docker部署Nuxt.js项目的实现

    这篇文章主要介绍了Docker部署Nuxt.js项目的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • Docker Desktop 安装的详细步骤

    Docker Desktop 安装的详细步骤

    作为开发人员,在日常开发中,我们需要在本地去启动一些服务,可以使用Docker Desktop,本文主要介绍了Docker Desktop 安装的详细步骤,感兴趣的可以了解一下
    2023-08-08
  • Docker部署Nginx设置环境变量的实现步骤

    Docker部署Nginx设置环境变量的实现步骤

    本文主要介绍了Docker部署Nginx设置环境变量的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • docker如何进入启动容器查看内部目录结构

    docker如何进入启动容器查看内部目录结构

    这篇文章主要介绍了docker如何进入启动容器查看内部目录结构问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • Docker私有仓库打开2375端口的实现

    Docker私有仓库打开2375端口的实现

    本文主要介绍了Docker私有仓库打开2375端口的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • docker该如何删除已停止的容器

    docker该如何删除已停止的容器

    Docker是一个非常有趣的项目,容器是独立运行的一个或一组应用,及他们的运行环境,容器是Docker中的一个重要的概念,这篇文章主要给大家介绍了关于docker该如何删除已停止的容器的相关资料,需要的朋友可以参考下
    2023-05-05
  • 本地Docker安装Postgres 12 + pgadmin的方法 (支持Apple M1)

    本地Docker安装Postgres 12 + pgadmin的方法 (支持Apple M1)

    这篇文章主要介绍了本地Docker安装Postgres 12 + pgadmin的方法 (支持Apple M1),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • docker容器源码部署httpd用存储卷部署网站(推荐)

    docker容器源码部署httpd用存储卷部署网站(推荐)

    这篇文章主要介绍了docker容器源码部署httpd用存储卷部署网站,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-12-12
  • 使用Docker运行Microsoft SQL Server 2017的方法

    使用Docker运行Microsoft SQL Server 2017的方法

    本篇文章主要介绍了使用Docker运行Microsoft SQL Server 2017的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-11-11

最新评论