简介
SearXNG 是一个免费的互联网元搜索引擎,它从各种搜索服务和数据库中聚合结果。用户既不被追踪也不被建立档案。
它的信息来源于其他搜索引擎的信息汇总,(并不会返回广告内容);SearXNG 会为你的每次搜索生成随机浏览器配置文件,而且其他搜索引擎获取到的 IP 是你的实例 IP,这就保证了其他搜索引擎无法获取到你的真实信息。
以下内容摘取自 SearXNG 官方文档 https://docs.searxng.org/
SearXNG 是一个免费的互联网元搜索引擎,它汇总了来自 70 多个搜索服务的结果。用户既不被跟踪也不被分析。 SearXNG 如何保护隐私:
无论实例的类型(私有、公共)如何,SearXNG 都以多种方式保护其用户的隐私。从搜索请求中删除私人数据有三种形式:
- 从前往搜索服务的请求中删除私人数据
- 不通过搜索服务(例如广告)转发来自第三方服务的任何内容
- 从转到结果页面的请求中删除私有数据
删除私人数据意味着不向外部搜索引擎发送 cookie 并为每个请求生成随机浏览器配置文件。因此,公共或私有实例是否处理请求并不重要,因为它在两种情况下都是匿名的。IP 地址将是实例的 IP。
与大多数搜索服务不同,SearXNG 不提供广告或跟踪内容。因此,私人数据不会转发给可能将其货币化的第三方。除了保护用户免受搜索服务之外,引用页面和搜索查询都对访问的结果页面隐藏。
前置条件
- 一个域名,如
searx.example.com
,用于启用证书和配置 HTTPS
- 一台 Linux 服务器,需要至少 512MB 可用内存
- Docker 和 Docker Compose 已安装
- Git ,用于克隆 SearXNG 代码
安装
克隆配置文件
1 2 3
| cd /usr/local git clone https://github.com/searxng/searxng-docker.git cd searxng-docker
|
修改配置文件
接下来我们修改 SearXNG 所需要的配置文件
docker-compose.yml
文件
完整代码如下:
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 66 67 68 69 70 71 72 73 74 75 76 77 78 79
| 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:80} - 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: - "127.0.0.1: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:
|
有两种方式托管 SearXNG。第一种不需要任何关于自托管的先验知识,因此推荐初学者使用。它包括 caddy 作为反向代理,并自动为您处理 TLS 证书。第二种推荐给已经拥有自己的反向代理(例如 Nginx、HAProxy 等)并且可能在他们的机器上运行其他服务的更高级用户。两种安装方法的最初几个步骤是相同的。
在默认的配置文件中,使用了第一种安装方式。
2. .env
文件
编辑 .env 文件以设置主机名和电子邮件
3. 生成密钥
1
| sed -i "s|ultrasecretkey|$(openssl rand -hex 32)|g" searxng/settings.yml
|
- 编辑
searxng/settings.yml
以满足您的需求
运行
方法 1:包含 Caddy(推荐初学者使用)
在后台运行 SearXNG: docker compose up -d
方法 2:自带反向代理(有经验的用户)
- 删除 docker-compose.yaml 中的 caddy 相关部分,例如 caddy 服务及其卷。
- 将反向代理指向在 docker-compose.yml (默认为 8080)中设置的 searxng 服务端口。
- 生成并配置所需的 TLS 证书,使用您选择的反向代理。
- 在后台运行 SearXNG: docker compose up -d
下面给出我使用的yaml文件,以供参考。
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
| version: "3.7"
services: 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: - "8760: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_add: - CHOWN - SETGID - SETUID logging: driver: "json-file" options: max-size: "1m" max-file: "1"
networks: searxng:
volumes: caddy-data: caddy-config: valkey-data2:
|
如何更新
1 2 3
| git pull docker compose pull docker compose up -d
|
注意
请尽量不要使用国内的服务器进行搭建,否则可能因为服务器无法访问国外某些服务,导致搭建失败