SearchXNG部署指南

Kaku Lv3

简介

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 所需要的配置文件

  1. docker-compose.yml 文件
1
nano 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
  1. 编辑 searxng/settings.yml 以满足您的需求

运行

方法 1:包含 Caddy(推荐初学者使用)

在后台运行 SearXNG: docker compose up -d

方法 2:自带反向代理(有经验的用户)

  1. 删除 docker-compose.yaml 中的 caddy 相关部分,例如 caddy 服务及其卷。
  2. 将反向代理指向在 docker-compose.yml (默认为 8080)中设置的 searxng 服务端口。
  3. 生成并配置所需的 TLS 证书,使用您选择的反向代理。
  4. 在后台运行 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_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:

如何更新

1
2
3
git pull
docker compose pull
docker compose up -d

注意

请尽量不要使用国内的服务器进行搭建,否则可能因为服务器无法访问国外某些服务,导致搭建失败

  • 标题: SearchXNG部署指南
  • 作者: Kaku
  • 创建于 : 2024-12-04 09:17:03
  • 更新于 : 2024-12-04 10:13:40
  • 链接: https://www.kakunet.top/2024/12/04/SearchXNG部署指南/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论