1.前言
这是一个基于 Python 的完全开源免费搜索引擎平台,为你提供来自 Google、Bing、Yahoo 等 70 多种各大视频、图片、搜索、磁力等网站结果展示,并对搜索结果进行优化,同时不会存储你的任何搜索信息,搭建也十分方便。
注意,不能访问外网的话使用起来会受很多限制,所以不建议采用大陆服务器。
2.项目介绍
2.1项目地址
项目GitHub:searxng/searxng(github.com)
项目docker:searxng/searxng-docker(github.com)
2.2项目特色
- 尊重隐私、可定制的元搜索引擎。
- 桌面、平板和手机上自适应显示
- 支持暗夜模式(你可以在首选项中选择)
- 支持从右到左的语言
- 查看屏幕截图
- 支持Docker部署,还可以为ARM64和ARM/v7架构构建镜像(树莓派也能安装)
3.项目部署
3.1系统环境
这系统采用Ubuntu20.04/22.04均可,Debian和CentOS系统的小伙伴可以自行调整部署指令。
3.2安装docker
使用Ubuntu可以很便捷的安装docker以及docker-compose:
3.3部署SearXNG
创建安装目录:
1
2
3
4
5
|
mkdir -p /root/data/docker_data/searxng
cd /root/data/docker_data/searxng
git clone https://github.com/searxng/searxng-docker.git
cd searxng-docker
vi docker-compose.yaml
|
因为官方默认是试用caddy来反代的,有一个问题就是可能会和你网站上的80端口冲突,导致searXNG与你服务器上的其他网站无法共存,我们这边把caddy部分注释掉,改为采用NginxProxyManager进行反向代理。
切换到英文输入法,按下i
做如下修改。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
services:
# 我们注释掉caddy的内容
# 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
# - DAC_OVERRIDE
……
volumes:
# 我们注释掉caddy的内容
#caddy-data:
#caddy-config:
|
输入完成之后,切换到英文输入法,按下:wq
保存退出。
接着我们来编辑一下.env
文件。
1
2
|
cd /root/data/docker_data/searxng/searxng-docker
vi .env
|
切换到英文输入法,按下i
输入内容。
1
|
SEARXNG_HOSTNAME=你的域名!!!
|
只修改这一行,别的行都不用管!注意把前面的#
号去掉!
第二行的邮件不用管,那个是caddy申请的一个邮件,我们不用caddy。
输入完成之后,切换到英文输入法,按下:wq
保存退出。
1
2
|
cd /root/data/docker_data/searxng/searxng-docker
sed -i "s|ultrasecretkey|$(openssl rand -hex 32)|g" searxng/settings.yml # 生成一个密钥
|
最后运行:
1
2
|
cd /root/data/docker_data/searxng/searxng-docker
docker-compose up -d
|
完成后便可以通过ip:8180
进行访问。
4.更新与卸载
4.1更新
1
2
3
4
|
cp -r /root/data/docker_data/searxng/searxng-docker /root/data/docker_data/searxng/searxng-docker.archive # 万事先备份,以防万一
cd /root/data/docker_data/searxng/searxng-docker # 进入docker-compose所在的文件夹
docker-compose pull # 拉取最新的镜像
docker-compose up -d # 重新更新当前镜像
|
4.2卸载
1
2
3
|
cd /root/data/docker_data/searxng/searxng-docker # 进入docker-compose所在的文件夹
docker-compose down # 停止容器,此时不会删除映射到本地的数据
rm -rf /root/data/docker_data/searxng/searxng-docker # 完全删除映射到本地的数据
|