====== 自建搜索引擎聚合器 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 替代方案(需临时开端口)