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.yaml和searxng/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
关闭成功。