安装searxng提供给lobechat使用(个人记录)
【lobechat能用searchxng了】 - 开发调优 - LINUX DO
看这个帖子感觉新的搜索功能好像很好用,于是来部署一下。
前情提要:我在自己的服务器(已经部署过数据库版的lobechat)上使用 caddy-docker-proxy 容器管理所有反向代理;已经创建过一个外部网络ext;每次部署新的服务(容器)时只需要加上labels标签(像下面这样)来绑定域名 + 让需要对外暴露的容器都加入ext网络即可。
1
2
3 labels:
caddy: searxng.my.domain
caddy.reverse_proxy: "{{upstreams 8080}}"
安装 searxng 并绑定域名
把repo拉下来
1 | git clone https://github.com/searxng/searxng-docker.git |
修改.env文件
设置 hostname 为自己的域名,设置一个电子邮件(生成密钥会用到)。
1 | SEARXNG_HOSTNAME=searxng.my.domain |
生成密钥
sed -i "s|ultrasecretkey|$(openssl rand -hex 32)|g" searxng/settings.yml
修改 docker-compose 文件
这个官方的docker-compose文件里自带了一个caddy容器,如果自己服务器配置过反向代理的话就要删掉相关的内容。
首先,删掉caddy相关的内容。services下的caddy那部分全部需要删掉(我vps上安装过了 caddy-docker-proxy),volumes下面也有要删的。
然后就是services下的searxng部分,networks加一个ext,再加一个labels标签。
1 | networks: |
最后还要在networks下添加ext:
1 | networks: |
修改配置文件 searxng/settings.yml
默认只有html格式,但lobechat需要的是json,所以加上这几行。
1 | search: |
启动
docker-compose up -d
现在就可以访问 https://searxng.my.domain/ 使用网页版 searxng 了。
修改 lobechat 的 .env 文件
也可以在 docker-compose 文件里加环境变量,我部署的时候是都放在 .env 文件里的。加上这行:
SEARXNG_URL=https://searxng.my.domain/
重启lobechat。就可以在 lobechat 里使用最新的联网搜索功能了。
不绑定域名只暴露给lobechat使用
不需要用到网页的话或者担心放在公网被fofa扫到了太多人拿去用的话,可以只暴露给 lobechat 。
把 searxng 的 docker-compose 文件的 SEARXNG_BASE_URL 变量的值改一下就行。因为我的所有容器(包括lobechat)都加入了 ext 网络,所以在lobechat的容器内直接使用容器名 searxng 就能访问到 searxng 服务。
1 | environment: |
然后还要删掉上面加的两行caddy标签。
lobechat 的环境变量当然也要改一下。
SEARXNG_URL=http://searxng:8080/
然后都要重启一下就OK啦。
