项目介绍

一个基于 Python 的完全开源免费搜索引擎平台,为你提供来自 Google、Bing、Yahoo 等 70 多种各大视频、图片、搜索、磁力等网站结果展示,并对搜索结果进行优化,同时不会存储你的任何搜索信息,搭建也很方便。

该项目不包含百度搜索等国内搜素引擎,因此建议在国外服务器上搭建。

如搭建在国内服务器上,建议使用代理。

尊重隐私、可定制的元搜索引擎。

SearXNG是searx的一个分支。(原因是内部对项目发展的想法不一)

以下是一些特性:

  • 桌面、平板和手机上自适应显示
  • 支持暗夜模式(你可以在首选项中选择)
  • 支持从右到左的语言
  • 查看屏幕截图
  • 支持Docker部署,还可以为ARM64和ARM/v7架构构建镜像(树莓派也能安装)

官方GitHub仓库:

官方Docker GitHub仓库: https://github.com/searxng/searxng-docker

官方DockerHub仓库:https://hub.docker.com/r/searxng/searxng

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

官方Demo:https://searx.space

本人自建Demo:https://search.nice2cu.cc

项目搭建

  1. 创建安装目录
1
mkdir root/docker_data/searxng
  1. 在创建的文件夹下拉取官方GitHub仓库
1
2
cd root/docker_data/searxng
git clone https://github.com/searxng/searxng-docker.git
  1. 进入到克隆下来的目录,编辑docker-compose.yaml文件
  • 官方GitHub仓库中的yaml文件使用的是caddy反代,有一个问题就是可能会和你网站上的80端口冲突,导致searXNG与你服务器上的其他网站无法共存,我们这边把caddy部分注释掉或者删掉,改为采用NginxProxyManager配置反代。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
version: '3.7'

services:

# caddy:
# container_name: caddy
# image: caddy:2-alpine
# network_mode: host
# volumes:
# - ./Caddyfile:/etc/caddy/Caddyfile:ro
# - caddy-data:/data:rw
# - caddy-config:/config:rw
# environment:
# - SEARXNG_HOSTNAME=${SEARXNG_HOSTNAME:-http://localhost:80}
# - SEARXNG_TLS=${LETSENCRYPT_EMAIL:-internal}
# cap_drop:
# - ALL
# cap_add:
# - NET_BIND_SERVICE

redis:
container_name: redis
image: "redis:alpine"
command: redis-server --save "" --appendonly "no"
networks:
- searxng
tmpfs:
- /var/lib/redis
cap_drop:
- ALL
cap_add:
- SETGID
- SETUID
- DAC_OVERRIDE

searxng:
container_name: searxng
image: searxng/searxng:latest
networks:
- searxng
ports:
- "127.0.0.1:8080:8080"
volumes:
- ./searxng:/etc/searxng:rw
environment:
- SEARXNG_BASE_URL=https://${SEARXNG_HOSTNAME:-localhost}/
cap_drop:
- ALL
cap_add:
- CHOWN
- SETGID
- SETUID
logging:
driver: "json-file"
options:
max-size: "1m"
max-file: "1"
networks:
searxng:
ipam:
driver: default

# volumes:
# caddy-data:
# caddy-config:
  1. 如果需要配置反向代理,使用域名访问,则需要编辑目录下的.env文件,取消SEARXNG_HOSTNAME注释,添加自己的域名
1
2
3
4
5
6
7
# By default listen on https://localhost
# To change this:
# * uncomment SEARXNG_HOSTNAME, and replace <host> by the SearXNG hostname
# * uncomment LETSENCRYPT_EMAIL, and replace <email> by your email (require to create a Let's Encrypt certificate)

SEARXNG_HOSTNAME=yourdomain.com
# LETSENCRYPT_EMAIL=<email>
  1. yaml文件路径下,运行以下代码,运行docker容器
1
docker-compose up -d
  1. 容器运行后使用ip:8080即可访问SearXNG。如果不能访问,请查看防火墙是否放行该端口(腾讯云,阿里云,华为云,甲骨文等服务器提供商需在控制台面板手动关闭防火墙并放行端口)。如果配置了反代,则通过域名就可以访问。

  2. 更新命令

1
2
3
cd root/docker_data/searxng/searxng-docker
docker-compose up -d # 重新拉取镜像并运行镜像
docker image prune # 删除旧版本的镜像

反向代理

查看【Docker项目】Nginx Proxy Manager反向代理)

配置文件编辑

docker文件路径下的./searxng/settings.yml可以更改搜索引擎的一些默认设置。比如默认开启的搜索引擎,搜索引擎的自动补全以及一些界面的设置。

具体的设置和可选项详见官方文档:https://docs.searxng.org