如何使用Docker部署SearXNG
SearXNG 搜索引擎
SearXNG 是一個(gè)整合了超過(guò)70個(gè)搜索服務(wù)結(jié)果的免費(fèi)的私有互聯(lián)網(wǎng)搜索引擎,用戶不會(huì)被網(wǎng)站跟蹤或被建立檔案進(jìn)行特征分析,良好地保障了用戶的隱私。知識(shí)庫(kù)可以有效地彌補(bǔ)大模型的知識(shí)欠缺問(wèn)題,但依舊無(wú)法補(bǔ)充或彌補(bǔ)知識(shí)庫(kù)和大模型知識(shí)陳舊的問(wèn)題,于是讓大模型聯(lián)網(wǎng)成為了非常重要的功能。
本章將介紹如何使用 Docker Compose 部署屬于私人的 SearXNG 服務(wù),項(xiàng)目地址點(diǎn)擊即跳轉(zhuǎn)。
Docker Compose 部署
可能會(huì)有小伙伴要問(wèn)為啥不使用 SearXNG 官方維護(hù)的 SearXNG-Docker 項(xiàng)目 ?官方的這個(gè)項(xiàng)目默認(rèn)使用的 Caddy 作為反向代理,最有可能出現(xiàn)的一個(gè)問(wèn)題是會(huì)和你服務(wù)器上的 80 端口出現(xiàn)沖突,導(dǎo)致 SearXNG 無(wú)法與你的服務(wù)器上的其它網(wǎng)站共存。而注釋掉官方項(xiàng)目中 docker-compose.yaml 有關(guān) Caddy 的部分,就不如自行部署了。
首先創(chuàng)建一個(gè)路徑用于存放配置文件。
mkdir {Your Path}\SearXNG && cd SearXNG進(jìn)入該路徑之后使用 vim 創(chuàng)建 docker-compose.yaml 文件。
vim docker-compose.yaml
將下面的內(nèi)容粘貼到文件內(nèi)并保存
name: searxng
services:
searxng:
container_name: searxng
image: searxng/searxng:latest
restart: unless-stopped
ports:
- 8080:8080
volumes:
- ./searxng:/etc/searxng # 默認(rèn)在該文件所在的目錄層級(jí)創(chuàng)建配置文件夾
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 部分需要根據(jù)你的 Docker 容器的實(shí)際網(wǎng)絡(luò)配置進(jìn)行修改,且需要確認(rèn)分配的 ipv4_address 地址在 Docker 容器的網(wǎng)絡(luò)內(nèi)沒(méi)有被占用。
保存之后使用下面的指令創(chuàng)建、更新并運(yùn)行容器。
sudo docker-compose up -d
你可以看到,在 {Your Path}\SearXNG 路徑之下,創(chuàng)建了一個(gè)新的文件夾 searxng,該文件夾用于存放配置文件 settings.yml。
在瀏覽器輸入網(wǎng)址 http://Server-IP:Port 即可訪問(wèn)搜索引擎。

定制 SearXNG Engine
Internet Proxy
該項(xiàng)目是一個(gè)國(guó)外主導(dǎo)的開源私人搜索引擎,因此由于眾所周知的原因,只能訪問(wèn)少量的搜索引擎,例如:Bing[通用搜索]、Bilibili[視頻搜索]、Github[信息技術(shù)]、Arxiv[學(xué)術(shù)] 等等。如果需要訪問(wèn)更多的搜索引擎,需要使用網(wǎng)絡(luò)代理服務(wù)。
進(jìn)入到部署路徑的 searxng 文件夾,就是剛才生成的那個(gè)文件夾,里面有一個(gè) settings.yml 文件,使用具有權(quán)限的 vim 打開。
sudo vim settings.yml
配置的位置位于 outgoing 部分,如下下面的這部分前面的 # 刪除
# proxies: # all://: # - http://proxy1:8080 # - http://proxy2:8080
你可以配置一個(gè)或多個(gè)代理用于訪問(wèn)搜索引擎,需要將 http://proxy:8080 替換成你的代理的地址。
除此之外,還可以設(shè)置請(qǐng)求超時(shí).
request_timeout: 3.0
修改完成后需要重啟容器,設(shè)置立即生效。
Search Formats
項(xiàng)目默認(rèn)的搜索返回的格式為 html 格式,在使用網(wǎng)絡(luò)爬蟲或其它形式的分析器調(diào)用 API 時(shí),希望返回 json 格式,這時(shí)就需要修改返回格式。
進(jìn)入到部署路徑的 searxng 文件夾,就是剛才生成的那個(gè)文件夾,里面有一個(gè) settings.yml 文件,使用具有權(quán)限的 vim 打開。
sudo vim settings.yml
配置的位置位于 search 部分,在 formats 后按照格式添加你需要的格式,如下所示。
# formats: [html, csv, json, rss] formats: - html - csv - json - rss
修改完成之后需要重啟容器,設(shè)置立即生效。
調(diào)用 API 時(shí),可以指定開啟的格式:
http://Server-IP:Port/search?q=xxx&format=json
效果如下:

SearXNG Search API
基礎(chǔ)的API地址如下:
http://Server-IP:Port/search
搜索內(nèi)容 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 | 音樂(lè) |
| it | 信息技術(shù) |
| science | 科學(xué) |
| files | 文件 |
| social_media | 社交媒體 |
搜索第幾頁(yè)的內(nèi)容,推薦5頁(yè)及以內(nèi)。
http://Server-IP:Port/search?q=xxx&pageno=1
搜索引擎 engines, optional
http://Server-IP:Port/search?q=xxx&=apple&engines=google,bing,duckduckgo
具體的搜索引擎查詢官方文檔
到此這篇關(guān)于使用Docker部署SearXNG的文章就介紹到這了,更多相關(guān)Docker部署SearXNG內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
docker 中的–mount 和-v 參數(shù)區(qū)別解析
這篇文章主要介紹了docker 中的–mount 和-v 參數(shù)區(qū)別解析,--mount 更為靈活,適用于更復(fù)雜的掛載需求,使用哪種方式主要取決于個(gè)人或團(tuán)隊(duì)的偏好和具體的使用場(chǎng)景,需要的朋友可以參考下2023-12-12
Dockerfile 中 VOLUME 與 docker -v 的區(qū)別說(shuō)明
這篇文章主要介紹了Dockerfile 中 VOLUME 與 docker -v 的區(qū)別說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-03-03
在Docker容器下運(yùn)行cronjob的全過(guò)程
當(dāng)您想要安排計(jì)劃任務(wù),可以使用內(nèi)置在 macOS 和 Linux 中的常見(jiàn)工具,比如 cron,或者像 AWS Lambda 這樣的特殊工具,,Cron 不如 AWS Lambda 強(qiáng)大,但它在 Unix 系統(tǒng)的后臺(tái)任務(wù)中工作得很好,特別是在使用容器的情況下,本文給大家介紹了在Docker容器下運(yùn)行cronjob的全過(guò)程2026-01-01
Docker?pull時(shí)報(bào)錯(cuò):https://registry-1.docker.io/v2/完美解決辦法
這篇文章主要介紹了Docker?pull時(shí)報(bào)錯(cuò):https://registry-1.docker.io/v2/完美解決辦法,文中通過(guò)代碼提供了詳細(xì)的解決步驟,包括檢查網(wǎng)絡(luò)連接、確保Docker服務(wù)正常運(yùn)行以及更換Docker源,需要的朋友可以參考下2026-01-01
Docker安裝Presto連接Hive的詳細(xì)過(guò)程
這篇文章主要介紹了Docker安裝Presto連接Hive的詳細(xì)過(guò)程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-09-09
Docker搭建Harbor公開倉(cāng)庫(kù)的方法示例
這篇文章主要介紹了Docker搭建Harbor公開倉(cāng)庫(kù)的方法示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06

