Searchgirlのインストール
Searchgirlは 2つのコンテナです:アプリ(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 --buildhttp://localhost:8089 を開きます — プライベート検索が動いています。
ローカルログイン(スタンドアロン)
Section titled “ローカルログイン(スタンドアロン)”サインイン画面付きの自分専用のインストールには、composeの隣の .env で次を定義します:
SEARCHGIRL_USER=diegoSEARCHGIRL_PASS=a-long-passwordSECRET_KEY=a-cookie-secret # optional; without it sessions reset with the containerEscribaファミリーの標準ログイン(パスワードに表示 / 非表示トグルの付いたカード)が現れ、サインイン するまですべて — UI、API、MCP、サムネイル — がゲートされます。データベースなしの単一ユーザーです。 **連携(federated)**モードではこれらの変数は無視されます:スイートの取り決めは、SSOの隣に ローカルログインが存在することを禁じています。
EasyPanelにデプロイ
Section titled “EasyPanelにデプロイ”公開イメージと公式のSearXNGを、1つのプロジェクトに2つのサービスとして配置します。端から端までの
ガイド(マウント、ドメイン、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にformats: [html, json]とlimiter: falseを含む File Mount を追加します (正確な内容は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をpullします。移行すべき状態はゼロです。
Dokploy / Coolify / Portainer:3つともDocker Composeを受け付けます — リポジトリの
docker-compose.yml をそのまま貼り付け(すでに searxng/ をマウントし、エンジンを公開しません)、
同じ環境変数を設定し、パネルのリバースプロキシをHTTPS付きでポート8089の前に置きます
(COOKIE_SECURE=1)。
オプション:AI回答
Section titled “オプション:AI回答”モデルを設定すると、AI回答ボタン、POST /api/answer エンドポイント、MCPツール answer が
点灯します。プロバイダーを1つ選びます:
# 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 | ランダム | セッションクッキーのHMACキー。再起動をまたいでセッションを維持するには設定します。 |
COOKIE_SECURE | 0 | HTTPSの背後では 1。 |
SEARCHGIRL_MCP_TOKEN | — | API+MCP用のBearerトークン。複数、名前付き:claude:abc...,n8n:def... — 1つを失効しても残りはローテーションされません。 |
SEARCHGIRL_TRUSTED_PROXIES | — | レート制限が X-Forwarded-For 経由で実際のクライアントIPを見られるようにする、リバースプロキシのIP/CIDR。 |
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 にあります。
ドキュメントを読む