跳转到内容

安装 Searchgirl

Searchgirl 是两个容器:应用(ghcr.io/diegoparras/searchgirl)及其内部的 SearXNG(官方镜像,未经修改且绝不对外暴露——只有 Searchgirl 通过私有网络访问它)。

  • Docker(Windows/Mac 上的 Docker Desktop,或 VPS 上的 Docker Engine)。
  • 别无他求:无数据库、无外部服务。Searchgirl 不保存任何需要迁移的状态。
Terminal window
git clone https://github.com/diegoparras/searchgirl
cd searchgirl
docker compose up -d --build

打开 **http://localhost:8089**——私密搜索,已在运行。

若要为自己的安装配上登录界面,请在 compose 旁边的 .env 中定义:

Terminal window
SEARCHGIRL_USER=diego
SEARCHGIRL_PASS=a-long-password
SECRET_KEY=a-cookie-secret # 可选;不设置时会话会随容器重置

标准的 Escriba 家族登录界面随即出现(一张卡片,密码框带显示/隐藏切换), 且一切——UI、API、MCP、缩略图——在登录之前均被拦截。它是单用户的,无数据库。 在联合模式下这些变量会被忽略:套件的契约禁止本地登录与 SSO 并存。

已发布的镜像加上官方 SearXNG,作为同一个项目中的两个服务。端到端指南 (挂载、域名、HTTPS、故障排查)位于 DEPLOY.md

  1. 创建一个项目,命名为 searchgirl。在同一个项目内,各服务通过内部 DNS 以 <project>_<service> 相互可见(例如 searchgirl_searxng)。
  2. 服务 searxng——App → Docker Image ghcr.io/searxng/searxng:latest。设置 SEARXNG_SECRETopenssl rand -hex 32),并在 /etc/searxng/settings.yml 添加一个 File Mount,内容包含 formats: [html, json]limiter: false (确切内容见 DEPLOY.md)。不设域名——它保持内部。
  3. 服务 app——App → Docker Image ghcr.io/diegoparras/searchgirl:latest。 环境变量:SEARXNG_URL=http://searchgirl_searxng:8080、你的 SEARCHGIRL_USER/SEARCHGIRL_PASS/SECRET_KEYCOOKIE_SECURE=1 以及 SEARCHGIRL_TRUSTED_PROXIES=172.16.0.0/12。添加你的域名并启用 HTTPS, 内部端口 8080
  4. 验证curl https://your-domain/healthzok,然后从浏览器登录。
  5. 更新:在 app 服务上点击 Deploy——它会拉取 latest。零状态需要迁移。

Dokploy / Coolify / Portainer:三者都接受 Docker Compose——将仓库中的 docker-compose.yml 原样粘贴(它已经挂载了 searxng/,且不对外暴露引擎), 设置相同的环境变量,并把面板的反向代理放在端口 8089 前面并启用 HTTPS (COOKIE_SECURE=1)。

配置模型之后,AI 回答按钮、POST /api/answer 端点和 MCP 工具 answer 会被点亮。选择一个提供商:

Terminal window
# Anthropic (native):
ANTHROPIC_API_KEY=sk-ant-... # optional: ANTHROPIC_MODEL
# ...or any OpenAI-compatible endpoint — local Ollama, OpenRouter, DeepSeek:
LLM_BASE_URL=http://host.docker.internal:11434/v1
LLM_MODEL=qwen2.5:7b

两者都不设时,其余一切照常工作——只是按钮不会出现。

变量默认值控制内容
SEARXNG_URLhttp://searxng:8080内部 SearXNG 的 URL。
SEARCHGIRL_DEFAULT_LANGUAGEes默认搜索语言。
SEARCHGIRL_USER / SEARCHGIRL_PASS独立模式的本地登录:单用户,标准 Escriba 界面。
SECRET_KEY随机会话 Cookie 的 HMAC 密钥;设置它可让会话在重启后存活。
COOKIE_SECURE0位于 HTTPS 之后时设为 1
SEARCHGIRL_MCP_TOKENAPI+MCP 的 Bearer 令牌。可设多个、具名:claude:abc...,n8n:def...——吊销一个不会轮换其余的。
SEARCHGIRL_TRUSTED_PROXIES反向代理的 IP/CIDR,让速率限制通过 X-Forwarded-For 看到真实的客户端 IP。
SEARCHGIRL_RATE_RPS / SEARCHGIRL_RATE_BURST20 / 60API、MCP 和登录上的按 IP 速率限制(RPS=0 禁用它)。
AUTH_MODEfederado 启用与 Lockatus 的 OIDC(配合 LOCKATUS_ISSUER / LOCKATUS_CLIENT_ID / LOCKATUS_REDIRECT_URI)。
ANTHROPIC_API_KEY / LLM_BASE_URL + LLM_MODEL可选的 AI 回答提供商。

完整表格位于仓库的 README

阅读文档