使用Docker搭建SearXNG搜索引擎

1、安装Docker

# 安装Docker
https://docs.docker.com/get-docker/# 安装Docker Compose
https://docs.docker.com/compose/install/# CentOS安装Docker
https://mp.weixin.qq.com/s/nHNPbCmdQs3E5x1QBP-ueA

2、安装SearXNG

详见:
https://docs.searxng.org/admin/installation-docker.html
https://github.com/searxng/searxng-docker

创建目录:

mkdir searxng
cd searxng

下载:

wget https://github.com/searxng/searxng-docker/archive/refs/heads/master.zip

解压:

# 安装zip、unzip
# yum install -y zip unzip# 解压
unzip master.zip

切换目录:

cd searxng-docker-master

查看.env文件:

# By default listen on https://localhost
# To change this:
# * uncomment SEARXNG_HOSTNAME, and replace <host> by the SearXNG hostname
# * uncomment LETSENCRYPT_EMAIL, and replace <email> by your email (require to create a Let's Encrypt certificate)# SEARXNG_HOSTNAME=<host>
# LETSENCRYPT_EMAIL=<email>

备份.env文件:

cp .env .env-bak

修改.env文件:

# 指定域名或ip,
# 假设当前ip为192.168.186.128,端口3000,供外网访问
sed -i 's/# SEARXNG_HOSTNAME=<host>/SEARXNG_HOSTNAME=http:\/\/192.168.186.128:3000/g' .env

查看Caddyfile文件:

{admin offlog {output stderr
format filter {
# Preserves first 8 bits from IPv4 and 32 bits from IPv6request>remote_ip ip_mask 8 32request>client_ip ip_mask 8 32# Remove identificable informationrequest>remote_port deleterequest>headers deleterequest>uri query {
delete url
delete h
delete q}}}servers {client_ip_headers X-Forwarded-For X-Real-IP# Allow the following IP to passthrough the "X-Forwarded-*" headers to SearXNG
# https://caddyserver.com/docs/caddyfile/options#trusted-proxiestrusted_proxies static private_rangestrusted_proxies_strict}
}{$SEARXNG_HOSTNAME}tls {$SEARXNG_TLS}encode zstd gzip@api {path /configpath /healthzpath /stats/errorspath /stats/checker
}@static {path /static/*
}@imageproxy {path /image_proxy
}header {
# CSP (https://content-security-policy.com)Content-Security-Policy "upgrade-insecure-requests; default-src 'none'; script-src 'self'; style-src 'self' 'unsafe-inline'; form-action 'self' https:; font-src 'self'; frame-ancestors 'self'; base-uri 'self'; connect-src 'self'; img-src * data:; frame-src https:;"# Disable browser featuresPermissions-Policy "accelerometer=(),camera=(),geolocation=(),gyroscope=(),magnetometer=(),microphone=(),payment=(),usb=()"# Only allow same-origin requestsReferrer-Policy "same-origin"# Prevent MIME type sniffing from the declared Content-TypeX-Content-Type-Options "nosniff"# Comment header to allow indexing by search enginesX-Robots-Tag "noindex, nofollow, noarchive, nositelinkssearchbox, nosnippet, notranslate, noimageindex"# Remove "Server" header-Server
}header @api {Access-Control-Allow-Methods "GET, OPTIONS"Access-Control-Allow-Origin "*"
}route {
# Cache policyheader Cache-Control "no-cache"header @static Cache-Control "public, max-age=30, stale-while-revalidate=60"header @imageproxy Cache-Control "public, max-age=3600"
}# SearXNG
reverse_proxy localhost:8080

备份Caddyfile文件:

cp Caddyfile Caddyfile-bak

修改Caddyfile文件:

sed -i 's/admin off/#admin off\n        http_port 3000\n        auto_https off/g' Caddyfile
sed -i 's/tls {$SEARXNG_TLS}/#tls {$SEARXNG_TLS}/g' Caddyfile
sed -i 's/Content-Security-Policy/#Content-Security-Policy/g' Caddyfile

查看searxng/settings.yml文件:

# see https://docs.searxng.org/admin/settings/settings.html#settings-use-default-settings
use_default_settings: true
server:# base_url is defined in the SEARXNG_BASE_URL environment variable, see .env and docker-compose.ymlsecret_key: "ultrasecretkey"  # change this!limiter: false  # enable this when running the instance for a public usage on the internetimage_proxy: true
redis:url: redis://redis:6379/0

备份searxng/settings.yml文件:

cp searxng/settings.yml searxng/settings.yml-bak

修改searxng/settings.yml文件:

sed -i "s/ultrasecretkey/$(openssl rand -hex 32)/g" searxng/settings.yml
sed -i "s/redis:6379/searxng-redis:6379/g" searxng/settings.yml

查看docker-compose.yaml文件:

version: "3.7"services:caddy:container_name: caddyimage: docker.io/library/caddy:2-alpinenetwork_mode: hostrestart: unless-stoppedvolumes:- ./Caddyfile:/etc/caddy/Caddyfile:ro- caddy-data:/data:rw- caddy-config:/config:rwenvironment:- SEARXNG_HOSTNAME=${SEARXNG_HOSTNAME:-http://localhost}- SEARXNG_TLS=${LETSENCRYPT_EMAIL:-internal}logging:driver: "json-file"options:max-size: "1m"max-file: "1"redis:container_name: redisimage: docker.io/valkey/valkey:8-alpinecommand: valkey-server --save 30 1 --loglevel warningrestart: unless-stoppednetworks:- searxngvolumes:- valkey-data2:/datalogging:driver: "json-file"options:max-size: "1m"max-file: "1"searxng:container_name: searxngimage: docker.io/searxng/searxng:latestrestart: unless-stoppednetworks:- searxngports:- "127.0.0.1:8080:8080"volumes:- ./searxng:/etc/searxng:rw- searxng-data:/var/cache/searxng:rwenvironment:- SEARXNG_BASE_URL=https://${SEARXNG_HOSTNAME:-localhost}/logging:driver: "json-file"options:max-size: "1m"max-file: "1"networks:searxng:volumes:caddy-data:caddy-config:valkey-data2:searxng-data:

备份docker-compose.yaml文件:

cp docker-compose.yaml docker-compose.yaml-bak

修改docker-compose.yaml文件:

services:caddy:container_name: searxng-caddyimage: caddy:2-alpinenetwork_mode: hostrestart: unless-stoppedvolumes:- ./Caddyfile:/etc/caddy/Caddyfile:ro- ./caddy-data:/data:rw- ./caddy-config:/config:rwenvironment:- SEARXNG_HOSTNAME=${SEARXNG_HOSTNAME}logging:driver: "json-file"options:max-size: "1m"max-file: "1"redis:container_name: searxng-redisimage: valkey/valkey:8-alpinecommand: valkey-server --save 30 1 --loglevel warningrestart: unless-stoppednetworks:- searxngvolumes:- ./valkey-data2:/datalogging:driver: "json-file"options:max-size: "1m"max-file: "1"searxng:container_name: searxngimage: searxng/searxng:latestrestart: unless-stoppednetworks:- searxngports:- "127.0.0.1:8080:8080"volumes:- ./searxng:/etc/searxng:rw- ./searxng-data:/var/cache/searxng:rwenvironment:- SEARXNG_BASE_URL=${SEARXNG_HOSTNAME}logging:driver: "json-file"options:max-size: "1m"max-file: "1"networks:searxng:
说明:使用caddy做反向代理
假设ip为192.168.186.128,caddy默认端口80,searxng默认端口8080
在浏览器访问192.168.186.128:80如果将caddy端口改成3000,那么在浏览器访问192.168.186.128:3000

创建并启动容器:

docker-compose up -d

查看容器列表:

docker ps

查看容器日志:

# Caddy容器: 
docker logs -f searxng-caddy# SearXNG容器: 
docker logs -f searxng# Valkey容器: 
docker logs -f searxng-redis

停止并销毁容器:

docker-compose down

删除目录:

rm -rf ./caddy-data ./caddy-config ./valkey-data2 ./searxng-data

3、浏览器访问

假设当前ip为192.168.186.128
浏览器访问:http://192.168.186.128:8080

4、详见

https://docs.searxng.org/
https://github.com/searxng/searxng
https://github.com/searxng/searxng-docker
https://mp.weixin.qq.com/s/04sosQUYlnabyC2fa-5PIA

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/915798.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/915798.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于pi/4-QPSK扩频解扩和gardner环定时同步的通信系统matlab性能仿真

目录 1.引言 2.算法仿真效果演示 3.数据集格式或算法参数简介 4.算法涉及理论知识概要 4.1 π/4-QPSK 4.2 直接序列扩频与解扩 4.3 Gardner环定时同步 5.参考文献 6.完整算法代码文件获得 1.引言 π/4-QPSK是一种特殊的QPSK调制方式&#xff0c;其相邻符号间的相位跳变…

CGA老年人能力评估师:提升老年生活质量

一、CGA老年人能力评估师是提升老年生活质量的“导航者” 老年生活质量的提升&#xff0c;始于对老年人真实需求的精准把握。CGA老年人能力评估师正是这样一群“导航者”&#xff0c;他们运用CGA老年综合评估系统&#xff0c;深入了解老年人在生理、心理、社会参与等方面的状况…

开源的大语言模型(LLM)应用开发平台Dify

概述Dify 是一个开源的大语言模型&#xff08;LLM&#xff09;应用开发平台&#xff0c;结合了后端即服务&#xff08;Backend-as-a-Service&#xff09;和 LLMOps 的理念&#xff0c;旨在帮助开发者快速构建生产级的生成式 AI 应用。它通过直观的界面、强大的功能和灵活的部署…

RAG(检索增强生成)里的文档管理

RAG&#xff08;检索增强生成&#xff09;是结合检索与生成式 AI 的技术框架。核心逻辑是先从外部知识库精准检索相关信息&#xff0c;再将其作为上下文输入大模型生成回答。技术上依赖检索引擎&#xff08;如向量数据库、BM25&#xff09;、大语言模型&#xff08;如 GPT、LLa…

床上肢体康复机器人的机械结构设计cad【7张】三维图+设计说明书

摘要 近年来&#xff0c;随着人口老龄化问题的加重&#xff0c;常年卧床的老年人数增多&#xff0c;同时因为各种疾病的原因&#xff0c;患肢体功能障碍的人数也在增加。严重影响着患者的生活质量&#xff0c;同时给社会和家庭增加了很多麻烦。他们迫切希望尽快康复&#xff0c…

主要分布在背侧海马体(dHPC)CA1区域(dCA1)的时间细胞对NLP中的深层语义分析的积极影响和启示

时间细胞&#xff08;time cells&#xff09;作为海马体CA1区域中编码时间信息的神经元&#xff0c;其工作机制对自然语言处理&#xff08;NLP&#xff09;中的深层语义分析具有多方面的启示。这些神经元通过整合时空信息、动态竞争机制和序列编码能力&#xff0c;为解决NLP中语…

数字ic后端设计从入门到精通12(含fusion compiler, tcl教学)全定制设计进阶

标准单元库中几种时序单元介绍 C2MOS触发器C2MOS触发器的工作分为两个阶段&#xff1a; 1&#xff09;φ0&#xff08;φ1&#xff09;时&#xff0c;第一个三态驱动器导通&#xff08;三态门主要体现在&#xff0c;此时主级处于求值模式。同时从级处在高阻抗模式&#xff0c;即…

Qt调试技巧与常见错误解决方法

一、调试工具与环境配置 1.1 Qt Creator调试器集成 Qt Creator内置GDB/Lldb调试器&#xff0c;支持断点、单步执行、变量监视等功能。 启动调试&#xff1a;按F5或点击"Debug"按钮断点设置&#xff1a;在代码行号旁点击添加断点调试工具栏&#xff1a;包含继续、暂停…

VRRP技术(虚拟路由器冗余协议)

1. VRRP的概念及应用场景&#xff08;优先级数值越大&#xff0c;越优先&#xff09;VRRP&#xff08;虚拟路由器冗余协议&#xff09;是 IETF&#xff08;互联网工程任务组&#xff09;提出的一种容错协议&#xff0c;主要用于解决局域网中网关单点故障的问题。VRRP 通过把多个…

《每日AI-人工智能-编程日报》--2025年7月23日

介绍&#xff1a;AI&#xff1a;阿里开源通义千问 AI 编程大模型 Qwen3-Coder&#xff1a;7 月 23 日清晨&#xff0c;阿里开源全新的通义千问 AI 编程大模型 Qwen3-Coder&#xff0c;编程能力登顶全球开源模型阵营&#xff0c;并超越 GPT4.1 等闭源模型&#xff0c;比肩全球最…

网安-JWT

认证的方式&#xff1a;sessioncookie、jwt、tokenSession认证机制需要配合Cookie才能实现。由于 Cookie默认不支持跨域访问 &#xff0c;所以&#xff0c;当涉及到前端跨域请求后端接口的时候&#xff0c;需要做 很多额外的配置&#xff0c;才能实现跨域Session认证。JWT(英文…

零基础学编程,编程从入门到精通系列教程,附:编程工具箱之时间计算构件的用法#零基础自学编程 学习计划#新手学编程 高效学习方法

前言&#xff1a; 对于正在学习编程的大学生、IT 人士或是编程爱好者而言&#xff0c;掌握正确的学习方法能让编程学习事半功倍。即便你是初学者&#xff0c;只要通过成百上千个实例练习&#xff0c;也能快速成长为编程高手。 全中文编程工具 易上手的基础特性 安装过程简单且…

Day01_C++编程

01.思维导图02.方法一&#xff1a;#include <iostream> #include <cstring> #include <iostream> using namespace std; class mystring { private:char* buf;int len;public:mystring(const char* str);void copy(const char* ptr);void copy(mystring ptr)…

lammps滚动模拟

大家好,我是小马老师。 本文介绍lammps中模型滚动的设置方法。 模型的滚动需要解决2个问题: (1)设置滚动旋转轴位置和方向,也就是确定沿哪个方向滚动。 (2)原地滚动还是在滚动过程中整体也要移动。 为保证滚动的平稳,旋转轴一般通过模型的质心,需要先计算模型的质…

增强LLM最后隐藏层的意义与效果

LLM 置信度增强:是否可以增强最后的隐藏层(非logits层) 表征工程是提取隐藏层状态表征,LLM的置信度增强是优化的logist数值 要回答“是否可以增强最后的隐藏层(非logits层)以及是否有意义”,需要结合大语言模型的结构特性、你当前的任务(情感分析)以及“隐藏层增强”…

根据数据判断神经网络所需最小参数量

更新中方法目标&#xff1a;找到能充分学习数据规律&#xff0c;但不过度拟合噪声的最小参数量。增量策略&#xff1a;优先增加深度&#xff08;层数&#xff09;&#xff1a;添加1个隐藏层&#xff08;如16神经元&#xff09;→ 训练验证再增加宽度&#xff08;神经元&#xf…

基于APEX系统自动曝光数学原理

目录 一、APEX系统 二、自动曝光概述 三、曝光估计及校正算法的实现 一、APEX系统 在美国国家标准中,将(4.22)式所表示的基本参数方程进行了变换,将他表示为以2 为底的指数形式,这样就可以用加法的形式来表达曝光参数方程式,称为加法系统,即 APEX(Additive System of Ph…

JAVA后端面试笔记

1.JAVA中和equals的区别 区别&#xff1a;一个是运算符&#xff0c;一个是方法 比较变量的值是否相同 ①如果比较的对象是基本数据类型&#xff0c;则比较数值是否相等 ②如果比较的是引用数据类型&#xff0c;则比较的是对象的内存地址是否相等 equals方法比较对象的内容是否…

在 Ubuntu 上将 Docker 降级到版本 25.0.5 (二) 降低版本,涉及兼容性问题

以下有免费的4090云主机提供ubuntu22.04系统的其他入门实践操作 地址&#xff1a;星宇科技 | GPU服务器 高性能云主机 云服务器-登录 相关兑换码星宇社区---4090算力卡免费体验、共享开发社区-CSDN博客 兑换码要是过期了&#xff0c;可以私信我获取最新兑换码&#xff01;&a…

什么是MySQL 视图

文章目录什么是MySQL 视图定义为什么使用视图创建/替换视图更新视图总结什么是MySQL 视图 定义 视图是一种虚拟表&#xff0c;是一个逻辑表&#xff0c;本身并不包含数据&#xff0c;通过select语句去基本表上动态生成数据。 举个例子&#xff1a; 你有一个员工表employees…