前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【docker】自建一个属于自己的搜索引擎平台——SearXNG

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

作者头像
夜梦星尘
发布2024-08-20 16:58:26
4380
发布2024-08-20 16:58:26
举报
文章被收录于专栏:夜梦星尘的折腾日记

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 docker

3.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的使用

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-3-23 2,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.前言
  • 2.项目介绍
    • 2.1项目地址
      • 2.2项目特色
      • 3.项目部署
        • 3.1系统环境
          • 3.2安装docker
            • 3.3部署SearXNG
            • 4.更新与卸载
              • 4.1更新
                • 4.2卸载
                • 5.反向代理
                相关产品与服务
                容器服务
                腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档