使用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
英文地址,請注明出處:http://en.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…