🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

本地 SearXNG 搜索 anthony1x6000/dsh-searxng-search

DeepSeek Harness
anthony1x600042 天前有提交已提供中文文档扫描:含敏感能力

免密钥接入自建 SearXNG 实例,按需启动容器完成网页搜索

28.1/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/11 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add anthony1x6000/dsh-searxng-search
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么[目录]—
dsh 原生插件 · search
暂无时间戳·判据 →
装得上吗[实装验证]—
本站尚未做安装检查
L4 · 真实安装等级说明 →
数据截至 2026/10/11·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/03·判据 →
还在维护吗[仓库]—
更新放缓:最近一次提交在 42 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →

可信度证据

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件读取剪贴板或密钥环境变量发起外部网络请求
查看扫描证据(共 17 处,展示前 17 条)
  • 发起网络请求
    lib/index.js:243
    const response = await fetch(`${baseURL}/healthz`, {
  • 写入本地文件
    lib/index.js:268
    mkdirSync(join(options.dataDir, 'settings'), { recursive: true });
  • 写入本地文件
    lib/index.js:269
    mkdirSync(join(options.dataDir, 'data'), { recursive: true });
  • 读取本地文件
    lib/index.js:273
    hasSettings = readFileSync(settingsPath, 'utf8').length > 0;
  • 读取密钥环境变量
    lib/index.js:279
    const secret = process.env.SEARXNG_SECRET ?? randomBytes(32).toString('hex');
  • 写入本地文件
    lib/index.js:280
    writeFileSync(settingsPath, '# Minimal SearXNG settings for local harness use (written by dsh-searxng-search).\n'
  • 发起网络请求
    lib/index.js:416
    response = await fetch(endpoint, {
  • 发起网络请求
    index.ts:330
    const response = await fetch(`${baseURL}/healthz`, {
  • 写入本地文件
    index.ts:360
    mkdirSync(join(options.dataDir, 'settings'), { recursive: true })
  • 写入本地文件
    index.ts:361
    mkdirSync(join(options.dataDir, 'data'), { recursive: true })
  • 读取本地文件
    index.ts:365
    hasSettings = readFileSync(settingsPath, 'utf8').length > 0
  • 读取密钥环境变量
    index.ts:370
    const secret = process.env.SEARXNG_SECRET ?? randomBytes(32).toString('hex')
  • 写入本地文件
    index.ts:371
    writeFileSync(settingsPath,
  • 发起网络请求
    index.ts:539
    response = await fetch(endpoint, {
  • 读取本地文件
    selfcheck.ts:81
    const manifest = JSON.parse(readFileSync(join(import.meta.dirname, 'package.json'), 'utf8')) as {
  • 读取本地文件
    selfcheck.ts:90
    const patch = readFileSync(patchPath, 'utf8')
  • 读取本地文件
    selfcheck.ts:93
    assert.doesNotThrow(() => readFileSync(join(import.meta.dirname, shipped), 'utf8'), `${shipped} must exist`)
扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

社区实装还没有人打卡 · 装过的第一个就是你
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-web
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 接入自建实例
  • 按需启动容器
  • 执行网页搜索

README

由 DeepSeek 最新模型翻译生成
dsh-searxng-search 免密钥的 web_search,给 DeepSeek Harness 用,底层是自建的 SearXNG 实例。一个轻量 ctx.web 服务商(searxng-local),加上按需 podman start —— 不用 API key,也不绕 MCP。 安装 podman 的一行命令(系统依赖,不在 pnpm 里): sudo apt update && sudo apt install -y podman 把 bundle 装进你的 web 配置档(只能用 pnpm —— 不要手动改配置档): dsh plugin --profile web add "github:anthony1x6000/dsh-searxng-search#main" 不启动也能验证这层: dsh --profile web --dump-config | grep -B 1 -A 4 searxng 然后重启 dsh web,新的 bundle 层才会生效。构建产物(lib/)已经提交进仓库,所以从 git 安装不会跑构建,也不需要 pnpm 的 allowBuilds 审批。第一次搜索时,如果容器不存在就创建(拉镜像大约 1–2 分钟),之后重启后都是按需启动。
展开完整文档(README 剩余 1 节)
dsh-searxng-search

免密钥的 web_search,给 DeepSeek Harness 用,底层是自建的 SearXNG 实例。一个轻量 ctx.web 服务商(searxng-local),加上按需 podman start —— 不用 API key,也不绕 MCP。

安装

podman 的一行命令(系统依赖,不在 pnpm 里):

sudo apt update && sudo apt install -y podman

把 bundle 装进你的 web 配置档(只能用 pnpm —— 不要手动改配置档):

dsh plugin --profile web add "github:anthony1x6000/dsh-searxng-search#main"

不启动也能验证这层:

dsh --profile web --dump-config | grep -B 1 -A 4 searxng

然后重启 dsh web,新的 bundle 层才会生效。构建产物(lib/)已经提交进仓库,所以从 git 安装不会跑构建,也不需要 pnpm 的 allowBuilds 审批。第一次搜索时,如果容器不存在就创建(拉镜像大约 1–2 分钟),之后重启后都是按需启动。

bundle 在自己的层里把 searchProvider 钉死为 searxng-local,因为基础 bundle 默认是 deepseek-official(托管 API,需要 key)—— 不钉的话,搜索永远到不了你本地实例。你的配置档补丁仍然可以覆盖它。想回到托管搜索,执行 dsh plugin --profile web remove dsh-searxng-search(然后重启),这一层 —— 连同钉死的配置 —— 就没了。

本地开发:pnpm install && pnpm build,然后 dsh plugin --profile web add link:/path/to/dsh-searxng-search。

文件

| 文件 | 作用 |
| index.ts | 插件源码:WebSearchProvider,走 GET {base}/search?format=json,对 loopback 地址按需 podman start |
| lib/index.js | 构建产物(pnpm build),已提交 —— 装好的配置档实际加载的就是它 |
| package.json | bundle 清单(dsh.bundle.patch);devDeps 只用于构建,运行时零依赖 |
| cordis.patch.yml | bundle 层:包名条目 + searxng-local 服务商钉死 |
| searxng-podman.sh | 一次性 SearXNG 安装脚本:settings.yml(secret + json 格式)、容器运行、健康检查 |
| selfcheck.ts | 映射 + URL 门控 + 打包断言:pnpm selfcheck |

配置

| 环境变量 / 行字段 | 默认值 | 含义 |
| SEARXNG_BASE_URL / baseURL | http://127.0.0.1:8888 | SearXNG 基础地址;会追加 /search |
| SEARXNG_CONTAINER / containerName | searxng | 按需启动的容器 |
| SEARXNG_CLI / containerCLI | podman | podman,docker 作为回退尝试 |
| SEARXNG_START_TIMEOUT_MS / startTimeoutMs | 60000 | 每次搜索的启动 + 就绪预算 |
| SEARXNG_AUTO_CREATE / autoCreate | true | 容器不存在时创建(设为 0/false 则只启动) |
| SEARXNG_IMAGE / image | docker.io/searxng/searxng:latest | 首次创建时拉取的镜像 |
| SEARXNG_PORT / port | 8888 | 容器绑定的主机端口 |

自动启动只管理回环地址(localhost、127.0.0.1、::1);远程地址会直接报错。重定向会被拒绝(redirect: 'error');SearXNG 不返回生成的答案,所以结果只带来源。
预览分享卡片长什么样 ↓anthony1x6000/dsh-searxng-search
分享 · DeepSeek Harness Hub
anthony1x6000/dsh-searxng-search

免密钥接入自建 SearXNG 实例,按需启动容器完成网页搜索

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部