【docker】自建一个属于自己的搜索引擎平台——SearXNG

【docker】自建一个属于自己的搜索引擎平台——SearXNG

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

注意,不能访问外网的话使用起来会很不舒服。

所以要搭建的话建议采用非大陆服务器,不建议采用大陆服务器。

2.项目介绍2.1项目地址项目文档:Welcome to SearXNG

项目GitHub:searxng/searxng(github.com)

项目docker:searxng/searxng-docker(github.com)

本文参考文档:blog.laoda.de/archives/docker-compose-install-searxng

2.2项目特色尊重隐私、可定制的元搜索引擎。桌面、平板和手机上自适应显示支持暗夜模式(你可以在首选项中选择)支持从右到左的语言查看屏幕截图支持Docker部署,还可以为ARM64和ARM/v7架构构建镜像(树莓派也能安装)3.项目部署3.1系统环境这系统采用Ubuntu20.04/22.04均可,Debian和CentOS系统的小伙伴可以自行调整部署指令。

3.2安装docker使用Ubuntu可以很便捷的安装docker以及docker-compose:

代码语言:javascript复制snap install docker3.3部署SearXNG创建安装目录:

代码语言:javascript复制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

rm -f docker-compose.yaml

vim docker-compose.yaml因为官方默认是试用caddy来反代的,有一个问题就是可能会和你网站上的80端口冲突,导致searXNG与你服务器上的其他网站无法共存,我们这边把caddy部分注释掉,改为采用NginxProxyManager进行反向代理。

切换到英文输入法,按下i输入内容。

代码语言:javascript复制version: '3.7'

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

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:

- "8180:8080" # 这个冒号左边的端口可以更改,右边的不要改

volumes:

- ./searxng:/etc/searxng:rw

environment:

- SEARXNG_BASE_URL=https://${SEARXNG_HOSTNAME:-https://你的域名}/

cap_drop:

- ALL

cap_add:

- CHOWN

- SETGID

- SETUID

- DAC_OVERRIDE

logging:

driver: "json-file"

options:

max-size: "1m"

max-file: "1"

networks:

searxng:

ipam:

driver: default

#volumes:

#caddy-data:

#caddy-config:输入完成之后,切换到英文输入法,按下:wq保存退出。

接着我们来编辑一下.env文件。

代码语言:javascript复制cd /root/data/docker_data/searxng/searxng-docker

rm -f .env

vim .env切换到英文输入法,按下i输入内容。

代码语言:javascript复制SEARXNG_HOSTNAME=#你的域名!!!只要看上面这一行,别的行都不用管!注意把前面的#号去掉!

第二行的邮件不用管,那个是caddy申请的一个邮件,我们不用caddy。

输入完成之后,切换到英文输入法,按下:wq保存退出。

代码语言:javascript复制cd /root/data/docker_data/searxng/searxng-docker

sed -i "s|ultrasecretkey|$(openssl rand -hex 32)|g" searxng/settings.yml # 生成一个密钥最后运行:

代码语言:javascript复制cd /root/data/docker_data/searxng/searxng-docker

docker-compose up -d 完成后便可以通过ip:8180进行访问。

4.更新与卸载4.1更新代码语言:javascript复制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卸载代码语言:javascript复制cd /root/data/docker_data/searxng/searxng-docker # 进入docker-compose所在的文件夹

docker-compose down # 停止容器,此时不会删除映射到本地的数据

rm -rf /root/data/docker_data/searxng/searxng-docker # 完全删除映射到本地的数据5.反向代理安装:【docker】反向代理神器——Nginx Proxy Manager

使用:【docker】Nginx Proxy Manager的使用

相关推荐