安装 Searchgirl
Searchgirl 是两个容器:应用(ghcr.io/diegoparras/searchgirl)及其内部的
SearXNG(官方镜像,未经修改且绝不对外暴露——只有 Searchgirl 通过私有网络访问它)。
- Docker(Windows/Mac 上的 Docker Desktop,或 VPS 上的 Docker Engine)。
- 别无他求:无数据库、无外部服务。Searchgirl 不保存任何需要迁移的状态。
快速开始(Docker Compose)
Section titled “快速开始(Docker Compose)”git clone https://github.com/diegoparras/searchgirlcd searchgirldocker compose up -d --build打开 **http://localhost:8089**——私密搜索,已在运行。
本地登录(独立模式)
Section titled “本地登录(独立模式)”若要为自己的安装配上登录界面,请在 compose 旁边的 .env 中定义:
SEARCHGIRL_USER=diegoSEARCHGIRL_PASS=a-long-passwordSECRET_KEY=a-cookie-secret # 可选;不设置时会话会随容器重置标准的 Escriba 家族登录界面随即出现(一张卡片,密码框带显示/隐藏切换), 且一切——UI、API、MCP、缩略图——在登录之前均被拦截。它是单用户的,无数据库。 在联合模式下这些变量会被忽略:套件的契约禁止本地登录与 SSO 并存。
在 EasyPanel 上部署
Section titled “在 EasyPanel 上部署”已发布的镜像加上官方 SearXNG,作为同一个项目中的两个服务。端到端指南
(挂载、域名、HTTPS、故障排查)位于
DEPLOY.md。
- 创建一个项目,命名为
searchgirl。在同一个项目内,各服务通过内部 DNS 以<project>_<service>相互可见(例如searchgirl_searxng)。 - 服务
searxng——App → Docker Imageghcr.io/searxng/searxng:latest。设置SEARXNG_SECRET(openssl rand -hex 32),并在/etc/searxng/settings.yml添加一个 File Mount,内容包含formats: [html, json]和limiter: false(确切内容见DEPLOY.md)。不设域名——它保持内部。 - 服务
app——App → Docker Imageghcr.io/diegoparras/searchgirl:latest。 环境变量:SEARXNG_URL=http://searchgirl_searxng:8080、你的SEARCHGIRL_USER/SEARCHGIRL_PASS/SECRET_KEY、COOKIE_SECURE=1以及SEARCHGIRL_TRUSTED_PROXIES=172.16.0.0/12。添加你的域名并启用 HTTPS, 内部端口 8080。 - 验证:
curl https://your-domain/healthz→ok,然后从浏览器登录。 - 更新:在
app服务上点击 Deploy——它会拉取latest。零状态需要迁移。
Dokploy / Coolify / Portainer:三者都接受 Docker Compose——将仓库中的
docker-compose.yml 原样粘贴(它已经挂载了 searxng/,且不对外暴露引擎),
设置相同的环境变量,并把面板的反向代理放在端口 8089 前面并启用 HTTPS
(COOKIE_SECURE=1)。
可选:AI 回答
Section titled “可选:AI 回答”配置模型之后,AI 回答按钮、POST /api/answer 端点和 MCP 工具 answer
会被点亮。选择一个提供商:
# 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/v1LLM_MODEL=qwen2.5:7b两者都不设时,其余一切照常工作——只是按钮不会出现。
主要环境变量
Section titled “主要环境变量”| 变量 | 默认值 | 控制内容 |
|---|---|---|
SEARXNG_URL | http://searxng:8080 | 内部 SearXNG 的 URL。 |
SEARCHGIRL_DEFAULT_LANGUAGE | es | 默认搜索语言。 |
SEARCHGIRL_USER / SEARCHGIRL_PASS | — | 独立模式的本地登录:单用户,标准 Escriba 界面。 |
SECRET_KEY | 随机 | 会话 Cookie 的 HMAC 密钥;设置它可让会话在重启后存活。 |
COOKIE_SECURE | 0 | 位于 HTTPS 之后时设为 1。 |
SEARCHGIRL_MCP_TOKEN | — | API+MCP 的 Bearer 令牌。可设多个、具名:claude:abc...,n8n:def...——吊销一个不会轮换其余的。 |
SEARCHGIRL_TRUSTED_PROXIES | — | 反向代理的 IP/CIDR,让速率限制通过 X-Forwarded-For 看到真实的客户端 IP。 |
SEARCHGIRL_RATE_RPS / SEARCHGIRL_RATE_BURST | 20 / 60 | API、MCP 和登录上的按 IP 速率限制(RPS=0 禁用它)。 |
AUTH_MODE | 空 | federado 启用与 Lockatus 的 OIDC(配合 LOCKATUS_ISSUER / LOCKATUS_CLIENT_ID / LOCKATUS_REDIRECT_URI)。 |
ANTHROPIC_API_KEY / LLM_BASE_URL + LLM_MODEL | — | 可选的 AI 回答提供商。 |
完整表格位于仓库的 README。
阅读文档