====== 自建搜索引擎聚合器 Degoog 部署笔记 ====== **Degoog** 是一个开源的搜索引擎聚合器,一次查询同时搜索多个引擎(Brave、DuckDuckGo、Google、Bing 等),聚合结果去重后返回。相比 SearXNG 更轻量,且原生支持 **MCP (Model Context Protocol)**,可供 LLM 客户端直接调用。 ===== 部署环境 ===== | 项目 | 内容 | |------|------| | 服务器 | 任意 Linux VPS | | 系统 | Debian / Ubuntu,x86_64 | | Docker | 26+,Compose v2 | | 架构 | Degoog (Web UI) + Degoog-MCP (API 侧车) | ===== Docker Compose 配置 ===== services: degoog: image: ghcr.io/degoog-org/degoog:latest container_name: degoog restart: unless-stopped volumes: - ./data:/app/data networks: [degoog-net] environment: - PUID=1000 - PGID=1000 - DEGOOG_SETTINGS_PASSWORDS=<设置密码> - TZ=Asia/Shanghai - DEGOOG_PUBLIC_INSTANCE=false degoog-mcp: image: ghcr.io/degoog-org/mcp:latest container_name: degoog-mcp depends_on: - degoog restart: unless-stopped ports: - "127.0.0.1:4443:4443" networks: [degoog-net] environment: DEGOOG_MCP_DEGOOG_URL: "http://degoog:4444" DEGOOG_MCP_MAX_RESULTS: "10" DEGOOG_MCP_SEARCH_TEXT: "results" networks: degoog-net: driver: bridge 配置说明: * **Degoog 容器**:不对外开放端口(Web UI 只在初始化时临时开放),通过内部网络供 MCP 调用 * **Degoog-MCP 容器**:绑定 127.0.0.1:4443,通过 SSH 隧道暴露给客户端 * **数据持久化**:`./data` 目录挂载到容器内 `/app/data` ===== 初始化步骤 ===== **1. 启动** mkdir -p ./data chown -R 1000:1000 ./data docker compose up -d **2. 配置搜索引擎** Degoog 默认不附带任何搜索引擎,需要手动添加: - 临时开放 4444 端口(修改 compose 文件添加 port mapping) - 浏览器访问 `http://:4444` - 点击右上角齿轮 → 输入之前设置的密码进入设置 - 进入 **Store** → **Add repository**,添加官方扩展仓库: ``` https://github.com/degoog-org/official-extensions ``` - 刷新后即可在 Store 中浏览并安装搜索引擎 - 进入 **Engines** 页面,勾选需要的引擎(推荐 Brave、DuckDuckGo) - **关闭 4444 端口**,恢复仅 MCP 访问 ===== LLM / MCP 客户端接入 ===== Degoog-MCP 提供标准的 MCP 接口。在客户端的 MCP 配置中添加: { "degoog": { "url": "http://localhost:4443/mcp", "timeout": 120 } } 由于端口绑定在 127.0.0.1,需要建 SSH 隧道转发: ssh -L 4443:127.0.0.1:4443 -f -N root@ 然后在客户端中重新加载 MCP 即可使用搜索工具。 ===== 硬件占用 ===== | 容器 | 空闲 CPU | 搜索时 CPU | 内存 | |------|---------|-----------|------| | degoog | <0.3% | <1% | ~60MB | | degoog-mcp | <0.1% | <0.1% | ~111MB | 一次查询同时在多个引擎搜索,耗时约 1 秒,CPU 峰值不到 1%,内存波动约 17MB。**对低配 VPS 完全无压力**。 ===== 安全说明 ===== * Web UI 端口(4444)仅在初始化时临时开放,配置完后关闭 * MCP 端口(4443)绑定 127.0.0.1,通过 SSH 隧道访问 * 务必设置 `DEGOOG_SETTINGS_PASSWORDS` 防止未授权访问 * 公开实例需设置 `DEGOOG_PUBLIC_INSTANCE=true` 并配合反向代理 + HTTPS ===== 已知问题 ===== * Google 引擎容易触发 rate limit(HTTP 429),建议以 Brave/DuckDuckGo 为主 * Ecosia 可能返回 403(被拦截) * 引擎管理只能通过 Web UI,无 API 替代方案(需临时开端口)